dsolve/numeric/mebdfi - 微分代数方程式の数値解
|
使い方
|
|
dsolve( , numeric, method=mebdfi, vars, options)
|
|
パラメータ
|
|
daesys
|
-
|
微分代数方程式および初期条件のセットまたはリスト
|
numeric
|
-
|
数値解を導くために dsolve に示す手順のリテラル名
|
method=mebdfi
|
-
|
使用する数学的な方法のリテラル方程式
|
vars
|
-
|
(オプション) daesys の従属変数のセットまたはリスト
|
options
|
-
|
(オプション) keyword = value の形式による方程式
|
|
|
|
|
説明
|
|
•
|
dsolve コマンドにオプション numeric および method=mebdfi を指定すると、DAE 系の数値解を Modified Extended Backward Differentiation Equation Implicit 公式を使用して求めることができます。これはスティッフ法のため、スティッフ問題 を効率的に処理できます。通常の ODE 問題を解く場合も使用できますが、標準的な ODE ソルバを使用することをお勧めします (dsolve[numeric,IVP] を参照してください)。
|
•
|
mebdfi 方法で使用できるオプションには以下の種類があります。
|
'output'
|
=
|
キーワードまたは配列
|
'known'
|
=
|
名前または名前のリスト
|
'startinit'
|
=
|
ブール式
|
'optimize'
|
=
|
ブール式
|
'maxfun'
|
=
|
整数
|
'abserr'
|
=
|
数値
|
'relerr'
|
=
|
数値
|
'minstep'
|
=
|
数値
|
'maxstep'
|
=
|
数値
|
'initstep'
|
=
|
数値
|
'maxord'
|
=
|
整数
|
|
|
|
'output' オプションは dsolve からの出力を指定し、known オプションはユーザー定義の既知の関数を指定します。これらのオプションについては、dsolve[numeric] で説明します。
|
|
'startinit' および 'optimize'
|
|
このオプションは求められる解を得るための手順の最大数を指定します。この直接ソルバがもっとも類似するのは dsolve[maxfun] です。デフォルトではこのオプションは無効になっています。
|
|
'minstep'、'maxstep'、および 'initstep'
|
|
このオプションは、一連の計算で使用する公式の最大次数を 2 から 8 までの整数で指定します。デフォルト値は 8 ですが、難解な問題では、この値を か に指定する必要がある場合もあります。低い次数の方が安定しますが精度は低くなります。
|
•
|
数値計算を行うと mebdfi プロシージャの条件エラーに関するエラーメッセージが返されることがあります。
|
|
|
例
|
|
複振子:
>
|

|

| (4.1) |
>
|
|

| (4.2) |
デフォルトの解は以下のようになります:
>
|
|
| (4.3) |
>
|
|
>
|
|
![[t = 10., lambda1(t) = 6.94720602090427786, lambda2(t) = -2.53134862272232564, x1(t) = -.439459838644240708, diff(x1(t), t) = -1.44017994390938187, x2(t) = -.179777152767566173, diff(x2(t), t) = .349648527773635420, y1(t) = -.898262239571061993, diff(y1(t), t) = .704583551509042283, y2(t) = -.470986093363457925, diff(y2(t), t) = -.383205034203815853]](/support/helpjp/helpview.aspx?si=2004/file01004/math359.png)
| (4.4) |
>
|
|
| (4.5) |
安定性を保つために低次数にします:
>
|
|
| (4.6) |
>
|
|
>
|
|
![[t = 10., lambda1(t) = 5.65660103182064855, lambda2(t) = 0.806509357934836468e-1, x1(t) = -.434630747195546563, diff(x1(t), t) = -1.44297236517719241, x2(t) = -.140066880924155063, diff(x2(t), t) = .476773500396801664, y1(t) = -.900608748865978970, diff(y1(t), t) = .696373147519378621, y2(t) = -.496588795571949293, diff(y2(t), t) = -.703281780722039063]](/support/helpjp/helpview.aspx?si=2004/file01004/math386.png)
| (4.7) |
>
|
|
| (4.8) |
|
|
参照
|
|
dsolve/dae_extension, dsolve/Error_Control, dsolve[maxfun], dsolve[numeric,DAE], dsolve[numeric,IVP], dsolve[numeric], dsolve[rkf45], dsolve[rosenbrock], dsolve[Stiffness], plots[odeplot]
|
|
参考文献
|
|
Cash, J.R. "The Integration of stiff IVP in ODE using modified extended BDF." Computers and Mathematics with Applications. Vol. 9. (1983): 645-657.
Cash, J.R., and Considine, S. "An MEBDF code for stiff IVP." ACM Trans Math Software. 1992: 142-158.
|
|
Download Help Document
Was this information helpful?