Beruflich Dokumente
Kultur Dokumente
d
∂2u
∆u = .
i=1
∂x2i
∂u(x, t)
− µ∆u(x, t) = f (x, t), x ∈ Ω, t > 0, (8.5)
∂t
donde µ > 0 es un coeficiente dado que representa la conductividad
térmica y f es, de nuevo, una función dada.
3. Ecuación de ondas:
∂ 2 u(x, t) ∂ 2 u(x, t)
− c = 0, x ∈ (a, b), t > 0,
∂t2 ∂x2
o (en varias dimensiones)
∂ 2 u(x, t)
− c∆u(x, t) = 0, x ∈ Ω, t > 0,
∂t2
donde c es una constante positiva dada.
Para ecuaciones en derivadas parciales más generales remitimos al lector,
por ejemplo, a [QV94], [EEHJ96] o [Lan03].
q = −K∇φ, (8.6)
R dx L dx
x x + dx
C dx 1/(G dx)
Auh = h2 f , (8.14)
h2
max |u(xj ) − uj | ≤ max |f (x)| (8.16)
j=0,...,N +1 96 x∈[a,b]
esto es, el método de diferencias finitas (8.13) converge con orden dos
con respecto a h.
En el Programa 8.1 resolvemos el problema de contorno
−u (x) + δu (x) + γu(x) = f (x) para x ∈ (a, b),
(8.17)
u(a) = α, u(b) = β,
z = linspace (a ,b , N +2);
e = ones (N ,1);
h2 = 0.5* h * delta ;
A = spdiags ([ -e - h2 2* e + gamma * h ^2 - e + h2 ] , -1:1 , N , N );
x = z (2: end -1);
f = h ^2* feval ( bvpfun ,x , varargin {:});
f =f ’; f (1) = f (1) + ua ; f ( end ) = f ( end ) + ub ;
uh = A \ f ;
uh =[ ua ; uh ; ub ];
x = z;
b b
u (x)v (x) dx − [u (x)v(x)]ba = f (x)v(x) dx.
a a
b b
u (x)v (x) dx = f (x)v(x) dx (8.18)
a a
para cada v ∈ C 1 ([a, b]) tal que v(a) = v(b) = 0. Ésta es la llamada
formulación débil del problema (8.10). (En efecto, u y la función test
v pueden ser ambos menos regulares que C 1 ([a, b]), véase, por ejemplo
[QSS06], [QV94]).
Su aproximación por elementos finitos se define como sigue:
N j+1 b
x
(8.19)
uh (x)vh (x) dx = f (x)vh (x) dx, ∀vh ∈ Vh0
j=0 x a
j
donde
252 8 Métodos numéricos para problemas de valores iniciales y de contorno
Vh = vh ∈ C 0 ([a, b]) : vh|Ij ∈ P1 , j = 0, . . . , N ,
es decir Vh es el espacio de funciones continuas en (a, b) cuyas res-
tricciones sobre cada subintervalo Ij son polinomios lineales. Además,
Vh0 es el subespacio de Vh cuyas funciones se anulan en los extremos a y
b. Vh se llama espacio de elementos finitos de grado 1.
Las funciones de Vh0 son lineales a trozos (véase la Figura 8.2,
izquierda). En particular, cada función vh de Vh0 admite la representación
N
vh (x) = vh (xj )ϕj (x),
j=1
donde, para j = 1, . . . , N,
⎧
⎪ x − xj−1
⎪
⎪ si x ∈ Ij−1 ,
⎪
⎨ xj − xj−1
ϕj (x) = x − xj+1
⎪ si x ∈ Ij ,
⎪
⎪ xj − xj+1
⎪
⎩
0 en otro caso.
De este modo, ϕj es nulo en cada nudo xi excepto en xj donde ϕj (xj ) = 1
(véase la Figura 8.2, derecha). Las funciones ϕj , j = 1, . . . , N se llaman
funciones de forma y proporcionan una base para el espacio vectorial
Vh0 .
Por consiguiente, podemos limitarnos a verificar (8.19) sólo para las
funciones de forma ϕj , j = 1, . . . , N . Explotando el hecho de que ϕj se
anula fuera de los intervalos Ij−1 y Ij , a partir de (8.19) obtenemos
uh (x)ϕj (x) dx = f (x)ϕj (x) dx, j = 1, . . . , N. (8.20)
Ij−1 ∪Ij Ij−1 ∪Ij
N
Por otra parte, podemos escribir uh (x) = j=1 uj ϕj (x) + αϕ0 (x) +
βϕN +1 (x), donde uj = uh (xj ), ϕ0 (x) = (a+h−x)/h para a ≤ x ≤ a+h,
vh
1
ϕj
donde
⎧
⎪
⎨ −α ϕ (x)ϕ (x) dx = − α
0 1 si j = 1,
B1,j = x1 − a
⎪
⎩ I0
0 en caso contrario,
mientras que
⎧
⎪
⎨ −β ϕ β
N +1 (x)ϕj (x) dx = − si j = N,
BN,j = b − xN
⎪
⎩ IN
0 en caso contrario.
y
hx
y6 = d
y5
hy
y4
y3
y2
y1
y0 = c
x0 = a x1 x2 x3 x4 = b x
1
− (ui−1,j + ui,j−1 − 4ui,j + ui,j+1 + ui+1,j ) = fi,j ,
h2 (8.24)
i = 1, . . . , Nx , j = 1, . . . , Ny
(i, j + 1)
(i − 1, j) (i, j) (i + 1, j)
(i, j − 1)
Figura 8.4. Plantilla del esquema de cinco puntos para el operador de Laplace
10
20
30
40
50
60
70
80
0 20 40 60 80
filas y columnas asociadas a los nudos de ∂∆h . Puede observarse que los
únicos elementos no nulos están en cinco diagonales.
Como A es simétrica y definida positiva, el sistema asociado puede re-
solverse eficientemente por métodos directos o iterativos, como se ilustró
en el Capı́tulo 5. Finalmente, cabe señalar que A comparte con su análoga
unidimensional la propiedad de estar mal acondicionada: en efecto, su
número de condición crece como h−2 cuando h tiende a cero, donde
h = max(hx , hy ).
En el Programa 8.2 construimos y resolvemos el sistema (8.22)-(8.23)
(usando el comando \, véase la Sección 5.6). Los parámetros de entrada a,
b, c y d denotan las esquinas del dominio rectangular Ω = (a, c) × (b, d),
mientras que nx y ny denotan los valores de Nx y Ny (se admite el
caso Nx = Ny ). Finalmente, las dos cadenas fun y bound representan
el segundo miembro f = f (x, y) (también llamado término fuente) y el
dato de frontera g = g(x, y). La salida es un tablero bidimensional u cuyo
elemento i, j-ésimo es el valor nodal ui,j . La solución numérica puede ser
visualizada mediante el comando mesh(x,y,u). La cadena de caracteres
(opcional) uex representa la solución exacta del problema original para
los casos (de interés teórico) en los que esta solución se conoce. En tales
casos, el parámetro de salida error contiene el error nodal relativo entre
las soluciones exacta y numérica, que se calcula como sigue:
6
error = max|u(xi , yj ) − ui,j | max|u(xi , yj )|.
i,j i,j
258 8 Métodos numéricos para problemas de valores iniciales y de contorno
k = k + 1;
ue (i , j ) = feval ( uex ,x ,y , varargin {:});
x = x + hx ;
end
y = y + hy ;
end
x = [ a : hx : b ];
y = [ c : hy : d ];
if nargout == 4
if nargin == 8
warning ( ’ Solucion exacta no disponible ’ );
error = [ ];
else
error = max ( max ( abs (u - ue )))/ max ( max ( abs ( ue )));
end
end
return
Resumamos
uj (0) = u0 (xj ), j = 0, . . . , N.
uk+1 − uk µ
= − 2 A(θuk+1 + (1 − θ)uk ) + θf k+1 + (1 − θ)f k ,
∆t h
(8.30)
k = 0, 1, . . .
u0 = u0
o, equivalentemente,
) µ * ) µ *
I + 2 θ∆tA uk+1 = I − 2 ∆t(1 − θ)A uk + gk+1 , (8.31)
h h
donde gk+1 = ∆t(θf k+1 + (1 − θ)f k ) e I es la matriz identidad de orden
N − 1.
Para valores convenientes del parámetro θ, podemos recuperar de
(8.31) algunos métodos familiares que han sido introducidos en el Capı́-
tulo 7. Por ejemplo, si θ = 0 el método (8.31) coincide con el esquema
de Euler progresivo y podemos obtener uk+1 explı́citamente; en caso
contrario, hay que resolver un sistema lineal (con matriz constante I +
µθ∆tA/h2 ) en cada paso de tiempo.
Con respecto a la estabilidad, cuando f = 0 la solución exacta u(x, t)
tiende a cero para cada x cuando t → ∞. Entonces esperarı́amos que
la solución discreta tuviese el mismo comportamiento, en cuyo caso
dirı́amos que nuestro esquema (8.31) es asintóticamente estable, siendo
esto coherente con lo que hicimos en la Sección 7.5 para ecuaciones di-
ferenciales ordinarias.
Si θ = 0, de (8.31) se sigue que
uk = (I − µ∆tA/h2 )k u0 , k = 1, 2, . . .
Por otra parte, los autovalores λj de A están dados por (véase el Ejercicio
8.2) λj = 2 − 2 cos(jπ/N ), j = 1, . . . , N − 1. Por tanto (8.32) se satisface
si y sólo si
1 2
∆t < h .
2µ
Como se esperaba, el método de Euler progresivo es condicionalmente
estable, y el paso de tiempo ∆t deberı́a decaer como el cuadrado del paso
de la malla h.
En el caso del método de Euler regresivo (θ = 1), de (8.31) deduci-
rı́amos
264 8 Métodos numéricos para problemas de valores iniciales y de contorno
k
uk = (I + µ∆tA/h2 )−1 u0 , k = 1, 2, . . .
A (1 ,1) = 1; A (N ,:) = 0; A (N , N ) = 1;
x = linspace ( xspan (1) , xspan (2) , N );
x = x ’; fn = feval (f ,x , tspan (1) , varargin {:}); un =
feval ( u0 ,x , varargin {:});
[L , U ]= lu ( A ); for t = tspan (1)+ dt : dt : tspan (2)
fn1 = feval (f ,x ,t , varargin {:});
rhs = An * un + dt *( theta * fn1 +(1 - theta )* fn );
temp = feval (g ,[ xspan (1) , xspan (2)] , t , varargin {:});
rhs ([1 , N ]) = temp ;
u = L \ rhs ;
u = U\u;
fn = fn1 ;
un = u ;
end
return
Ejemplo 8.3 Consideramos la ecuación del calor (8.4) en (a, b) = (0, 1) con
µ = 1, f (x, t) = −sen(x)sen(t)+sen(x) cos(t), condición inicial u(x, 0) = sen(x)
y condiciones de contorno u(0, t) = 0 y u(1, t) = sen(1) cos(t). En este caso
la solución exacta es u(x, t) = sen(x) cos(t). En la Figura 8.7 comparamos el
comportamiento de los errores maxi=0,...,N |u(xi , 1) − uM i | frente al paso de
tiempo, sobre una malla uniforme en espacio con h = 0.002. {uM i } son los
valores de la solución en diferencias finitas calculada en el tiempo tM = 1.
Como se esperaba, para θ = 0.5 el θ-método es de segundo orden hasta que
el paso de tiempo es tan pequeño que el error espacial domina sobre el error
debido a la discretización temporal.
−3
10
−4
10 1
1
−5
10
−6
10
2
−7
10
1
−8
10 −3 −2 −1
10 10 10
500 500
t=0s t=0s
450 450
400 400
350 350
300 300
∂2u ∂2u
− c =f (8.33)
∂t2 ∂x2
∂ω ∂ω
+A = f, x ∈ (a, b), t > 0 (8.36)
∂t ∂x
donde
ω1 0 −1 0
ω= , A= , f= ,
ω2 −c 0 f
y las condiciones iniciales son ω1 (x, 0) = u0 (x) y ω2 (x, 0) = v0 (x) para
x ∈ (a, b).
En general, podemos considerar sistemas de la forma (8.36) donde
ω, f : R × [0, ∞) → Rp y A ∈ Rp×p es una matriz de coeficientes cons-
tantes. Este sistema se dice hiperbólico si A es diagonalizable y tiene
autovalores reales, esto es, si existe una matriz no singular T ∈ Rp×p tal
que
A = TΛT−1 ,
Aω k = λk ω k , k = 1, . . . , p.
∂wk ∂wk
+ λk = gk , k = 1, . . . , p.
∂t ∂x
Cuando gk = 0, su solución está dada por wk (x, t) = wk (x − λk t, 0),
k = 1, . . . , p y ası́ la solución ω = Tw del problema (8.36) con f = 0
puede escribirse como
p
ω(x, t) = wk (x − λk t, 0)ω k .
k=1
La curva (xk (t), t) en el plano (x, t) que satisface xk (t) = λk es la k-ésima
curva caracterı́stica y wk es constante a lo largo de ella. Entonces ω(x, t)
sólo depende del dato inicial en los puntos x − λk t. Por esta razón, el
conjunto de los p puntos que forman el pie de las caracterı́sticas que
salen del punto (x, t),
un+1
j = unj + ∆tvjn
con u0j = u0 (xj ) y vj0 = v0 (xj ) y wjk = (ukj+1 − 2ukj + ukj−1 )/h2 para
k = n o k = n + 1. El sistema (8.38) debe completarse imponiendo las
condiciones de contorno (8.35).
Este método se implementa en el Programa 8.4. Los parámetros de
entrada son los vectores xspan=[a,b] y tspan=[0,T], el número de in-
tervalos de discretización en espacio (nstep(1)) y en tiempo (nstep(2)),
las cadenas de caracteres, f que contiene la función f (t, x(t)), y u0 y v0
para definir el dato inicial. Finalmente, el vector param permite especi-
ficar los valores de los coeficientes (param(1)=θ, param(2)=ζ). El método
de Newmark es de segundo orden con respecto a ∆t si θ = 1/2, mientras
que es de primer orden si θ = 1/2. Además, para asegurar la estabilidad
es necesaria la condición θ ≥ 1/2 (véase la Sección 7.8).
Programa 8.4. newmarkwave: método de Newmark para la ecuación de las
ondas
function [ x , u ]= newmarkwave ( xspan , tspan , nstep , param ,...
c , u0 , v0 ,g ,f , varargin )
% NEWMARKWAVE resuelve la ecuacion de las ondas con el
% metodo de Newmark .
% [X , U ]= NEWMARKWAVE ( XSPAN , TSPAN , NSTEP , PARAM ,C , U0 , V0 ,G , F )
% resuelve la ecuacion de las ondas
% D ^2 U / DT ^2 - C D ^2 U / DX ^2 = F
% en ( XSPAN (1) , XSPAN (2)) x ( TSPAN (1) , TSPAN (2)) usando el
% metodo de Newmark con condiciones iniciales
% U (X ,0)= U0 ( X ) , DU / DX (X ,0)= V0 ( X ) y condiciones de
% contorno de Dirichlet
% U (X , T )= G (X , T ) para X = XSPAN (1) y X = XSPAN (2). C es una
% constante positiva , F ,G , U0 y V0 son funciones inline .
% NSTEP (1) es el numero de intervalos de integracion
% espacial , NSTEP (2)+1 es el numero de intervalos de
% integracion en tiempo .
% PARAM (1)= THETA y PARAM (2)= ZETA .
270 8 Métodos numéricos para problemas de valores iniciales y de contorno
0.1
−0.1
−0.2
−0.3
−0.4
−0.5
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
1.4
1.2
0.8
0.6
0.4
0.2
0
−4 −3.5 −3 −2.5 −2 −1.5 −1 −0.5 0
xj = jh, j ∈ Z, tn = n∆t, n ∈ N.
2. el método de Lax-Wendroff
λ
ωjn+1 = ωjn − n
A(ωj+1 − ωj−1
n
)
2
2 (8.40)
λ
+ A2 (ωj+1
n
− 2ωjn + ωj−1
n
).
2
El método descentrado es de primer orden (en tiempo y en espacio),
mientras que el esquema de Lax-Wendroff es de segundo orden.
Con respecto a la estabilidad, puesto que todos estos esquemas son
explı́citos, sólo pueden ser condicionalmente estables. En particular, los
esquemas descentrados y de Lax-Wendroff satisfacen ω n ∆ ≤ ω 0 ∆ ,
donde
%
&
& ∞ 2
v ∆ = 'h vj , v = (vj ),
j=−∞
Octave 8.1 Ni Octave ni Octave-forge poseen una toolbox pde. Sin em-
bargo, pueden encontrarse varios programas en Octave para ecuaciones
en derivadas parciales, navegando en la web.
8.5 Ejercicios
Ejercicio 8.1 Verificar que la matriz (8.15) es definida positiva.
Ejercicio 8.2 Verificar que los autovalores de la matriz A∈ R(N −1)×(N −1) ,
definida en (8.15), son
λj = 2(1 − cos(jθ)), j = 1, . . . , N − 1,
u (a) = α, u (b) = β.
Ejercicio 8.8 Verificar que, cuando se emplea una malla uniforme, el segundo
miembro del sistema asociado al esquema en diferencias finitas centrado coin-
cide con el del esquema de elementos finitos, con tal de que se utilice la fórmula
del trapecio compuesta para calcular las integrales sobre los elementos Ik−1 y
Ik .