Wolfram Language

Partielle Differentialgleichungen

Lösen Sie eine Wellengleichung mit absorbierenden Randwertbedingungen

Lösen Sie eine 1D-Wellengleichung mit absorbierenden Randwertbedingungen.

Spezifizieren Sie eine Wellengleichung mit absorbierenden Randwertbedingungen. Beachten Sie, dass der Neumann-Randwert eine Ableitung von ist.

In[1]:=
Click for copyable input
eqn = D[u[t, x], {t, 2}] == D[u[t, x], {x, 2}] + NeumannValue[-Derivative[1, 0][u][t, x], x == 0 || x == 1];

Spezifizieren Sie Anfangsbedingungen für die Wellengleichung.

In[2]:=
Click for copyable input
u0[x_] := Evaluate[D[0.125 Erf[(x - 0.5)/0.125], x]]; ic = {u[0, x] == u0[x], Derivative[1, 0][u][0, x] == 0};

Lösen Sie die Gleichung mithilfe der Finite-Elemente-Methode.

In[3]:=
Click for copyable input
ufun = NDSolveValue[{eqn, ic}, u, {t, 0, 1}, {x, 0, 1}, Method -> {"MethodOfLines", "SpatialDiscretization" -> {"FiniteElement"}}];

Visualisieren Sie die Wellengleichung mit absorbierenden Randwertbedingungen.

In[4]:=
Click for copyable input
list = Table[ Plot[ufun[t, x], {x, 0, 1}, PlotRange -> {-0.1, 1.3}], {t, 0, 1, 0.1}]; ListAnimate[list]
Animation abspielen
Abspielung unterbrechen

Verwandte Beispiele

en es fr ja ko pt-br ru zh