Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase Solucion Ecuaciones Derivadas Parciales 2015 Version Beta PDF
Clase Solucion Ecuaciones Derivadas Parciales 2015 Version Beta PDF
Solución numérica de
Ecuaciones en Derivadas Parciales
1/71
Índice
2/71
Introducción a las Ecuaciones en Derivadas
Parciales
Una ecuación en derivadas parciales de orden n es una ecuación matemática en
la que aparece una función desconocida que depende de al menos dos variables
independientes, junto a algunas de las derivadas parciales hasta orden n de esa
función respecto a dichas variables.
Cuando la función incógnita sólo depende de una variable real se trata de una
ecuación diferencial ordinaria de orden n.
Una solución de una EDP es una función que resuelve la ecuación, o que la
convierte en una identidad cuando se sustituye en la ecuación.
3/71
Las ecuaciones en derivadas parciales son muy difíciles de resolver
analíticamente, excepto en casos de geometría muy sencilla.
4/71
Una ecuación en derivadas parciales para la función u.x1; :::xn/ tiene la forma
general
@u @u @2u @2u
F .x1; : : : ; xn; u; ;:::; ; ; ; : : :/ D 0:
@x1 @xn @x1@x1 @x1@x2
5/71
Dada una función u.x; y/, en las EDP es muy común significar las derivadas
parciales empleando subíndices (notación tensorial). Esto es:
@u
ux D .x; y/
@x
@2 u
@ @u
uxy D .x; y/ D .x; y/
@y @x @y @x
@2 u
uxx D 2 .x; y/:
@x
2 2
Una EDP no lineal de primer orden: ux C uy D 0.
7/71
En este breve recorrido por las EDP nos limitaremos a estudiar la resolución
numérica de las de segundo orden con dos variables independientes de la forma
@2u @2u @2u
@u @u
a.x; y/ 2 C b.x; y/ C c.x; y/ 2 C F ; ; u; x; y D 0;
@x @x @y @y @x @y
o, abreviadamente,
Auxx C Buxy C C uyy C F ux ; uy ; u; x; y D 0:
Parabólica si B 2 4AC D 0:
Hiperbólica si B 2 4AC > 0:
Elíptica si B 2 4AC < 0:
8/71
La diferencia práctica de estos tipos de ecuaciones es que las parabólicas e
hiperbólicas están definidas en un intervalo o región abierto. Para resolverlas se
imponen condiciones de contorno a una variable —en general al tiempo— en la
frontera de uno de sus extremos y se parte de él.
9/71
Resolución de ecuaciones parabólicas
0 x
a b
Figure 8.1 Mesh for the Finite Difference Method. The filled circles represent known
Los puntos sólidos son los conocidos que definen las condiciones iniciales y de
initial and boundary conditions. The open circles represent unknown values that must be
contorno; los huecos, los que calculará el procedimiento.
determined.
El problema continuo
its approximation at (xse
i , tconvierte así
j ) by wij . Let M en
and uno
N be discreto con un
the total number número
of steps in the xfinito
and t de
directions,
ecuaciones, and let ho=no
lineales − a)/M and k = T /N be the step sizes in the x and t directions.
(b lineales.
The discretization formulas from Chapter 5 can be used to approximate derivatives in 12/71
Sea u.xi ; tj / la solución exacta en .xi ; tj / y wij la aproximada. Denominemos
como M y N el número total de intervalos o pasos en x y en t.
j+1
i–1 i i+1
14/71
Las condiciones de contorno y las iniciales dan valores a wi0; i D 0; : : : ; M y
w0j y wMj ; j D 0; : : : ; N .
La matriz A es m m, donde m D N 1.
f=@(x) sin(2*pi*x).^2;
l=@(t) 0*t;
r=@(t) 0*t;
D=1;
h=(xr-xl)/M; k=(yt-yb)/N; m=M-1; n=N;
sigma=D*k/h/h;
a=diag(1-2*sigma*ones(m,1))+diag(sigma*ones(m-1,1),1);
a=a+diag(sigma*ones(m-1,1),-1);
lside=l(yb+(0:n)*k); rside=r(yb+(0:n)*k);
w(:,1)=f(xl+(1:m)*h)’;
for j=1:n
w(:,j+1)=a*w(:,j)+sigma*[lside(j); zeros(m-2,1); rside(j)];
end
w=[lside; w; rside];
x=(0:m+1)*h; t=(0:n)*k;
mesh(x,t,w’)
view(60,30);axis([xl xr yb yt -1 1])
end
16/71
Los dos gráficos ilustran la aproximación por diferencias adelantadas de la
ecuación del calor para h D 0;1 y dos valores k D 0;004 y k > 0;005. En este
último caso el método es inestable como se observa.
Dk
Se puede probar que el método es estable si, para D > 0, h2
< 12 .
17/71
Por diferencias atrasadas
18/71
El sistema de ecuaciones similar al anterior quedaría
21 C 2 0 0
3
: :
6 1 C 2 : : :: 7 w:1j
w1;j 1 w0;j
: :: ::
6 0 1 C 2 : : 0 7 :: D : C : :
4 :
:: : :: ::: : ::
5 wmj wm;j 1 wmC1;j
0 0 1 C 2
function w=heatbd(xl,xr,yb,yt,M,N)
% Ecuación del calor por diferencias atrasadas
% Entrada: [xl,xr], tiempo[yb,yt], pasos M, tiempos N
f=@(x) sin(2*pi*x).^2;
l=@(t) 0*t;
r=@(t) 0*t;
D=1;
h=(xr-xl)/M; k=(yt-yb)/N; m=M-1; n=N;
sigma=D*k/h/h;
El programa anterior: a=diag(1+2*sigma*ones(m,1))+diag(-sigma*ones(m-1,1),1);
a=a+diag(-sigma*ones(m-1,1),-1);
lside=l(yb+(0:n)*k); rside=r(yb+(0:n)*k);
w(:,1)=f(xl+(1:m)*h)’;
for j=1:n
w(:,j+1)=a\(w(:,j)+sigma*[lside(j); zeros(m-2,1); rside(j)]);
end
w=[lside; w; rside];
x=(0:m+1)*h; t=(0:n)*k;
mesh(x,t,w’)
view(60,30);axis([xl xr yb yt -1 1])
19/71
Resolviendo con este programa el problema anterior con
>>w=heatbd(0,1,0,1,10,10) se llega a la solución de la gráfica que sigue.
Obsérvese que el k que se utiliza ahora es 0;1 en vez del anterior 0;004.
0.5
-0.5
-1
0
0.2
0.4
1
0.6 0.8
0.6
0.8 0.4
0.2
1 0
Este método —formulado en 1947 por John Crank, Reino Unido, 1916-2006, y
Phyllis Nicolson, Reino Unido, 1917-1968— es una combinación de los dos
anteriores, explícito e implícito, con un error O.h2/ C O.k 2/.
21/71
Haciendo otra vez D Dk= h2, la ecuación del calor se puede reordenar así
ential Equations h i
2wij 2wi;j 1 D wi C1;j 2wij C wi 1;j C wi C1;j 1 2wi;j 1 C wi 1;j 1 ,
o bien
σ wi−1,j +
w(2 + 2σ )w 2/w
i 1;j C .2 C ij
− ijσ ww
i+1,j = σ wi 1;j 1−1
i C1;k D wi−1,j
+ (22/w
C .2 − 2σ )w w−1
i;j 1 Ci,j
+ σ wi+1,j
i C1;j 1 ,
ch leads
lo quetolleva
the atemplate shown
la plantilla in Figure
de nudos 8.7. de esta figura.
afectados
j+1
i–1 i i+1
Figure 8.7 Mesh points for Crank–Nicolson Method. At each time step, the open circles
are the unknowns and the filled circles are known from the previous step.
22/71
Si wj D Œw1j ; : : : ; wmj T , en forma matricial, el método de Crank-Nicolson es
Awj D Bwj 1 C sj 1 C sj ;
donde 2 3
2 C 2 0 0
6 2 C 2 ::: ::: 7
6 7
AD6 0
6
2 C 2 ::: 0 7;
7
6 :: : :: ::: ::: 7
4 : 5
0 0 2 C 2
y 2 3
2 2 0 0
6 2 2 ::: ::: 7
6 7
BD6 0 2 2 : : : 0 7:
6 7
6 :: ::: ::: ::: 7
4 : 5
0 0 2 2
El vector sj D Œw0j ; 0; : : : ; wmC1;j T .
23/71
El programa de Matlab que implementa el método es éste:
function w=Crank_Nicolson(xl,xr,yb,yt,M,N)
% Ecuación del calor por Crank-Nicolson
% Entrada: [xl,xr], tiempo[yb,yt], pasos M, tiempos N
f=@(x) sin(2*pi*x).^2;
l=@(t) 0*t;
r=@(t) 0*t;
D=1;
h=(xr-xl)/M; k=(yt-yb)/N; m=M-1; n=N; close all
sigma=D*k/h/h;
a=diag(2+2*sigma*ones(m,1))+diag(-sigma*ones(m-1,1),1);
a=a+diag(-sigma*ones(m-1,1),-1);
b=diag(2-2*sigma*ones(m,1))+diag(sigma*ones(m-1,1),1);
b=b+diag(sigma*ones(m-1,1),-1);
lside=l(yb+(0:n)*k); rside=r(yb+(0:n)*k);
w(:,1)=f(xl+(1:m)*h)’;
for j=1:n
sides=[lside(j)+lside(j+1); zeros(m-2,1); rside(j)+rside(j+1)];
w(:,j+1)=a\(b*w(:,j)+sigma*sides);
end
w=[lside; w; rside];
x=(0:m+1)*h; t=(0:n)*k;
mesh(x,t,w’)
view(60,30);axis([xl xr yb yt -1 1])
end
24/71
Si lo utilizamos con >>w=Crank_Nicolson(0,1,0,1,10,10) para el mismo
problema se llega a la solución de la gráfica.
0.5
-0.5
-1
0
0.2
0.4
1
0.6 0.8
0.6
0.8 0.4
0.2
1 0
u t t D c 2uxx
Esta ecuación modeliza una amplia variedad de fenómenos, desde las ondas
magnéticas en la atmósfera del Sol hasta cómo oscila la cuerda de un violín.
27/71
Se resolverlo podría aplicar diferencias adelantadas a partir de una malla como
Differential Equations
la que consideramos anteriormente, esto es
t
0 x
a b
Figure 8.1 Mesh for the Finite Difference Method. The filled circles represent known
Los puntos son .xi ; tj /, donde
initial and boundary conditions.
xi Dcircles
The open
a Crepresent
ih y tj D j k, con pasos h y k.
unknown values that must be
La aproximación a la solución u.xi ; tj / se representa mediante wij .
determined.
28/71
Para discretizar la ecuación de onda, las segundas derivadas se reemplazan por
sus aproximaciones por diferencias centradas en las direcciones t y x, es decir
wi;j C1 2wij C wi;j 1 wi 1;j 2wij C wiC1;j
c2 D 0:
k2 h2
29/71
Como se necesita la aproximación en dos pasos anteriores, j 1 y j , para el
primer paso en el tiempo se utiliza la aproximación de la derivada con la fórmula
centrada
wi;j C1 wi;j 1
u t .xi ; tj /
2k
en la que sustituyendo el primer paso en el tiempo .xi ; t1/
wi1 wi; 1
g.xi / D u t .xi ; t0/ ;
2k
o en otras palabras,
wi; 1 wi1 2kg.xi /:
2
2
wi1 D 1 wi0 C kg.xi / C wi 1;0 C wi C1;0 ;
2
que es donde entra la información de la velocidad inicial g.x/.
30/71
Escribiendo el método en forma matricial,
2 3
2 2
2 2 0 0
6 2
2 2 2
2 ::: ::: 7
6 7
AD6
6
0 2 2 2 2 ::: 0 7:
7
6
4 ::: ::: ::: ::: 2 5
7
0 0 2 2 2 2
La ecuación de inicio es
3 2
2 3 2 3 2 3 w 00
w11 w10 g.x1 / 6 0 7
4 ::: 5 D 1 A 4 ::: 5 C k 4 ::: 5 C 1 2 6 ::: 7 :
6 7
2 2 6 7
wm1 wmo g.xm / 4 0 5
wmC1;0
31/71
Las de los subsiguientes pasos, contando con las condiciones de partida,
2 3
2 3 2 3 2 3 l.tj /
w1;j C1 w1j w1;j 1 6 0 7
6 7
6 :: 7 6 :: 7 6 :: 7 :
4 : 5 D A 4 : 5 4 : 5 C 2 6 :: 7 :
6 7
4 0 5
6 7
wm;j C1 wmj wm;j 1
r.tj /
32/71
En Matlab, la solución de la ecuación de onda para f .x/ D sen.x/, con
c D 2 y g.x/ D l.x/ D r.x/ D 0 es ésta:
function w=wavefd(xl,xr,yb,yt,M,N)
% Ecuación de onda por diferencias avanzadas
% Entrada: [xl,xr], tiempo[yb,yt], pasos M, tiempos N
33/71
Si lo utilizamos con >> w=wavefd(0,1,0,1,20,40); para el problema
propuesto, se llega a la solución de la gráfica.
u D uxx C uyy :
36/71
Para una función continua f .x; y/, la EDP
u.x; y/ D f .x; y/
37/71
La ecuaciones de Laplace y Poisson están presentes por doquier en la física
clásica pues sus soluciones representan la energía potencial.
ED ru:
40/71
Las ecuaciones en los wij son lineales por lo para determinarlos hay que
construir un sistema de mn incógnitas con una matriz A mnmn.
wmn vmn
yt
x y Coeficiente número q
i j i C .j 1/m
i C1 j i C 1 C .j 1/m
i 1 j i 1 C .j 1/m
i j C1 i C jm
i j 1 i C .j 2/m
43/71
Si lo utilizamos con >> w=Poisson(0,1,1,2,4,4); para el problema
propuesto, se llega a la solución de la gráfica.
1.8
1.6
1.4
1.2
0.8
0.6
0.4
0.2
0
2
1.8 1
1.6 0.8
1.4 0.6
0.4
1.2
0.2
1 0
44/71
Para encontrar el potencial electrostático en el rectángulo Œ0; 1 Œ0; 1,
suponiendo que no hay carga en el interior y las siguientes condiciones de
contorno
u.x; 0/ D sen.x/
u.x; 1/ D sen.x/
u.0; y/ D 0
u.1; y/ D 0
cambiando en el programa anterior las funciones de partida, haciendo
>> w=Poisson_1(0,1,0,1,10,10); queda
1.2
0.8
0.6
0.4
0.2
-0.2
1
0.8 1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
0 0
45/71
Método de los elementos finitos, MEF o FEM
Ejemplo de aplicación del MEF
ETSII-UPM
49/71
La primera identidad de Green —por George Green, Reino Unido 1793-1841—
dice que si R es una región con frontera S, continua a trozos, u y v funciones
continuas y n el vector unitario normal hacia afuera a lo largo de la frontera, se
cumple que
@u
“ Z “
vu D v dS ru rv:
R S @n R
y
s
bp D f p dx dy:
R
52/71
functions of x, y that live on triangles in the plane. For concreteness, let the region R b
rectangle, and
¿Qué funciones form a triangulation
explícitas with nodes
se pueden elegir losi , yelementos
para (x j ) chosen from a rectangular
finitos p ? grid. W
will reuse the M × N grid from the previous section, shown in Figure 8.16(a), where
set m = M + 1 and n = N + 1. As before, we will denote the grid step size in the x and
directions
Utilizaremos as h andlineales
splines-B k, respectively. Figurebasados
por tramos 8.16(b) shows the triangulation
en triángulos en unofplano.
the rectangu
region that we will use.
En esta figura se ve una “triangularización” de la región rectangular ya usada.
Figure 8.16 Finite element solver of elliptic equation with Dirichlet boundary conditions.
(a) Mesh is same as used for finite difference solver. (b) A possible triangulation of the region. Eac
Esta triangularización da lugar
interior point is a vertex a P Dtriangles.
of six different mn funciones lineales for tramos p ,
.m D M C 1 y n D N C 1/, cada una de las cuales toma el valor 1 en un
punto de la malla y 0 en los mn 1 restantes.
53/71
Usando la numeración introducida al presentar esta malla, las 1; : : : ; mn se
determinan mediante la igualdad iC.j 1/m.xi ; yj / D 1 y
iC.j 1/m.xi 0 ; yj 0 / D 0 para los demás puntos de la malla .xi 0 ; yj 0 /, si son
lineales en los triángulos.
Cada p .x; y/ es derivable, excepto en los bordes o aristas de los triángulos, por
lo que son funciones integrables de Riemann de L2.R/.
Para ello, si definimos el baricentro de una región del plano como el punto
N y/
.x; N donde ’ ’
x dx dy y dx dy
xN D ’R ; yN D ’R :
R 1 dx dy R 1 dx dy
Si R es un triángulo de vértices .x1; y1/, .x2; y2/ y .x3; y3/ su baricentro es
x1 C x2 C x3 y1 C y2 C y3
xN D ; yN D :
3 3
El valor medio de una función lineal L.x; y/ en una región R del plano es
L.
’ x;N y/,
N el valor en el baricentro. En otras palabras,
R L.x; y/ dx dy D L.x; N y/
N área.R/.
55/71
El desarrollo en serie de Taylor de una función de dos variables dice que
f .x; y/ D f .x; N C @f
N y/ @x
N y/.x
.x; N N C @f
x/ @y
N y/.y
.x; N N
y/
N 2; .x 2
CO .x x/ N
x/.y N .y
y/; N
y/
2 2
D L.x; y/ C O .x N ; .x
x/ N
x/.y N .y
y/; N :
y/
En consecuencia,
“ “ “
N 2 ; .x N 2 dx dy
f .x; y/ dx dy D L.x; y/ dx dy C O .x x/ N
x/.y N .y
y/; y/
R R R
.x2 x3 /2 C .y2 y3 /2
“
c/ r1 1 dx dy D
T 2jd j
.x1 x3 /.x2 x3 / .y1 y3 /.y2 y3 /
“
d/ r1 2 dx dy D
T 2jd j
“ “
4
e/ f 1 2 dx dy D f .x;N y/jd
N j=18 C O.h / D f 12 dx dy
T T
“
f/ f 1 dx dy D f .x; N j=6 C O.h4 /;
N y/jd
T
N y/
donde .x; N es el baricentro de T y h D diáme.T /.
57/71
Ahora ya se puede obtener A. Consideremos el punto .x8.3 Elliptic Equations |
i ; yj / —interior en esta
figura—,
(xi,y j+1) (xi+1,y j+1)
5
(xi 1,y j ) 6 4 (xi+1,y j )
1 3
(xi 1,y j 1) 2 (xi ,y j 1)
B5 D xi C 13 h; yj C 32 h
B6 D xi 13 h; yj C 31 h :
59/71
La segunda integral es
De la misma forma,
k hk
Ai C.j 1/m;i 1C.j 1/m D h 18
r.B 6 / C r.B1 /
hk
Ai C.j 1/m;i 1C.j 2/m D 18
r.B1 / C r.B1 /
h hk
Ai C.j 1/m;i C.j 2/m D k 18
r.B 2 / C r.B3 /
k hk
Ai C.j 1/m;i C1C.j 1/m D h 18
r.B 3 / C r.B4 /
hk
AiC.j 1/m;i C1Cj m D 18
r.B4 / C r.B5 /
k hk
Ai C.j 1/m;i Cj m D h 18
r.B 5 / C r.B6 /
60/71
Para calcular los coeficientes de b se procede de forma similar resultando que,
para p D i C .j 1/m
hk
bi C.j 1/m D f .B1 / C f .B2 / C f .B3 / C f .B4 / C f .B5 / C f .B6 / :
6
Para los elementos finitos en la frontera, i C.j 1/m no pertenece a L20.R/ por lo
que se usan AiC.j 1/m;iC.j 1/m D 1 y bi C.j 1/m D g.xi ; yj / para garantizar las
condición de Dirichlet vi C.j 1/m D g.xi ; yj /, en el que .xi ; yj / es un punto
frontera.
61/71
Si llevamos todos estos resultados del método de los elementos finitos a
Matlab para resolver la ecuación de Poisson con m D n D 5, en el rectángulo
Œ0; 1 Œ1; 2 y con las condiciones Dirichlet anteriores, se consigue esto:
function w=Poisson_FEM_1(xl,xr,yb,yt,M,N)
% Ecuación de Poisson por Elementos Finitos
% Entrada: [xl,xr], tiempo[yb,yt], pasos M, tiempos N
v=A\b;
w=reshape(v(1:mn),m,n);
mesh(x,y,w’)
end
62/71
Si lo utilizamos con >> w=Poisson_FEM_1(0,1,1,2,4,4); para el problema
propuesto, se llega a la solución de la gráfica.
1.8
1.6
1.4
1.2
0.8
0.6
0.4
0.2
0
2
1.8 1
1.6 0.8
1.4 0.6
0.4
1.2
0.2
1 0
63/71
Resolución de EDP no lineales
u t C uux D Duxx
64/71
8 Partial Differential Equations
Utilizaremos una discretización como la de la ecuación del calor.
t
0 x
a b
Figure 8.1 Mesh for the Finite Difference Method. The filled circles represent known
Los puntos sólidos
initial and sonconditions.
boundary los conocidos querepresent
The open circles definen las condiciones
unknown values that mustiniciales
be y de
contorno; los huecos, los que calculará el método.
determined.
Si wijitsesapproximation
la aproximación
at (xi , tj )de
by la
wijsolución
. Let M andenN be.xthe
i ; tjtotal
/, aplicando diferencias
number of steps in the x and t
directions, and let h = (b − a)/M and k = T /N be the step sizes in the x and t directions.
atrasadasThe a udiscretization
i y centradas en los otros términos, se tiene que
formulas from Chapter 5 can be used to approximate derivatives in
the xwand t directions.
ij w i;j 1 For example,
wiC1;j applying
wi 1;j the centered-difference
D formula for the second
C w
derivativekto the x variable
ij yields2h D h2
w i C1;j 2w ij C w i 1;j :
1
u (x, t) ≈ (u(x + h, t) − 2u(x, t) + u(x − h, t)), (8.4) 65/71
Reordenando,
h
wij C 2h wij wi C1;j wi 1;j wi C1;j 2wij C wi 1;j wi;j 1 D 0;
66/71
La primera y la última de estas ecuaciones se reemplazan por las condiciones de
contorno apropiadas. Por ejemplo, para el caso de la ecuación de Burgers con
las condiciones de Dirichlet
8
ˆ
ˆ
ˆ u t C uux D Duxx
u.x; 0/ D f .x/ para xl x xr
<
ˆ
ˆ u.xl ; t / D l.t / para todo t 0
: u.x ; t / D r.t / para todo t 0;
ˆ
r
67/71
Para usar el método de Newton-Raphson tenemos que calcular la matriz
@F
Jacobiana del sistema no lineal de ecuaciones, J .z/ D , que es
@z
1 0
2 3
6
6
kz2
2h
1C2 C k.z32h z1 / C kz
2h
2 7
7
6 7
6 kz3
2h
1C2 C k.z42h z2 / C kz
2h
3 7
J .z/D6
6 7
6 ::: ::: ::: 7
7
kzm
1C2 C k.zm 2hzm 2/
C kz2h
6 7
1 m 17
6
4 2h 5
0 1
68/71
Ejemplo Resolvamos mediante diferencias atrasadas y Newton-Raphson la
siguiente ecuación de Burgers
8
ˆ
ˆ
ˆ u t C uux D Duxx
< u.x; 0/ D 2Dˇ sen.x/ para 0 x 1
ˆ
˛Cˇ cos.x/
ˆ
ˆ
ˆ u.0; t/ D 0 para todo t 0
ˆ
: u.1; t/ D 0 para todo t 0:
function w=Burgers(xl,xr,tb,te,M,N)
% Ecuación de Burges no lineal mediante por diferencias atrasadas
% Entrada: [xl,xr], tiempo[tb,te], pasos M, tiempos N
70/71