Résolvez un problème de valeur initiale pour l'équation de l'onde
Spécifiez l'équation d'onde avec la vitesse de l'unité de propagation.
In[1]:=
![Click for copyable input](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/In_1.png)
weqn = D[u[x, t], {t, 2}] == D[u[x, t], {x, 2}];
Définissez les conditions initiales pour l'équation.
In[2]:=
![Click for copyable input](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/In_2.png)
ic = {u[x, 0] == E^(-x^2), Derivative[0, 1][u][x, 0] == 1};
Résolvez le problème de la valeur initiale.
In[3]:=
![Click for copyable input](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/In_3.png)
DSolveValue[{weqn, ic}, u[x, t], {x, t}]
Out[3]=
![](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/O_1.png)
L'onde se propage le long d'une paire de directions caractéristiques.
In[4]:=
![Click for copyable input](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/In_4.png)
DSolveValue[{weqn, ic}, u[x, t], {x, t}];
Plot3D[%, {x, -7, 7}, {t, 0, 4}, Mesh -> None]
Out[4]=
![](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/O_2.png)
Résolvez le problème de la valeur initiale des données par morceaux.
In[5]:=
![Click for copyable input](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/In_5.png)
ic = {u[x, 0] == UnitBox[x] + UnitTriangle[x/3],
Derivative[0, 1][u][x, 0] == 0};
In[6]:=
![Click for copyable input](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/In_6.png)
DSolveValue[ {weqn, ic}, u[x, t], {x, t}]
Out[6]=
![](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/O_3.png)
Les discontinuités dans les données initiales sont propagées le long des directions caractéristiques.
In[7]:=
![Click for copyable input](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/In_7.png)
DSolveValue[ {weqn, ic}, u[x, t], {x, t}];
Plot3D[%, {x, -7, 7}, {t, 0, 4}, PlotRange -> All, Mesh -> None,
ExclusionsStyle -> Red]
Out[7]=
![](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/O_4.png)
Résolvez le problème de la valeur initiale avec une somme de fonctions exponentielles comme données initiales.
In[8]:=
![Click for copyable input](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/In_8.png)
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](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/In_9.png)
sol = DSolveValue[ {weqn, ic}, u[x, t], {x, t}]
Out[9]=
![](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/O_5.png)
Visualisez la solution.
In[10]:=
![Click for copyable input](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/In_10.png)
Plot3D[sol, {x, -30, 30}, {t, 0, 20}, PlotRange -> All, Mesh -> None,
PlotPoints -> 30]
Out[10]=
![](assets.fr/solve-an-initial-value-problem-for-the-wave-equati/O_6.png)