2 * Introduction to Differential Equations::
3 * Functions and Variables for Differential Equations::
6 @node Introduction to Differential Equations, Functions and Variables for Differential Equations, Differential Equations, Differential Equations
7 @section Introduction to Differential Equations
10 一次と二次方程式のいくつかの特定のタイプの解析解を得るためのMaximaで利用可能な関数を
13 付加パッケージ@code{dynamics}を参照してください。
15 付加パッケージ@code{plotdf}を参照してください。
17 @node Functions and Variables for Differential Equations, , Introduction to Differential Equations, Differential Equations
18 @section Functions and Variables for Differential Equations
21 @deffn {関数} bc2 (@var{solution}, @var{xval1}, @var{yval1}, @var{xval2}, @var{yval2})
23 ここで: @var{solution}は、@code{ode2}が見つけるような方程式の一般解です;
24 @var{xval1}は、独立変数の最初の点の値を、形式@code{@var{x} = @var{x1}}で指定し、
25 @var{yval1}は、その点の従属変数の値を、形式@code{@var{y} = @var{y1}}で与えます。
26 式@var{xval2}と@var{yval2}は、
27 それらの変数の二番目の点での値を、同じ形式を使って与えます。
29 用法の例については@code{ode2}を参照してください。
32 @category{Differential equations}
37 @deffn {関数} desolve (@var{eqn}, @var{x})
38 @deffnx {関数} desolve ([@var{eqn_1}, ..., @var{eqn_n}], [@var{x_1}, ..., @var{x_n}])
39 関数@code{desolve}は、ラプラス変換を使って線形常微分方程式系を解きます。
40 ここで、@var{eqn}群は、従属変数@var{x_1}, ..., @var{x_n}に関する微分方程式です。
41 @var{x_1}, ..., @var{x_n}の独立変数、例えば@var{x}、への関数依存性は、
42 変数や導関数の中で陽に示されなければいけません。
43 例えば、これは、2つの方程式を定義する正しい方法ではありません:
46 eqn_1: 'diff(f,x,2) = sin(x) + 'diff(g,x);
47 eqn_2: 'diff(f,x) + x^2 - f = 2*'diff(g,x,2);
53 eqn_1: 'diff(f(x),x,2) = sin(x) + 'diff(g(x),x);
54 eqn_2: 'diff(f(x),x) + x^2 - f(x) = 2*'diff(g(x),x,2);
57 関数@code{desolve}のコールは、
59 desolve([eqn_1, eqn_2], [f(x),g(x)]);
63 もし@code{x=0}の初期条件が既知なら、
64 それらは、@code{atvalue}を使って、@code{desolve}コールの前に供給することができます。
67 @c 'diff(f(x),x)='diff(g(x),x)+sin(x);
68 @c 'diff(g(x),x,2)='diff(f(x),x)-cos(x);
69 @c atvalue('diff(g(x),x),x=0,a);
70 @c atvalue(f(x),x=0,1);
71 @c desolve([%o1,%o2],[f(x),g(x)]);
72 @c [%o1,%o2],%o5,diff;
75 (%i1) @b{@t{'diff(f(x),x)='diff(g(x),x)+sin(x);}}
77 (%o1) -- (f(x)) = -- (g(x)) + sin(x)
79 (%i2) @b{@t{'diff(g(x),x,2)='diff(f(x),x)-cos(x);}}
83 (%o2) --- (g(x)) = -- (f(x)) - cos(x)
87 (%i3) @b{@t{atvalue('diff(g(x),x),x=0,a);}}
89 (%i4) @b{@t{atvalue(f(x),x=0,1);}}
91 (%i5) @b{@t{desolve([%o1,%o2],[f(x),g(x)]);}}
93 (%o5) [f(x) = a %e - a + 1, g(x) =
96 cos(x) + a %e - a + g(0) - 1]
97 (%i6) @b{@t{[%o1,%o2],%o5,diff;}}
99 (%o6) [a %e = a %e , a %e - cos(x) = a %e - cos(x)]
103 もし@code{desolve}が解を得られないなら、
107 @category{Differential equations}
108 @category{Laplace transform}
112 @deffn {関数} ic1 (@var{solution}, @var{xval}, @var{yval})
114 ここで、@var{solution}は、@code{ode2}が見つけるような、方程式の一般解であり、
115 @var{xval}は、独立変数の初期値を、形式@code{@var{x} = @var{x0}}で与え、
116 @var{yval}は、従属変数の初期値を、形式@code{@var{y} = @var{y0}}で与えます。
118 用法の例については@code{ode2}を参照してください。
121 @category{Differential equations}
125 @deffn {関数} ic2 (@var{solution}, @var{xval}, @var{yval}, @var{dval})
127 ここで、 @var{solution}は、@code{ode2}が見つけるような、
129 @var{xval}は、独立変数の初期値を、形式@code{@var{x} = @var{x0}}で与え、
130 @var{yval}は、従属変数の初期値を、形式@code{@var{y} = @var{y0}}で与え、
131 @var{dval}は、従属変数の独立変数に関する一階導関数の初期値を、
132 形式@code{diff(@var{y},@var{x}) = @var{dy0}}で、与えます。
133 (@code{diff}はクォートされる必要はありません。)
135 用法の例については、@code{ode2}を参照してください。
138 @category{Differential equations}
142 @deffn {関数} ode2 (@var{eqn}, @var{dvar}, @var{ivar})
143 関数@code{ode2}は、一階または二階常微分方程式(ODE)を解きます。
145 @var{eqn}で与えられるODE、従属変数@var{dvar}、独立変数@var{ivar}。
146 成功した時、従属変数に関する陽解または陰解を返します。
147 一階方程式の場合、@code{%c}が積分定数を表し、
148 二階方程式の場合、@code{%k1}と@code{%k2}が定数を表します。
150 @code{desolve}の場合のように、陽に書かれる必要はありませんが、
151 独立変数はいつも三番目の引数として与えられなければいけません。
153 たとえどんな理由でも、もし@code{ode2}が解を得られなかったら、
154 おそらく、エラーメッセージを表示した後、@code{false}を返します。
155 一階方程式用に実装された方法は、試される順番に、線形、分離、厳密―おそらく因子の積分を要求します―、斉次、ベルヌーイの等式、一般化斉次法、です。
156 解ける二階方程式のタイプは、定係数、厳密、定数係数に変換可能な非定数係数線形斉次、
157 オイラーまたは等次元方程式、パラメータ変動法で解ける方程式、
158 独立変数または従属変数を含まなくて、順に解かれる2つの一階線形方程式に換算できる方程式、
161 ODEを解く間、いくつかの変数が純粋に参考目的で設定されます:
162 @code{method}は、使われた解法(例えば、@code{linear})を示し、
163 @code{intfactor}は、任意の使われた積分因子を示し、
164 @code{odeindex}は、ベルヌーイ法または一般化斉次法のインデックスを示し、
165 @code{yp}は、パラメータ変動手法の特殊解を示します。
168 一階と二階方程式のためには関数@code{ic1}と@code{ic2}が利用可能であり、
170 @code{bc2}を使うことができます。
175 @c x^2*'diff(y,x) + 3*y*x = sin(x)/x;
177 @c ic1(%o2,x=%pi,y=0);
178 @c 'diff(y,x,2) + y*'diff(y,x)^3 = 0;
180 @c ratsimp(ic2(%o5,x=0,y=0,'diff(y,x)=2));
181 @c bc2(%o5,x=0,y=1,x=1,y=3);
184 (%i1) @b{@t{x^2*'diff(y,x) + 3*y*x = sin(x)/x;}}
186 (%o1) x -- + 3 x y = ------
188 (%i2) @b{@t{ode2(%,y,x);}}
190 (%o2) y = -----------
193 (%i3) @b{@t{ic1(%o2,x=%pi,y=0);}}
195 (%o3) y = - ----------
198 (%i4) @b{@t{'diff(y,x,2) + y*'diff(y,x)^3 = 0;}}
201 (%o4) --- + y (--) = 0
204 (%i5) @b{@t{ode2(%,y,x);}}
207 (%o5) ------------ = x + %k2
209 (%i6) @b{@t{ratsimp(ic2(%o5,x=0,y=0,'diff(y,x)=2));}}
213 (%o6) - ---------- = x
216 (%i7) @b{@t{bc2(%o5,x=0,y=1,x=1,y=3);}}
219 (%o7) --------- = x - -
225 @category{Differential equations}