主要内容

음이아닌ode해

여기서는ode의해를음이아닌값으로제한하는방법을보여줍니다。비음(Non-negativity)제약조건을적용하는것이항상간단하지만은않지만,방정식의물리적해석이나해특성으로인해이제약조건을적용해야하는경우가있습니다。이제약조건은이를적용하지않으면적분에실패하거나해를응용할수없게되는경우와같이필요할때에만해에적용해야합니다。

해의특정성분이음수가아니어야할경우odeset을사용하여이러한성분의덱스에非负옵션을설정합니다。ode23sode15i,그리고질량행렬을갖는문제에적용되는음함수솔버(ode15sode23tode23tb)에는이옵션을사용할수없습니다。특히,특이질량행렬을반드시갖는DAE문제에비음제약조건을적용할수없습니다。

예:절댓값함수

다음과같은초기값문제를가정하겠습니다。

y - | y |

초기 조건 y 0 1 을사용하여구간 0 4 0 에대해이방정식을풉니다。이ode의해는0으로감쇠됩니다。솔버에서음의해값이생성되면솔버는이값을통해颂歌의해를추적하기시작하며,계산된해가 - 로발산하므로결국계산이실패합니다。非负옵션을사용하면이러한적분이실패하지않도록할수있습니다。

数值를사용하여 y t e - t 의해석적해를ode의해와비교합니다。이때한번은추가옵션을지정하지않고비교하고다른한번은非负옵션을설정한상태에서비교합니다。

Ode = @(t,y) -abs(y);|ode45|标准溶液选项1 = odeset(“完善”1);[t0,y0] = ode45(ode,[0 40],1, option1);%非负约束的解选项2 = odeset(选项1,非负的1);[t1,y1] = ode45(ode,[0 40],1,options2);%解析解T = linspace(0,40,1000);Y = exp(-t);

비교를위해이3개의해를플로팅합니다。해가 - 로떨어지지않도록하기위해서는비음(Non-negativity)제약조건을반드시적용해야합니다。

情节(t y“b -”t0, y0,“罗”t1, y1,“k *’);传奇(精确解的“没有限制”“Nonnegativity”...“位置”“西南”

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象代表正解,无约束,非负性。

예:무릎문제(膝盖问题)

음이아닌해가필한문제를보여주는또다른예는무릎 문제이며,예제파일kneeode에코딩되어있습니다。방정식은다음과같습니다。

ϵ y 1 - x y - y 2

초기 조건 y 0 1 을사용하여구간 0 2 에대해이방정식을풉니다。일반적으로 0 < ϵ 1 을충족하는파라미터 ϵ 이사용되며,이문제에서는 ϵ 1 × 1 0 - 6 을사용합니다。이ode의해는 x < 1 에서 y 1 - x x > 1 에서 y 0 에접근합니다。하지만,디폴트허용오차를사용하여수치해를계산하면해가전체적분구간에서 y 1 - x 등경사선(等斜)을따릅니다。비음제약조건을적용하면올바른해가결과로생성됩니다。

비음제약조건을적용한상태와그렇지않은상태모두에서무릎문제(膝伤)를풉니다。

= 1e-6;Y0 = 1;Xspan = [0 2];Odefcn = @(x,y,) ((1-x)*y - y^2)/;不加约束地解决问题(x1, y1) = ode15s (@ (x, y) odefcn (x, y,ε)xspan, y0);施加一个非负性约束选项= odeset(非负的1);[x2,y2] = ode15s(@(x,y) odefcn(x,y,epsilon), xspan, y0, options);

비교를위해해를플로팅합니다。

情节(x1, y1,“罗”x2, y2," b *’(0,2,-1,1])“膝盖问题”)传说(“没有限制”“Non-negativity”)包含(“x”) ylabel (“y”

图中包含一个轴对象。标题为“膝盖问题”的坐标轴对象包含2个类型为line的对象。这些对象代表无约束,非否定性。

참고 문헌

[1]香波,L.F, S.汤普森,J.A. Kierzenka和G.D. Byrne,“颂歌的非负解”,金宝搏官方网站应用数学与计算Vol. 170, 2005, pp. 556-569。

참고 항목

관련 항목