このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例では2階微分方程式を微分方程式系に変換し,MATLAB®の数値ソルバー数值
を使用して解く方法を説明します。
高階数の常微分方程式を解く一般的な方法は,1階微分方程式系に変換して解くことです。この例では符号数学工具箱™を使用して2階颂歌を1階颂歌系に変換します。その後,MATLABソルバー数值
を使用して方程式系を求解します。
odeToVectorField
を使用してこの2階微分方程式を書き換えます。
変数の取り換えを使います。 および として,両方程式を微分すると,1階微分方程式系が得られます。
信谊y (t)[V] = odeToVectorField (diff (y, 2) = = (1 - y ^ 2) * diff (y) - y)
V =
MATLAB颂歌ソルバーはシンボリック式を入力として受け付けません。したがって,MATLAB颂歌ソルバーを使用して方程式系を求解する前にMATLAB関数に変換しなければなりません。この1階微分方程式系からMATLAB関数を生成するには,matlabFunction
とVを入力として使用します。
M = matlabFunction (V,“var”, {“t”,“Y”})
M =function_handle与价值:@ (t, Y) [Y (2); - (Y(1) ^ 2 - 1.0)。* Y (2) - Y (1)]
この方程式系の解を求めるには,生成されたMATLAB関数を入力として使用し,MATLAB数值
数値ソルバーを呼び出します。
溶胶= ode45(M,[0 20],[2 0]);
linspace
を使用して区間[0,20]で100点を生成し,德瓦尔
を使用して各点の解を評価し,解をプロットします。
fplot (@ (x)德瓦尔(sol x, 1), [0, 20])