主要内容

非负的颂歌的解决方案

本主题显示如何限制ode的解决方案是非负的。施加非承诺并不总是微不足道的,但有时由于对方程的物理解释或由于解决方案的性质,有时是必要的。在必要时,您应该只对解决方案强加这一限制,例如在没有它的情况下集成失败的情况下,或者解决方案将不可应用的地方。

如果解的某些成分必须是非负的,那么使用odeset设置非负选择这些组成部分的指数。此选项不适用于ode23sode15i,或用于隐式求解器(ode15sode23tode23tb)应用于质量矩阵问题。特别地,你不能在DAE问题上施加非负约束,因为它必须有一个奇异质量矩阵。

例如:绝对值函数

考虑初值问题

y - | y |

在区间上求解 0 4 0 在初始条件下 y 0 1 .ODE的解衰减到0。如果求解器产生一个负的解值,那么它就开始通过这个值跟踪ODE的解,当计算的解发散到时,计算最终失败 - .使用非负选项可防止此集成失败。

比较的解析解 y t e - t 使用颂歌的解决方案ODE45.没有其他选择,只有一个非负选项集。

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

将三种解决方案绘制出来进行比较金宝搏官方网站。强加非负性是防止解决方案偏离方向的关键 -

绘图(t,y,'b-',t0,y0,“罗”,t1,y1,“k *’);传奇(精确解的“没有限制”“Nonnegativity”...'地点'“西南”

图中包含一个轴对象。轴对象包含3个类型线的对象。这些对象代表精确的解决方案,没有约束,非空缺性。

例子:膝盖问题

另一个需要非负解的问题的例子是膝盖问题在示例文件中编码kneeode.等式是

ε. y 1 - x y - y 2

在区间上求解 0 2 在初始条件下 y 0 1 .的参数 ε. 一般是用来满足的 0 < ε. 1 ,这个问题用 ε. 1 × 1 0 - 6 .这个ODE的解决方案是 y 1 - x x < 1 y 0 x > 1 .然而,计算带有默认公差的数值解表明,该解遵循 y 1 - x 整个积分区间的等斜线。施加非负性约束会得到正确的解。

解决膝关节问题,没有非承诺约束。

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

画出解决方案进行比金宝搏官方网站较。

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

图中包含一个轴对象。标题为“膝盖问题”的轴对象包含两个类型为line的对象。这些对象表示无约束,非负性。

参考

[1]洗发丁,L.F.,S. Thompson,J.A.Kierzenka,和G.D.Byrne,“ODES的非负面解决方案”金宝搏官方网站应用数学与计算卷。170,2005,pp。556-569。

另请参阅

相关话题