dsolve - ODE 問題に対して級数解を求める
使い方
dsolve(ODE, y(x), 'series')
dsolve({ODE, ICs}, y(x), 'series')
dsolve({sysODE, ICs}, {funcs}, 'series')
dsolve(ODE, y(x), 'type=series')
dsolve({ODE, ICs}, y(x), 'type=series')
dsolve({sysODE, ICs}, {funcs}, 'type=series')
パラメータ
ODE - 常微分方程式
y(x) - 独立変数(不定関数)
ICs - y(x) とその導関数の初期条件
sysODE - 連立 ODE
{funcs} - 不定関数の集合
'type=series' - 級数解を求める
|
説明
|
|
•
|
dsolve は単独の ODE あるいは連立 ODE についていくつかの方法により級数解を求めます。初期条件が与えられた場合は、与えられた点において級数を計算します。そうでないと通常点と仮定された原点で級数を計算します。
|
•
|
最初に使われる方法は Keith Geddes の論文を基礎とした Newton 反復法です。このページの参考文献を参照してください。
|
•
|
第2の方法は、級数を与える(solve によって)解ける連立方程式を生成する直接代入法からなります。
|
•
|
第3の方法は n 階の線形 DE に対する Frobenius 法です。 このページの参考文献を参照してください。
|
•
|
上記の方法が成功しない場合、dsolve 関数は LinearFunctionalSystems[SeriesSolution] を呼びます。
|
|
|
例
|
|
>
|
ode := diff(y(t),t,t)+diff(y(t),t)^2=0;
|
| (2.1) |
初期条件が与えられない場合は、原点で実行された不定関数の項とその導関数の項として解は表示されます。
>
|
ans := dsolve( {ode}, y(t), type=series);
|
| (2.2) |
初期条件が与えられた場合は、与えられた点で級数は計算されます。
>
|
ans := dsolve( {ode, y(a)=Y_a, D(y)(a)=DY_a}, y(t), type=series);
|
| (2.3) |
級数展開の位数(デフォルトでは6)は(環境変数 - Order を参照)で変えられます。たtえば、
| (2.4) |
連立 ODE の例
>
|
sys := {diff(y(t),t)=-x(t),diff(x(t),t)=y(t)};
|
| (2.5) |
>
|
ans := dsolve(sys union {x(0)=A,y(0)=B}, {x(t),y(t)}, type=series);
|
| (2.6) |
LinearFunctionalSystems[SeriesSolution] により解かれる例
>
|
sys:=[diff(y1(x),x)-y1(x)+x*y2(x)=x^3,x*diff(y2(x),x)-2*y2(x)];
|
| (2.7) |
| (2.8) |
>
|
dsolve({op(sys)} union {y1(0)=13},vars,'series');
|
| (2.9) |
|
|
参照
|
|
series, dsolve, dsolve,system, dsolve,ICs, dsolve,inttrans, dsolve,numeric, dsolve,Lie, DEtools, plots[odeplot], Slode, LinearFunctionalSystems[SeriesSolution]
|
|
参考文献
|
|
|
Geddes, Keith. "Convergence Behaviour of the Newton Iteration for First Order Differential Equations", Proceedings of EUROSAM '79, pp.189-199.
|
|
Ince, E.L., Ordinary Differential Equations, pp. 398-406.
|
|
Forsyth, Theory of Differential Equations, pp. 78-90.
|
|
|