Résolvez une équation d'onde avec des conditions aux limites périodiques
Résolvez une équation d'onde 1D avec des conditions aux limites périodiques.
Spécifiez une équation d'onde avec l'absorption des conditions aux limites. A noter que la valeur de Neumann est la première dérivée temporelle de .
In[1]:=

eqn = D[u[t, x], {t, 2}] ==
D[u[t, x], {x, 2}] +
NeumannValue[-Derivative[1, 0][u][t, x], x == 0 || x == 1];
Spécifiez les conditions initiales pour l'équation d'onde.
In[2]:=

f[x_] = D[0.125 Erf[(x - 0.5)/0.125], x];
vInit[x_] = -D[f[x], x];
ic = {u[0, x] == f[x], Derivative[1, 0][u][0, x] == vInit[x]};
Précisez une condition de limite périodique de manière à ce que la solution à la limite de droite se propage vers le côté gauche.
In[3]:=

bc = PeriodicBoundaryCondition[u[t, x], x == 0,
TranslationTransform[{1}]];
Résolvez l'équation en utilisant la méthode des éléments finis.
In[4]:=

ufun = NDSolveValue[{eqn, ic, bc}, u, {t, 0, 2}, {x, 0, 1},
Method -> {"MethodOfLines"}];
Visualisez la fonction d'onde périodique.
In[5]:=

plots = Table[
Plot[ufun[t, x], {x, 0, 1}, PlotRange -> {-0.1, 1.3}], {t, 0,
2, .1}];
ListAnimate[plots]
