Wolfram Language

Equações diferenciais parciais

Solução de uma equação de onda com condições de contorno periódicas

Resolva uma equação de onda em 1D com condições de contorno periódicas.

Especifique uma equação de onda com condições de contorno absorventes. Note que o valor de Neumann é pela primeira vez derivado de .

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];

Especifique as condições iniciais para a equação de onda.

In[2]:=
Click for copyable input
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 uma condição de contorno tal que a solução no contorno direito é propagada para o lado esquerdo.

In[3]:=
Click for copyable input
bc = PeriodicBoundaryCondition[u[t, x], x == 0, TranslationTransform[{1}]];

Resolva a equação utilizando o método de elemento finito.

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

Visualize a função de onda periódica.

In[5]:=
Click for copyable input
plots = Table[ Plot[ufun[t, x], {x, 0, 1}, PlotRange -> {-0.1, 1.3}], {t, 0, 2, .1}]; ListAnimate[plots]
Reproduzir
Parar

Exemplos Relacionados

de en es fr ja ko ru zh