Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica >

入門:微分方程式の数値解法

NDSolve[eqns,y,{x,xmin,xmax}]
独立変数xxmin からxmax の区間において,関数y について数値解析的に解く
NDSolve[eqns,{y1,y2,...},{x,xmin,xmax}]
yi について連立方程式を解く

微分方程式の数値解法

0<x<2における微分方程式y (x)=y (x)の数値解を生成する.結果は,補間関数InterpolatingFunctionの形で与えられる.
In[1]:=
Click for copyable input
Out[1]=
これは,y (1.5)の値である.
In[2]:=
Click for copyable input
Out[2]=
x2+3x+1=0のような代数方程式では,個々のx の解は単なる1つの数である.一方,微分方程式では,解は数ではなく関数である.例えば,y (x)=y (x)の方程式では,独立変数x の区間を限定した上で,関数y (x)の近似解を得るようにしたい.
Mathematica は,関数の近似解をInterpolatingFunctionオブジェクトとして返す.このオブジェクトは,特定のx の値に適用されるとき,その点におけるy (x)の近似値を返す.このときInterpolatingFunctionは,補間点xにおけるy (xi)の値から構成されるテーブルを保持し,このテーブルで補間することで特定の点x におけるy (x)の近似値を求める.
y[x]/.solutiony[x]の値を求めるのに関数y にリスト規則を適用する
InterpolatingFunction[data][x]x で補間式を計算する
Plot[Evaluate[y[x]/.solution],{x,xmin,xmax}]
微分方程式の解をプロットする

NDSolveで求まった解の応用

連立微分方程式を解く.
In[3]:=
Click for copyable input
Out[3]=
これは,解に従って求めたz[2]の値である.
In[4]:=
Click for copyable input
Out[4]=
第3行で求めたz[x]の解をプロットする.Plotの使い方は「基本的なプロット」を参照.
In[5]:=
Click for copyable input
Out[5]=
NDSolve[eqn,u,{x,xmin,xmax},{t,tmin,tmax},...]
偏微分方程式を解く

偏微分方程式の数値解

Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team