Lösen Sie das Anfangswertproblem einer Wellengleichung
Spezifizieren Sie die Wellengleichung mit Einheitsausbreitungsgeschwindigkeit.
In[1]:=

weqn = D[u[x, t], {t, 2}] == D[u[x, t], {x, 2}];
Schreiben Sie Anfangsbedingungen für die Gleichung vor.
In[2]:=

ic = {u[x, 0] == E^(-x^2), Derivative[0, 1][u][x, 0] == 1};
Lösen Sie das Anfangswertproblem.
In[3]:=

DSolveValue[{weqn, ic}, u[x, t], {x, t}]
Out[3]=

Die Welle breitet sich längs zweier charakteristischer Richtungen aus.
In[4]:=

DSolveValue[{weqn, ic}, u[x, t], {x, t}];
Plot3D[%, {x, -7, 7}, {t, 0, 4}, Mesh -> None]
Out[4]=

Lösen Sie das Anfangswertproblem mit stückweisen Daten.
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]=

Unstetigkeiten in den Anfangsdaten breiten sich längs der Charakteristiken aus.
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]=

Lösen Sie das Anfangswertproblem mit einer Summe exponentieller Funktionen als Anfangsdaten.
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]=

Visualisieren Sie die Lösung.
In[10]:=

Plot3D[sol, {x, -30, 30}, {t, 0, 20}, PlotRange -> All, Mesh -> None,
PlotPoints -> 30]
Out[10]=
