[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
21.1 Introduction to Differential Equations | ||
21.2 Functions and Variables for Differential Equations |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
この節は
Maximaで利用可能な、
一次と二次方程式のいくつかの特定のタイプの解析解を得るための関数を記述します。
微分方程式系の数値解を得るには
付加パッケージdynamics
を参照してください。
位相空間でのグラフィカルな表現に関しては
付加パッケージplotdf
を参照してください。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
二階微分方程式の境界値問題を解きます。
ここで: solutionは ode2
が見つけるような方程式の一般解です;
xval1は独立変数の最初の点の値を形式 x = x1
で指定し、
yval1はその点の従属変数の値を形式 y = y1
で与えます。
式 xval2と yval2は
対応する変数の二番目の点での値を同じ形式を使って与えます。
用法の例については ode2
を参照してください。
Categories: Differential equations
関数 desolve
はラプラス変換を使って線形常微分方程式系を解きます。
ここで eqn群は従属変数 x_1, ..., x_nに関する微分方程式です。
x_1, ..., x_nの独立変数―例えばx―への関数依存性は
変数や導関数の中で明示されなければいけません。
例えば、以下は2つの方程式を定義する正しい方法ではありません:
eqn_1: 'diff(f,x,2) = sin(x) + 'diff(g,x); eqn_2: 'diff(f,x) + x^2 - f = 2*'diff(g,x,2); |
正しい方法は以下の通りです:
eqn_1: 'diff(f(x),x,2) = sin(x) + 'diff(g(x),x); eqn_2: 'diff(f(x),x) + x^2 - f(x) = 2*'diff(g(x),x,2); |
関数 desolve
のコールは、
desolve([eqn_1, eqn_2], [f(x),g(x)]); |
です。
もし x=0
の初期条件が既知なら、
それらは atvalue
を使って desolve
コールの前に供給することができます。
(%i1) 'diff(f(x),x)='diff(g(x),x)+sin(x); d d (%o1) -- (f(x)) = -- (g(x)) + sin(x) dx dx (%i2) 'diff(g(x),x,2)='diff(f(x),x)-cos(x); 2 d d (%o2) --- (g(x)) = -- (f(x)) - cos(x) 2 dx dx (%i3) atvalue('diff(g(x),x),x=0,a); (%o3) a (%i4) atvalue(f(x),x=0,1); (%o4) 1 (%i5) desolve([%o1,%o2],[f(x),g(x)]); x (%o5) [f(x) = a %e - a + 1, g(x) = x cos(x) + a %e - a + g(0) - 1] (%i6) [%o1,%o2],%o5,diff; x x x x (%o6) [a %e = a %e , a %e - cos(x) = a %e - cos(x)] |
もし desolve
が解を得られないなら false
を返します。
Categories: Differential equations · Laplace transform
一階微分方程式の初期値問題を解きます。
ここで solutionは ode2
が見つけるような方程式の一般解であり、
xvalは独立変数の初期値を形式 x = x0
で与え、
yvalは従属変数の初期値を形式 y = y0
で与えます。
用法の例については ode2
を参照してください。
Categories: Differential equations
二階微分方程式の初期値を解きます。
ここで solutionは ode2
が見つけるような方程式の一般解のであり、
xvalは独立変数の初期値を形式 x = x0
で与え、
yvalは従属変数の初期値を形式 y = y0
で与え、
dvalは従属変数の独立変数に関する一階導関数の初期値を形式
diff(y,x) = dy0
で与えます。
(diff
はクォートの必要はありません。)
用法の例については ode2
を参照してください。
Categories: Differential equations
関数 ode2
は一階または二階常微分方程式 (ODE)を解きます。
3つの引数を取ります:
eqnで与えられるODE、従属変数 dvar、独立変数 ivar。
成功した時、従属変数に関する陽解または陰解を返します。
一階方程式の場合 %c
が積分定数を表し、
二階方程式の場合 %k1
と%k2
が定数を表します。
従属変数の独立変数への依存性は、
desolve
の場合のように明示の必要はありませんが、
独立変数はいつも三番目の引数として与えられなければいけません。
たとえどんな理由でも もし ode2
が解を得られなかったら、
おそらく、エラーメッセージを表示した後 false
を返します。
一階方程式用に実装された方法は、試される順番に、線形、分離、厳密―おそらく因子の積分を要求します―、斉次、ベルヌーイの等式、一般化斉次法、です。
解ける二階方程式のタイプは、定係数、厳密、定数係数に変換可能な非定数係数線形斉次、
オイラーまたは等次元方程式、パラメータ変動法で解ける方程式、
独立変数または従属変数を含まなくて、順に解かれる2つの一階線形方程式に換算できる方程式、
です。
ODEを解く間、いくつかの変数が純粋に参考目的で設定されます:
method
は使われた解法(例えば、 linear
)を示し、
intfactor
は任意の使われた積分因子を示し、
odeindex
はベルヌーイ法または一般化斉次法のインデックスを示し、
yp
はパラメータ変動手法の特殊解を示します。
初期値問題(IVP)を解くためには、
一階と二階方程式のためには関数 ic1
と ic2
が利用可能であり、
二階境界値問題(BVP)を解くためには bc2
を使うことができます。
例:
(%i1) x^2*'diff(y,x) + 3*y*x = sin(x)/x; 2 dy sin(x) (%o1) x -- + 3 x y = ------ dx x (%i2) ode2(%,y,x); %c - cos(x) (%o2) y = ----------- 3 x (%i3) ic1(%o2,x=%pi,y=0); cos(x) + 1 (%o3) y = - ---------- 3 x (%i4) 'diff(y,x,2) + y*'diff(y,x)^3 = 0; 2 d y dy 3 (%o4) --- + y (--) = 0 2 dx dx (%i5) ode2(%,y,x); 3 y + 6 %k1 y (%o5) ------------ = x + %k2 6 (%i6) ratsimp(ic2(%o5,x=0,y=0,'diff(y,x)=2)); 3 2 y - 3 y (%o6) - ---------- = x 6 (%i7) bc2(%o5,x=0,y=1,x=1,y=3); 3 y - 10 y 3 (%o7) --------- = x - - 6 2 |
Categories: Differential equations
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by 市川雄二 on June, 21 2016 using texi2html 1.76.