このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
》、《このトピックではの解が非負になるように制約する方法を説明します。非負の制約を課すことは必ずしも簡単ではありませんが,方程式の物理的な解釈や解の性質によっては必要になる場合があります。解に対するこのような制約は,必要な場合にのみ行ってください。たとえば,この制約がないと積分が失敗する場合や解が適切ではない場合です。
解の特定の要素が非負でなければならない場合,odeset
を使用して,これらの要素のインデックスに非负
オプションを設定します。このオプションは,ode23s
またはode15i
には使用できません。また,質量行列を使用する問題に対して適用する陰的ソルバー(ode15s
、ode23t
、ode23tb
)にも使用できません。特に,必ず特異質量行列をもつDAE問題に非負の制約を課すことはできません。
次の初期値問題について考えます。
この問題では,初期条件を
として,区間
について解を求めます。この颂歌の解はゼロに減衰します。ソルバーが解として負の値を生成する場合は,この値を使用して颂歌の解の追跡が開始され,計算解が
に発散すると,計算が最終的に失敗します。非负
オプションを使用すると,このような積分の失敗を防ぐことができます。
ODEの求解で数值
を追加オプションなしで使用した場合と,これを非负
オプションを設定した場合について,
の解析解との比較を行います。
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);
この3つの解をプロットして比較します。解が に向かわないようにするには,非負の制約を課すことが非常に重要です。
情节(t y“b -”t0, y0,“罗”t1, y1,“k *’);传奇(精确解的,“没有限制”,“Nonnegativity”,...“位置”,“西南”)
非負の解が必要な問題のもう一つの例として,”膝盖問題”を取り上げます。この問題はサンプルファイルkneeode
にコード化されています。この方程式は次のとおりです。
この問題では,初期条件を として,区間 について解を求めます。パラメーター は通常, を満たすものとされ,この問題では が使用されます。この颂歌の解は, の場合は に近付き, の場合は に近付きます。ただし,既定の許容誤差を使用して数値解を計算すると,この解は積分の全区間に対して のアイソクラインをなすことが示されます。非負という制約を課すと正確な解になります。
非負の制約を課す場合と課さない場合の膝盖問題の解を求めます。
ε= 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”)包含(“x”) ylabel (“y”)
[1] Shampine, l.f., S. Thompson, J.A. Kierzenka, G.D. Byrne,《ode的非负解》,金宝搏官方网站应用数学与计算2005年第170卷,556-569页。