関数 > 求解と最適化 > 微分方程式の解法 > ODE の初期条件を求める
ODE の初期条件を求める
次の関数は、すべての初期条件が知られているわけではない境界値問題を解く場合に使用します。
bvalfit(v1, v2, x1, x2, xf, D, load1, load2, scoreb)
sbval(v1, x1, x2, D, load1, scorei)
D で指定された常微分方程式 (ODE) または連立常微分方程式の、x1 において未指定のままの初期値を含むベクトルを返しますこれらの初期値は、いずれかの ODE ソルバで使用できます。解の一部の値と、その中間値における n − 1 個の 1 次導関数がわかっている場合は、bvalfit 関数を使用します。この関数は、導関数が積分区間のどこかで不連続な場合に便利です。初期値と最終値の一部の値がわかっている場合は sbval を使用します。両終点から射撃して、解の軌跡と中間点の導関数を一致させることで、境界値問題が初期値問題に変換されます。
引数
v1v2 は、x1 で指定されていない初期値の推定値を成分とする実数のベクトルです。
x1x2 は、微分方程式の解を求める区間の両終点を表す実数です。
xf は、解の軌跡が等しくなるように制約される x1x2 の間の中間点を表す実数です。
D(x, y) は、連立常微分方程式のすべての未知関数の 1 次導関数の方程式を含む、独立変数 x と関数のベクトル y を含む n 成分のベクトル値関数です。
このベクトルを作成するには、乗数と高次導関数を使用せずに、左辺を 1 次導関数項のみとする形に方程式を変換します。たとえば、2 次導関数を含む関数 y(x) による 1 つの常微分方程式は、y0(x)y1(x) に連立方程式として記述する必要があります。ここで y0 の 1 次導関数が y1 です。次の 1 関数の常微分方程式は、ベクトルの下付き文字を使用してソルバ用に次のように書き直されます。
クリックしてこの式をコピー
クリックしてこの式をコピー
ここで、左辺は暗黙的に次のようになります
load1(x1, v1), load2(x2, v2) は、成分がそれぞれ x1x2 における yn の値に対応する実数のベクトル値関数です。これらの一部の値は既知の初期条件。未知の値は、v1v2 の各推定値に対応するように設定されます。
scoreb(xf, y) は、xf で解をどのように一致させるかを指定する実数のベクトル値関数です。すべての未知関数の解を xf と一致させるために、通常は scoreb(xf, y):= y と定義します。
scorei(x2, y) は、v と同じ数の成分を持つ実数のベクトル値関数です。各成文は、最初に指定した、x2 における初期条件と、これに対応するソルバによる推定値との差です。score ベクトルは、求められた解が x2 における初期条件とどれほど近くなければならないかを決めます。成分の値が 0 の場合は、対応する初期条件と、返された値が一致していることを示します。
これは役に立ちましたか?