波動方程式の初期値問題を解く
波動方程式を伝播の単位速度で指定する.
In[1]:=
weqn = D[u[x, t], {t, 2}] == D[u[x, t], {x, 2}];方程式の初期条件を与える.
In[2]:=
ic = {u[x, 0] == E^(-x^2), Derivative[0, 1][u][x, 0] == 1};初期値問題を解く.
In[3]:=
DSolveValue[{weqn, ic}, u[x, t], {x, t}]Out[3]=
波動は2つの特性方向に沿って伝播する.
In[4]:=
DSolveValue[{weqn, ic}, u[x, t], {x, t}];
Plot3D[%, {x, -7, 7}, {t, 0, 4}, Mesh -> None]Out[4]=

区分的データで初期値問題を解く.
In[5]:=
ic = {u[x, 0] == UnitBox[x] + UnitTriangle[x/3],
Derivative[0, 1][u][x, 0] == 0};In[6]:=
DSolveValue[ {weqn, ic}, u[x, t], {x, t}]Out[6]=
初期データの不連続性は,特性方向に沿って伝播される.
In[7]:=
DSolveValue[ {weqn, ic}, u[x, t], {x, t}];
Plot3D[%, {x, -7, 7}, {t, 0, 4}, PlotRange -> All, Mesh -> None,
ExclusionsStyle -> Red]Out[7]=

指数関数の和を初期データとして,初期値問題を解く.
In[8]:=
ic = {u[x, 0] == E^(-(x - 6)^2) + E^(-(x + 6)^2),
Derivative[0, 1][u][x, 0] == 1/2};In[9]:=
sol = DSolveValue[ {weqn, ic}, u[x, t], {x, t}]Out[9]=
解を可視化する.
In[10]:=
Plot3D[sol, {x, -30, 30}, {t, 0, 20}, PlotRange -> All, Mesh -> None,
PlotPoints -> 30]Out[10]=
