How to | 微分方程式を解く方法
Wolfram言語の微分方程式を解くための関数は,ユーザが予め処理しなくてもよい適切なアルゴリズムを自動的に選択して,多くの種類の微分代数方程式に適用できるようになっている.
DSolveを使って,独立変数
で
について微分方程式
を解く:
DSolve[y'[x] == x, y[x], x]DSolveによって与えられる解は,規則のリストのリストである.一番外側のリストは可能な解すべてを含み,小さなリストのそれぞれは特定の解である.
解を関数として使用したい場合は,規則をまず何か(この場合は,solution)に割り当てるとよい:
solution = DSolve[y'[x] == x, y[x], x]今度は短縮形solution[[1]]を使う解の最初の部分を取るために,Partを使う.「/.」(ReplaceAllの短縮形)を使ってy[x]を 置換し,「=」を使って関数f[x]を定義する:
f[x_] = y[x] /. solution[[1]]f[4]初期条件を指定するために,方程式と初期条件 (
および
) をリストにして囲む:
DSolve[{y''[x] == y[x], y[0] == 1, y'[0] == 1}, y[x], x]十分な初期条件が与えられていない場合は,定数C[n]が返される:
DSolve[y''[x] == y[x], y[x], x]DSolve[{y'[x] == z[x], z'[x] == -y[x], y[0] == 0, z[0] == 1}, {y[x], z[x]}, x]DSolve[{x'[s] == Cos[t[s]], y'[s] == Sin[t[s]], t'[s] == s, x[0] == 0, y[0] == 0, t[0] == 0}, {x[s], y[s], t[s]}, s]DSolve,「/.」,Table,Plot を一緒に使うと,定数のさまざまな値について完全には指定されていない微分方程式の解をグラフにすることができる.
まずDSolveを使って微分方程式を解き,その結果をsolutionに設定する:
solution = DSolve[{y''[x] == y[x], y'[0] == 0}, y[x], x]solutionを使う関数g[x]を定義するために,「=」,「/.」,Partを使う:
g[x_] = y[x] /. solution[[1]]1 から10のC[1]の整数値について関数t[x]の表を定義する:
t[x_] = Table[g[x] /. C[1] -> j, {j, 1, 10}]Plotを使って表を
の範囲でプロットする:
Plot[t[x], {x, -2, 2}]