ODESolStruc - dsolve による階数の減少
使い方
ODESolStruc(ans, [{reduced_ODE}, {TR}, {ITR}])
パラメータ
ans - y(x) についての常微分方程式の (r, s(r)) として表された解
{reduced_ODE} - s(r) のための reduced_ODEs を含んだ集合
{TR} - (r,s(r)) から (x,y(x)) までの変換方程式を含んだ集合
{ITR} - (x,y(x)) から (r,s(r)) までの変換方程式を含んだ集合
* {r, s(r)} と {x, y(x)} は、どんな独立変数と従属変数の組も表します。
|
説明
|
|
•
|
高階常微分方程式については、問題を最後まで解くか、または常微分方程式の階数を下げる途中で dsolve が成功することがあります。この場合、答えは ODESolStruc を用いて表されます。このルーチンの動機付けとしては、階数が DEtools や series 展開、またはその他の手法によって減少するような常微分方程式の解を得られるかもしれないことにあります。もし、階数の減少した常微分方程式の解が得られたならば、もとの問題の解が DEtools[buildsol] を用いて組み立てられることを意味します。
|
•
|
ODESolStruc は二つの要素からなる関数です。一つ目の要素は、 dsolve によって解く過程で導入された新しい ( ここでは r か s(r) と呼ばれる ) 変数による数学的構造からなる値です。二つ目の要素は、以下を含む三つの集合からなるリストです。s(r) によって減少した常微分方程式、減少の過程で用いた {r, s(r)} から {x, y(x)} までの変数の変換 (TR) ( ここではもとの問題の変数を表します。 ) 、そして逆変換 (ITR) 。
|
•
|
変換の集合 TR と ITR は次で定義されます。 TR を用いて変換した減少した常微分方程式の変数は、もとの常微分方程式を満たさなくてはいけません。 ITR を用いて変換したもとの常微分方程式の変数は、減少した常微分方程式を満たさなくてはいけません ( 以下の例をご参照ください ) 。変数の変換を行うためには PDEtools[dchange] をご参照ください。
|
•
|
ODESolStruc の微分のルールは次で定義されます。導関数を計算する場合、一つ目の要素 ( 数学的構造からなる値 ) のみで微分し、さらに導関数は古い独立変数 x の関数として考えられます。合成関数の導関数を計算する場合は、変換方程式 TR を考慮します。注意として、新しい変数 {r, s(r)} は、 "dummies" ( 定積分の積分変数のような ) であり、新しい変数 r を持つ ODESolStruc の導関数であるときは、 0 となります。
|
|
|
例
|
|
2 階非線型常微分方程式
>
|
ode[1] := diff(diff(y(x),x),x) = -(diff(y(x),x)^2*y(x)^2+x)/y(x)^3;
|
| (2.1) |
この常微分方程式は、 dsolve によってアーベル型の一階常微分方程式まで減少する。
>
|
ans[1] := dsolve(ode[1]);
|
| (2.2) |
ODESolStruc の表示は、左辺においては `&where` を使って最初の演算数 ( 答え ) として表示され、右辺においては減少した常微分方程式と変換方程式を含むリストとして表示されます。
ODESolStruc を含んでいる答えは、 odetest を用いてテストすることができます。
>
|
odetest(ans[1],ode[1]);
|
| (2.3) |
ODESolStruc の部分はマウスを使うか、もしくは次のコマンドによって選ぶことができます。
>
|
reduced_ODE := op([2,2,1,1],ans[1]);
|
| (2.4) |
>
|
TR := op([2,2,2],ans[1]);
|
| (2.5) |
>
|
ITR := op([2,2,3],ans[1]);
|
| (2.6) |
>
|
new_vars := map(lhs,TR);
|
| (2.7) |
>
|
old_vars := map(lhs,ITR);
|
| (2.8) |
もとの常微分方程式 ( 上のode[1] ) は以下のような TR を用いて、減少した常微分方程式の変数を変換することで再度得ることができます。
>
|
PDEtools[dchange](TR,reduced_ODE):
original_ODE := normal(isolate(%,diff(y(x),x,x)));
|
| (2.9) |
減少した常微分方程式は、逆変換 ITR を用いた変数の変換によって、もとの常微分方程式から得ることができます。
>
|
PDEtools[dchange](ITR,original_ODE,[_a,_b(_a)]):
collect(isolate(%,diff(_b(_a),_a)),_b(_a),normal);
|
| (2.10) |
|
|