グリーン(Green)関数を使って初期値問題を解く
GreenFunctionを使って非斉次微分方程式の初期値問題を解く.
まずグリーン関数を計算する.
In[1]:=
gf[s_, t_] =
GreenFunction[{-u''[t] + u'[t] - 37/4 u[t], u[0] == 0, u'[0] == 0},
u[t], {t, 0, \[Infinity]}, s]
Out[1]=
強制関数を定義する.
In[2]:=
f[t_] := Cos[a t]
強制関数でグリーン関数をたたみ込むと,解が得られる.
In[3]:=
sol = Integrate[gf[s, t] f[s], {s, 0, \[Infinity]},
Assumptions -> t > 0]
Out[3]=
DSolveValueで与えられる結果と比較する.
In[4]:=
DSolveValue[{-u''[t] + u'[t] - 37/4 u[t] == f[t], u[0] == 0,
u'[0] == 0}, u[t], t] // FullSimplify
Out[4]=
パラメータ a のさまざまな値に対する解をプロットする.
In[5]:=
Plot[Table[sol, {a, 1, 4, 0.8}] // Evaluate, {t, 3, 6}]
Out[5]=