Wolfram 언어

편미분 방정식

파동 방정식의 초기값 문제 해결

파동 방정식을 전파 단위 속도로 지정합니다.

In[1]:=
Click for copyable input
weqn = D[u[x, t], {t, 2}] == D[u[x, t], {x, 2}];

방정식의 초기 조건을 규정합니다.

In[2]:=
Click for copyable input
ic = {u[x, 0] == E^(-x^2), Derivative[0, 1][u][x, 0] == 1};

초기값 문제를 해결합니다.

In[3]:=
Click for copyable input
DSolveValue[{weqn, ic}, u[x, t], {x, t}]
Out[3]=

파동은 두 가지 특성 방향에 따라 전파합니다.

In[4]:=
Click for copyable input
DSolveValue[{weqn, ic}, u[x, t], {x, t}]; Plot3D[%, {x, -7, 7}, {t, 0, 4}, Mesh -> None]
Out[4]=

구분적 데이터로 초기값 문제를 해결합니다.

In[5]:=
Click for copyable input
ic = {u[x, 0] == UnitBox[x] + UnitTriangle[x/3], Derivative[0, 1][u][x, 0] == 0};
In[6]:=
Click for copyable input
DSolveValue[ {weqn, ic}, u[x, t], {x, t}]
Out[6]=

초기 데이터의 불연속성은 특성 방향에 따라 전파됩니다.

In[7]:=
Click for copyable input
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]:=
Click for copyable input
ic = {u[x, 0] == E^(-(x - 6)^2) + E^(-(x + 6)^2), Derivative[0, 1][u][x, 0] == 1/2};
In[9]:=
Click for copyable input
sol = DSolveValue[ {weqn, ic}, u[x, t], {x, t}]
Out[9]=

솔루션을 시각화합니다.

In[10]:=
Click for copyable input
Plot3D[sol, {x, -30, 30}, {t, 0, 20}, PlotRange -> All, Mesh -> None, PlotPoints -> 30]
Out[10]=

관련 예제

de en es fr ja pt-br ru zh