Ecuación de ondas

 

Resumen: En este ejemplo se considera un problema relativo a la ecuación de ondas.

Problema considerado

Sean Ω=B((0,0);R)B((0,0);r)R2 y T>0. Consideramos el problema de hallar u:Ω×(0,T)R tal que

(1){ttu+atuc2Δu+mu=fen Ω×(0,T),u=0sobre Ω×(0,T),u(x,y,0)=u0(x,y)en Ω,tu(x,y,0)=u1(x,y)en Ω,

donde a,cR, a>0, m:ΩR, f:Ω×(0,T)R y u0,u1:ΩR son funciones dadas.

Para calcular una solución aproximada, procedemos como sigue:

  1. Discretizamos en tiempo tratando la variable t con el mismo enfoque que para un problema de Cauchy para una EDO: los operadores diferenciales con las derivadas respecto de t se aproximan por esquemas en diferencias. Se obtiene así una sucesión de problemas estacionarios en Ω.

  2. Cada problema estacionario se discretiza mediante el método de los elementos finitos sobre una triangulación dada, como en los ejemplos de problemas elípticos considerados con anterioridad.

     

Discretización en tiempo

Consideramos una partición uniforme del intervalo [0,T] tomando M+1 puntos equidistantes 0=t0<<tM=T, es decir dividimos el intervalo [0,T] en M segmentos de igual longitud Δt:

Δt=TM,tn=nΔt,n=0,1,,M.

Para cada n=1,,M, particularizamos la ecuación diferencial de (1) y las condiciones de contorno para t=tn:

(2){ttu(x,y,tn)+atu(x,y,tn)c2Δu(x,y,tn)+m(x,y)u(x,y,tn)=f(x,y,tn)en Ω,u(x,y,tn)=0sobre Ω.

Denotamos

un(x,y):=u(x,y,tn),fn(x,y):=f(x,y,tn),n=0,1,,M.

Para n=0, se tiene

u0(x,y)=u(x,y,t0)=u(x,y,0)=u0(x,y).

Para n=1, se tiene, utilizando un desarrollo de Taylor

u1(x,y)=u(x,y,Δt)u(x,y,0)+tu(x,y,0)Δt=u0(x,y)+Δtu1(x,y)

Para n2, sustituyendo en (2) las derivadas de u respecto de t por aproximaciones en diferencias:

ttu(x,y,tn)u(x,y,tn)2u(x,y,tn1)+u(x,y,tn2)(Δt)2
tu(x,y,tn)u(x,y,tn)u(x,y,tn1)Δt

se tiene la siguiente ecuación (aproximada)

un2un1+un2(Δt)2+aunun1Δtc2Δun+mun=fnenΩ,

O, equivalentemente,

1(Δt)2un+aΔtunc2Δun+mun=fn1(Δt)2un2+(2(Δt)2+aΔt)un1enΩ.

Para cada n=2,,M, tenemos una EDP estacionaria en la incógnita un ( ya que un1 y un2 han sido calculadas en las etapas anteriores). Por tanto, el esquema discreto en tiempo es como sigue:

Obsérvese que, para cada n, (3) es un problema que no depende del tiempo, que podemos aproximar usando el método de los elementos finitos razonando como en los ejemplos anteriores.

 

Formulación débil o variacional

El espacio natural para buscar la solución del problema (3) es H01(Ω). Para obtener su formulación variacional, multiplicamos en la ecuación ambos miembros por una función vH01(Ω) e integramos en Ω. Integrando por partes y teniendo en cuenta que v vale cero sobre Ω, obtenemos:

(PV){Hallar unH01(Ω) tal que c2Ωunvdxdy+Ω(1(Δt)2+aΔt+m)unvdxdy=Ω(fn1(Δt)2un2+(2(Δt)2+aΔt)un1)vdxdyvH01(Ω).

Obsérvese que todos los problemas (PV), para los distintos valores de n=2,,M, comparten la misma forma bilineal

a(u,v)=c2Ωunvdxdy+Ω(1(Δt)2+aΔt+m)unvdxdy

y que solo difieren en la forma lineal. En la resolución numérica, esto se traduce en el hecho de que todos los sistemas lineales a resolver tienen la misma matriz, que, por lo tanto, solo habrá que construir y factorizar la primera vez.

Código

 

Ejercicios

Partiendo del programa anterior, resolver el problema (1), con las siguientes variantes:

  1. Almacenando todas las iteraciones en un "array" y dibujando la solución al finalizar bucle.
  2. Almacenando todas las iteraciones en un fichero. Escribir otro programa que lea los datos almacenados y dibuje con ellos la solución.
  3. Tomando el segundo miembro f(x,y,t)=sin(t).

 

Anna Doubova - Rosa Echevarría - Dpto. EDAN - Universidad de Sevilla