기본 솔루션을 사용한 파동 방정식 풀기
한 공간 차원의 파동 방정식을 정의합니다.
In[1]:=
waveOperator = \!\(
\*SubscriptBox[\(\[PartialD]\), \({t, 2}\)]\(u[x, t]\)\) - \!\(
\*SubscriptBox[\(\[PartialD]\), \({x, 2}\)]\(u[x, t]\)\);
GreenFunction을 사용하여 그 기본 솔루션을 얻습니다.
In[2]:=
gf[x_, t_, y_, s_] =
GreenFunction[waveOperator, u[x, t], {x, -\[Infinity], \[Infinity]},
t, {y, s}]
Out[2]=
기본 솔루션을 플롯합니다.
In[3]:=
Plot3D[gf[x, t, 0, 0] // Evaluate, {x, -4, 4}, {t, 0, 4},
ExclusionsStyle -> Orange, Mesh -> None, AxesLabel -> Automatic]
Out[3]=
강제 함수를 정의합니다.
In[4]:=
f[y_, s_] := Cos[y] E^(-s)
합성곱 적분 를 평가하여 이 강제 조항을 갖는 파동 방정식을 풉니다.
In[5]:=
sol = Integrate[
gf[x, t, y, s] f[y, s], {y, -\[Infinity], \[Infinity]}, {s,
0, \[Infinity]}, Assumptions -> t > 0 && Im[x] == 0] //
FullSimplify
Out[5]=
동차의 초기 조건을 포함하는 결과를 DSolveValue를 사용하여 얻습니다.
In[6]:=
initialc = {u[x, 0] == 0, Derivative[0, 1][u][x, 0] == 0};
In[7]:=
DSolveValue[{waveOperator == f[x, t], initialc}, u[x, t], {x, t}]
Out[7]=
솔루션에 의해 생성된 정상파를 시각화합니다.
In[8]:=
Plot[Table[sol, {t, 0, 1, 0.2}] // Evaluate, {x, -10, 10},
Filling -> Axis]
Out[8]=