DESOLVE
DESOLVE ([eq1,...,eqn],[var1,...,varn])
ここでeqは微分方程式であり、その従属変数はvar1,...,varnである。関数の関連性は明示的に式と変数の両方に指定しなければならない。
例えば:
例えば:
(C1) 'DIFF(F,X,2)=SIN(X)+'DIFF(G,X); (C2) 'DIFF(F,X)+X^2-F=2*'DIFF(G,X,2);
は正確な書式では無い。正しい書式は:
(C3) 'DIFF(F(X),X,2)=SIN(X)+'DIFF(G(X),X); (C4) 'DIFF(F(X),X)+X^2-F(X)=2*'DIFF(G(X),X,2);
である。
そして、DESOLVE([D3,D4],[F(X),G(X)]);を実行する。0での初期条件が既知であれば、DESOLVEを呼ぶ前にATVALUEを用いて、それを与えなければならない。
そして、DESOLVE([D3,D4],[F(X),G(X)]);を実行する。0での初期条件が既知であれば、DESOLVEを呼ぶ前にATVALUEを用いて、それを与えなければならない。
(C11) 'DIFF(F(X),X)='DIFF(G(X),X)+SIN(X);
(D11) d/dx F(X) = d/dx G(X) + SIN(X)
(C12) 'DIFF(G(X),X,2)='DIFF(F(X),X)-COS(X);
(D12) d^2/dx^2 G(X) = d/dx F(X) - COS(X)
(C13) ATVALUE('DIFF(G(X),X),X=0,A);
(D13) A
(C14) ATVALUE(F(X),X=0,1);
(D14) 1
(C15) DESOLVE([D11,D12],[F(X),G(X)]);
(D16) [F(X)=A %E^X - A+1, G(X) = COS(X) + A %E^X - A + G(0) - 1]
/* 検証 */
(C17) [D11,D12],D16,DIFF;
(D17) [A %E^X = A %E^X , A %E^X - COS(X) = A %E^X - COS(X)]
DESOLVEが解を得られなければ"FALSE"を返す。
IC1
IC1 (exp,var,var)
初期値問題(IVP)と境界値問題(BVP)を解く為、ODE2パッケージのIC1ルーチンで、一階の微分方程式に対してIC2とBC2ルーチンが各々二階のIVPとBVPに対して利用可能である。これらを用いる為にはLOAD(ODE2);を実行せよ。これらは次の例題で用いられている:
(C3) IC1(D2,X=%PI,Y=0);
COS(X) + 1
(D3) Y = - ----------
3
X
(C4) 'DIFF(Y,X,2) + Y*'DIFF(Y,X)^3 = 0;
2
d Y dY 3
(D4) --- + Y (--) = 0
2 dX
dX
(C5) ODE2(%,Y,X);
3
Y - 6 %K1 Y - 6 X
(D7) ------------------ = %K2
3
(C8) RATSIMP(IC2(D7,X=0,Y=0,'DIFF(Y,X)=2));
3
2 Y - 3 Y + 6 X
(D9) - ---------------- = 0
3
(C10) BC2(D7,X=0,Y=1,X=1,Y=3);
3
Y - 10 Y - 6 X
(D11) --------------- = - 3
3
ODE
ODE (equation,y,x)
ごちゃまぜの常微分方程式ソルバーで、各々の手法で失敗するに従いより難しい手法を試みる様になっている。例えば、最初の試行はODE2を用いるので、ODEを使う利用者は当初からODE2の全ての機能に通じていると仮定してもよく、ODE2をプログラムで使っていれば、それをODE(返却値や呼び方の手続きも同一である)で置き換えてもプログラムはそのまま動作する。
加えて、ODEは様々な機能を持ち、それは基本系で方程式が解けない場合に実行中の ODEソルバーを補助する事が可能なものである。方程式はODE2(参照せよ)が要求するものと同じ形式であり、ODE2の様にyとxが従属変数と独立変数である。より詳細は PRINTFILE(ODE,USAGE,SHARE);を実行せよ。
ODE2
ODE2 (exp,dvar,ivar)
3個の引数を取る:一階又は二階のODE(右手側が0ならば、左手側のみが必要)、従属変数、独立変数である。成功すれば、その従属変数に対して明示的な解か暗示的な解の何れかを返す。%Cは一階の方程式の定数、%K1と%K2は二階の方程式の定数を表わす為に用いられる。ODE2が何らかの理由で解が得られなかった場合、エラーメッセージの表示等の後にFALSEを返す。一階の微分方程式向けに実装され、検証されている解法は:線型、分離法、厳密 - 積分因子が多分要求される -、同次、 Bernoulli方程式、そして一般化同次法である。二次に対しては:定数係数、厳密、定数係数に変換可能な非定数係数を持つ線型同次方程式、Euler又は同次元方程式、仮想変位法、そして分離して解ける二つの独立な一階の線型な方程式に縮約可能となる様な方程式を含まないものがある。ODEを解く手順では、幾つかの変数は純粋に情報的な目的:METHODが記述する解法の集合である。例えば、LINEAR,INTFACTORが記述する積分因子を用い、ODEINDEXはBernoulli法や一般化同次法の添字を記述し、 YPは仮想変位による特殊な解法を記述している。