DEtools[odeadvisor] - ODE を分類して解法を提案
|
使い方
|
|
odeadvisor(ODE)
odeadvisor(ODE, y(x), [type1, type2, ...], help)
|
|
パラメータ
|
|
ODE
|
-
|
常微分方程式
|
y(x)
|
-
|
未定の関数 (明らかでない場合は必須)
|
type1, type2, ...
|
-
|
(オプション) チェックする ODE 分類タイプのサブセット
|
help
|
-
|
(オプション) 指定した ODE を解くための参考となるヘルプページの表示を要求 (dsolve, references を参照)
|
|
|
|
|
説明
|
|
•
|
指定した ODE に対し、odeadvisor コマンドの主要目的は標準的な教科書に従って ODE を分類することです (dsolve,references を参照)。(追加引数として help を指定した場合) ODE を解くための関連情報を含むヘルプページを表示します。ヘルプページにはアドバイスとともに例や Maple の入力行が含まれており、ユーザーの問題に適合させて使うことができます。これらのヘルプページは ?odeadvisor,<TYPE>; と入力しても参照できます。<TYPE> は以下のいずれかです。
|
Abel,
|
Abel2A,
|
Abel2C,
|
Bernoulli,
|
Chini,
|
Clairaut,
|
dAlembert,
|
exact,
|
fully_exact_linear,
|
homogeneous,
|
homogeneousB,
|
homogeneousC,
|
homogeneousD,
|
homogeneousG,
|
linear,
|
patterns,
|
quadrature,
|
rational,
|
Riccati,
|
separable,
|
sym_implicit
|
|
|
|
|
|
|
|
"patterns" のページには以下の ODE パターンの説明が記載されています。
|
Bessel,
|
Duffing,
|
ellipsoidal,
|
elliptic,
|
Emden,
|
erf,
|
exact_linear,
|
exact_nonlinear,
|
Gegenbauer,
|
Halm,
|
Hermite,
|
Jacobi,
|
Lagerstrom,
|
Laguerre,
|
Lienard,
|
Liouville,
|
linear_ODEs,
|
linear_sym,
|
missing,
|
Painleve,
|
quadrature,
|
reducible,
|
sym_Fx,
|
Titchmarsh,
|
Van_der_Pol
|
|
|
•
|
追加引数を指定せずに使用した場合、odeadvisor コマンドは指定の ODE を上記の 1 つまたは複数のタイプに分類し、ODE に一致するタイプのリストを返します。タイプの整合は逐次的にチェックされ、odeadvisor が複数のタイプを返すこともあります。それ以外の場合、最初に一致したパターンによってプロセスが中断し、分類が返されます。
|
•
|
オプションとして、追加引数としてサブリストを指定することで、odeadvisor が上記のタイプのサブリストのみをチェックするように指定できます。
|
•
|
この関数は DEtools パッケージに含まれているため、with(DEtools) コマンドの実行後のみ odeadvisor(..) 形式で使用できます。ただし、長い形式のコマンド名 DEtools[odeadvisor](..) を使用すれば、いつでもアクセスできます。
|
|
|
例
|
|
Kamke's ODE 97
>
|
ODE := x*diff(y(x),x)+a*y(x)^2-y(x)+b*x^2;
|
| (1) |
| (2) |
Kamke's ODE 223
>
|
ODE := (2*y(x)-x)*diff(y(x),x)-y(x)-2*x;
|
| (3) |
| (4) |
>
|
odeadvisor(ODE,[homogeneous,Abel]);
|
| (5) |
2 階 ODE
>
|
ODE := x^2*diff(y(x),x,x)+x*diff(y(x),x)-(x^2+n^2)*y(x);
|
| (6) |
| (7) |
>
|
ODE := diff(x*(1-x^2)*diff(y(x),x),x)-x*y(x)=0;
|
| (8) |
| (9) |
>
|
ODE := diff(y(x),x,x)*x*(1-x) = (g-(a+1)*x)*diff(y(x),x)+n*(a+n)*y(x);
|
| (10) |
| (11) |
odeadvisor コマンドでは、高階 ODE の一部のパターンも認識できます。
>
|
ODE := diff(y(x),x,x,x)+D(g)(y(x))*diff(y(x),x)^3
+2*g(y(x))*diff(y(x),x)*diff(y(x),x,x)
+diff(f(x),x)*diff(y(x),x)+f(x)*diff(y(x),x,x) = 0;
|
| (12) |
| (13) |
>
|
ODE := diff(y(x),x$4)+diff(y(x),x)^4*exp(y(x))
+5*exp(y(x))*diff(y(x),x)^2*diff(y(x),x,x)+2*exp(y(x))*diff(y(x),x,x)^2
+2*exp(y(x))*diff(y(x),x)*diff(y(x),x$3)+diff(f(x),x,x)*diff(y(x),x)
+2*diff(f(x),x)*diff(y(x),x,x)+f(x)*diff(y(x),x$3) = 0;
|
| (14) |
| (15) |
|
|
参考文献
|
|
|
Cheb-Terrab, E.S.、Duarte, L.G.S.、および da Mota, L.A.C.P. 著、『Computer Algebra Solving of First Order ODEs Using Symmetry Methods』、「Computer Physics Communications」、Vol. 101. (1997 年): 254
|
|
Kamke, E. 著、『Differentialgleichungen: Losungsmethoden und Losungen』、New York: Chelsea Publishing Company、1959年
|
|
Zwillinger, D. 著、『Handbook of Differential Equations』、第 2版、Orlando、Florida: Academic Press、1992 年
|
|
|