Solución de una ecuación de onda con condiciones de límite periódicas
Resuelva una ecuación de onda en 1D con condiciones de límite periódicas.
Especifique una ecuación de onda con condiciones de límite absorbentes. Note que el valor de Neumann es por primera vez derivado de .
In[1]:=
![Click for copyable input](assets.es/solve-a-wave-equation-with-periodic-boundary-condi/In_70.png)
eqn = D[u[t, x], {t, 2}] ==
D[u[t, x], {x, 2}] +
NeumannValue[-Derivative[1, 0][u][t, x], x == 0 || x == 1];
Especifique las condiciones iniciales para la ecuación de onda.
In[2]:=
![Click for copyable input](assets.es/solve-a-wave-equation-with-periodic-boundary-condi/In_71.png)
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]};
Especifique una condición de límite tal que la solución en el límite derecho se propague al lado izquierdo.
In[3]:=
![Click for copyable input](assets.es/solve-a-wave-equation-with-periodic-boundary-condi/In_72.png)
bc = PeriodicBoundaryCondition[u[t, x], x == 0,
TranslationTransform[{1}]];
Resuelva la ecuación usando el método de elemento finito.
In[4]:=
![Click for copyable input](assets.es/solve-a-wave-equation-with-periodic-boundary-condi/In_73.png)
ufun = NDSolveValue[{eqn, ic, bc}, u, {t, 0, 2}, {x, 0, 1},
Method -> {"MethodOfLines"}];
Visualice la función de onda periódica.
In[5]:=
![Click for copyable input](assets.es/solve-a-wave-equation-with-periodic-boundary-condi/In_74.png)
plots = Table[
Plot[ufun[t, x], {x, 0, 1}, PlotRange -> {-0.1, 1.3}], {t, 0,
2, .1}];
ListAnimate[plots]
![](assets.es/solve-a-wave-equation-with-periodic-boundary-condi/swf_3.png)