Está en la página 1de 34

Universidad Politécnica de Madrid–Escuela Técnica Superior de Ingenieros Industriales 1/34

Grado en Ingeniería en Tecnologías Industriales. Curso 2017-2018-3º


Matemáticas de Especialidad–Ingeniería Eléctrica

Integración de ecuaciones diferenciales ordinarias con


Condiciones de Contorno o Frontera

José Luis de la Fuente O’Connor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_integración_problemas_contorno_2018.pdf
2/34

Índice
 Introducción
 El método del disparo
 El método de las diferencias finitas
 Métodos de colocación y de elementos finitos
Introducción 3/34

 En este tema analizamos los problemas que se pueden modelizar mediante una
ecuación diferencial de segundo orden con condiciones en dos puntos dados,
extremos de un intervalo de estudio Œa; b.

 Son los denominados problemas de ecuaciones diferenciales con valores en la


frontera, o problemas de contorno. Se formulan así:

y 00 D f .t; y; y 0/; y.a/ D ˛; y.b/ D ˇ:

 Para definir la solución se necesitan dos condiciones de contorno:


 Si se dan para un mismo punto, se tiene un problema de valor inicial como
los que hemos estudiado.
 Si se dan para dos puntos, se tiene un problema de valores en la frontera.
El método del disparo 4/34

 Se basa en encontrar la ecuación diferencial que tiene la misma solución del de


ChE-401: Computational Methods in Chem. Eng.

contorno que se estudia.


S

Shooting method
 Con tal fin se genera una sucesión de problemas de valor inicial que converja al 1
2
dado. 3




En cada uno se estima y 0.a/, la derivada –pendiente– de y en el extremo


Chemical Engineering Dep. Prof. Ibrahim S. Al-Mutaz King Saud University ٢٥ Chemical


izquierdo del intervalo.
Luego se resuelve (se dispara) hacia y.b/ y se obtiene el valor real yb en b.
ChE-401: Computational Methods in Chem. Eng.

 Se itera hasta que ySolution


b estéoftan
Boundary-Value y.b/- Shooting
cerca deProblems como method
sea necesario. S
5/34

 De forma más estructurada, si se define la función


8
< Diferencia entre yb e y.b/; donde
ˆ
ˆ
F .s/ D y.t / es la solución del problema de valor inicial,
ˆ
: con y.a/ D y y y 0 .a/ D s;
ˆ
a

el problema con valores de frontera se reduce a resolver la ecuación

F .s/ D 0:

 Para resolver esta ecuación se puede utilizar el método de la bisección, por


ejemplo, informando al programa correspondiente de qué dos valores s0 y s1
hacen que F .s0/F .s1/ < 0.
6/34

 Ejemplo Resolvamos mediante el método del disparo este problema:


8
00
< y D 4y
ˆ
ˆ
y.0/ D 1
ˆ
ˆ
: y.1/ D 3:

 Escribamos la ecuación diferencial como un sistema de dos ecuaciones de orden


uno:
y0 D v
v 0 D 4y:

function z=F(s)
a=0; b=1; yb=3;
 En Matlab podría escribirse así: ydot = @(t,y) [y(2); 4*y(1)];
[t,y]= ode45(ydot,[a,b],[1,s]); % Solver de Matlab
z = y(end,1)-yb
end
 Comprobamos que para s D 1, F . 1/  1;0512 y que F .0/  0;7622 7/34

por lo que podemos invocar el programa Bisec_y.m en el intervalo Œ 1; 0:


>> [ss,t,y]=Bisec_y(@F,[-1,0]);
>> ss
ss =
-0.4203
>> plot(t,y)
>> xlabel(’Tiempo’); ylabel(’y’)
>> legend(’y(t)’, ’y’’(t)’,’Location’,’NorthWest’)

 El resultado de la evolución en el tiempo de y e y 0 es este.


6
y(t)
y'(t)

3
y

-1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Tiempo
8/34

Método de las diferencias finitas

 Su intención es reemplazar las derivadas de la ecuación diferencial por su


aproximación por diferencias fintas en una malla de puntos del intervalo de
estudio.

 Se consigue un sistema de ecuaciones más o menos grande según lo “tupida”


que sea esa malla. Luego se resuelve.

 Si y.t/ es una función con derivadas continuas al menos hasta cuarto orden,
sabemos que
0 y.t C h/ y.t h/ h2 000
y .t / D y ./
2h 6
y que
00 y.t C h/ 2y.t/ C y.t h/ h2 000
y .t / D C y ./:
h2 12
for approximations wi to the correct values yi , as shown in Figure 7.6. The boundary
conditions are substituted in the system of equations where they are needed. 9/34

1 w1
w2
ya y1
y2 wn–1
wn
yn–1
yn yb
t
t0 t1 t 2 ... tn–1 tn tn+1

Figure 7.6 The Finite Difference Method for BVPs. Approximations wi , i = 1, . . . , n for
the correct values yi at discrete points ti are calculated by solving a linear system of
 El objetivo es reemplazar los y , y ; : : : ; y reales de la trayectoria por sus
equations.
1 2 n
aproximaciones por diferencias
After the substitutions, finitas,
there are wi . situations. If the original boundary value
two possible
problem was linear, then the resulting system of equations is linear and can be solved by
Gaussian elimination or iterative methods. If the original problem was nonlinear, then
 Si el
theproblema de contorno
algebraic system original
is a system es linealequations,
of nonlinear el problema se convierte
requiring entonces
more sophisticated
en approaches.
resolver unWesistema de aecuaciones
begin with lineales; si no es lineal, en lo propio.
linear example.

E 7.8 Solve the BVP (7.7)


10/34

 Ejemplo Resolvamos mediante diferencias finitas este problema:


8
00
< y D 4y
ˆ
ˆ
y.0/ D 1
ˆ
ˆ
: y.1/ D 3:

 La aproximación de la ecuación diferencial y 00 D 4y por diferencias finitas en ti


es
wiC1 2wi C wi 1
4wi D 0;
h2
2

o, wi 1 C 4h 2 wi C wi C1 D 0:

 Si se divide el intervalo de estudio en tres tramos, n D 3, el parámetro


h D 1=.n C 1/ D 1=4, por lo que habrá tres ecuaciones.
 Introduciendo que w0 D 1 y que w4 D 3 se llega al sistema 11/34

2

1C 4h 2 w1 C w2 D 0
4h2 2 w2 C w3 D 0

w1 C
4h2 2 w3 C 3 D 0:

w2 C

 Sustituyendo el valor de h a este sistema con matriz tridiagonal


2 9 3" # 2 3
4
1 0 w1 1
4 1 49 15 w2 D 4 05 :
0 1 9 w3 3
4

 Resolviendo este sistema se obtiene la solución de esta tabla.


i ti wi yi
0 0;00 1;0000 1;0000
1 0;25 1;0249 1;0181
2 0;50 1;3061 1;2961
3 0;75 1;9138 1;9049
4 1;05 3;0000 3;0000

Las diferencias son O.10 2/. Para obtener más precisión habría que aumentar n.
12/34

 En general, si h D .b a/=.n C 1/ D 1.n C 1/ el sistema de matriz tridiagonal


que se obtiene en este ejemplo es de la forma
2 2 3
4h 2 1 0  0 0 0 2 3 2 13
6 1 4h2 2 1  0 0 0 7 w1
6 0 1 4h 2
2  0 0 0 7 6 w2 7 6 007
6 :: ::: ::: ::: :: 7 6 w3 7 6 :7
6 : 0 : 7 6 : 7 D 6 ::7 :
6 ::: ::: 7 4 :: 5 6 7
6 0 0 0 1 0 7 wn 1 4 05
::: 0
 4h2 2
4 0 0 0 1
5
wn
2 3
0 0 0  0 1 4h 2

 Los errores en este método vienen de la aproximación de las derivadas y de la


resolución del sistema de ecuaciones.

 Para valores de h mayores que la raíz cuadrada de la precisión de la máquina, ,


prevalecen los de la aproximación, O.h2/.
 Ejemplo Resolvamos ahora mediante diferencias finitas este otro problema: 13/34

8
00
<y D y
ˆ
ˆ y2
y.0/ D 1
ˆ
ˆ
: y.1/ D 4:

 La discretización de la ecuación diferencial en ti lleva a


wi C1 2wi C wi 1
wi C wi2 D 0
h2
o
2 C h2 wi C h2wi2 C wiC1 D 0;

wi 1

para 2  i  n 1.

 Las condiciones de contorno añaden


2 C h2 w1 C h2w12 C w2 D 0

ya
2 C h2 w1 C h2wn2 C yb D 0:

wn 1
 En este caso tenemos un sistema de ecuaciones no lineales que podemos 14/34

resolver mediante Newton-Raphson con esta fórmula de recurrencia:

wkC1 D wk J .wk / 1f .wk /:

 La función vectorial es
2 C h2 w1 C h2 w12 C w2
2  3
ya
2 C h2 w2 C h2 w22 C w3 7

6 w1
6 7
f .wk / D 6
6 :: 7;
7
6 : 7
2 C h2 wn 1 C h2 wn2 1 C wn 5

4wn 2
wn 1 2 C h2 wn C h2 wn2 C yb

donde ya D 1 y yb D 4.

22h2w 2 C h2

1 0  0
3
1
: :: :: ::
2h2 w1 2 C h2

6 1 : : 7
:: 7:
 La Jacobiana: 6 0 1 : 1 0
:: :: ::
4 5
: 2h2 w1 h2

: : 2C 1
2h2 wn 2 C h2

0  0 1
Cada fila i es la derivada parcial de la ecuación i de f con respecto a cada wj .
15/34

 Si organizamos todo el procedimiento en un fichero .m de Matlab:

function w1=nlbvpfd(inter,bv,n) 4.5

% Diferencias finitas no lineal para resolver BVP


% inter, intervalo de integración; bv, valores de contorno;
4
% n, número de pasos.
a=inter(1); b=inter(2); ya=bv(1); yb=bv(2);
h=(b-a)/(n+1); w=zeros(n,1); w1=w+0.01; 3.5
while abs(w1-w)>sqrt(eps) % Iteraciones de Newton-Raphson
w=w1;
w1=w-jac(w,h,n)\f7(w,h,bv,n); 3

end
close all, plot ([a a+(1:n)*h b],[ya w1’ yb]);
2.5
end

function y=f7(w,h,bv,n) 2
y=zeros(n,1);
y(1)=bv(1)-(2+h^2)*w(1)+h^2*w(1)^2+w(2);
y(n)=w(n-1)-(2+h^2)*w(n)+h^2*w(n)^2+bv(2); function a=jac(w,h,n) 1.5
a=zeros(n,n);
for i=2:n-1 for i=1:n
y(i)=w(i-1)-(2+h^2)*w(i)+h^2*w(i)^2+w(i+1); a(i,i)=2*h^2*w(i)-2-h^2;
end 1
end 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
for i=1:n-1
end a(i,i+1)=1;
a(i+1,i)=1;
end
end

 La respuesta se consigue con >> w=nlbvpfd([0 1],[1 4],40);


16/34

Métodos de colocación y de elementos finitos

 La idea que comparten estos dos métodos es la de convertir el problema en el de


resolver un conjunto de ecuaciones algebraicas mediante la aproximación de la
ecuación diferencial por

y.t / D c11.t / C    C cnn.t /;

donde las i son funciones base definidas en el intervalo Œa; b y los ci


parámetros que hay determinar.

 Las funciones base pueden ser polinomios, funciones trigonométricas, splines u


otras funciones simples.

 La determinación de una solución aproximada de la ecuación diferencial se


reduce a encontrar los valores de los ci .
17/34

 El enfoque de la colocación consiste en usar la aproximación de y.t / en un


conjunto de n puntos a D t1 <    < tn D b, denominados puntos de
colocación, en los que se fuerza a que la solución aproximada y.t / satisfaga la
ecuación diferencial.

 Esto lleva a un sistema de ecuaciones lineales, o no lineales, en los que se


calculan los ci . La idea es parecida a la de la interpolación.

 El método de los elementos finitos aproxima mediante mínimos cuadrados los ci


de tal forma que se minimice la suma al cuadrado de las desviaciones entre los
valores exactos en unos puntos de la ecuación diferencial y los aproximados.
18/34

Método de colocación
8
00
< y D 4y
ˆ
ˆ
 Resolvamos la ecuación y.0/ D 1
ˆ
ˆ
: y.1/ D 3:

 Se eligen como funciones base monomios j .t / D t j 1, para 1  j  n.

Pn Pn j 1
 La solución será de la forma y.t / D j D1 cj j .t / D j D1 cj t .
 Se formularán n ecuaciones con las n incógnitas c1; : : : ; cn. La primera y la 19/34

última son las condiciones en la frontera:


n
X
c1 D cj j .0/ D y.0/ D 1
j D1
n
X
c1 C    C cn D cj j .1/ D y.1/ D 3:
j D1

 Las otras n 2 ecuaciones resultan de evaluar la ecuación diferencial


y 00 D f .t; y; y 0/ en ti , 2  i  n 1, siendo y.t / D jnD1 cj t j 1. Es decir
P
0 1
X n Xn Xn
 j 3
j 1 j 2 cj t D f t; cj t ; cj j 1 t j 2A :
j 1
 
@
j D1 j D1 j D1

 En el ejemplo,
n h i
X  j 3 j 1
j 1 j 2 ti 4ti cj D 0; i D 2; : : : ; n 1:
j D1
 Las n ecuaciones forman un sistema Ac D b, donde la matriz de coeficientes 20/34

A está definida así,


8
ˆ
ˆ
ˆ 1 0 0  0 fila i D 1
ˆ
<
Aij D ˆ j 1 j 2 tij 3 j 1
 
4ti filas i D 2; : : : ; n 1
ˆ
ˆ
ˆ
:1 1 1  1 fila i D n

y b D Œ1 0 0    0 3T .

 Los ti de la malla que se usan son los uniformemente espaciados


i 1 i 1
ti D a C .b a/ D (en el caso del ejemplo a) :
n 1 n 1

 Para n D 2 el sistema queda


    
1 0 c1 1
1 1 c2
D 3 ;

y la solución es c D Œ1 2T . Es decir y.t / D c1 C c2t D 1 C 2t.


 Para n D 4 el sistema es 21/34
2 32 3 23
1 0 0 0 c1 1
2 3
4 4  1=3 2 4  .1=3/ 6  1=3 4  .1=3/ 5 4c2 5 405 ;
4
4 4  2=3 2 4  .2=3/2 6  2=3 4  .2=3/3 c3 D 0
1 1 1 1 c4 3

cuya solución es c D Œ1;0000 0;1886 1;0273 1;1613T . Es decir,


y.t /  1 0;1886t C 1;0273t 2 C 1;161t 3 :

3
Exacta
y(t)=1+2t
2 3
y(t)=1-0.1886t+1.0273t +1.1613t

2.5

 El gráfico-resultado para el ejemplo:


y

1.5

0.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Tiempo
22/34

 El ejemplo que hemos utilizado para introducir el método era lineal, pues así lo
era la ecuación diferencial. Si fuese no lineal, habría que utilizar el método de
Newton-Raphson para resolver el sistema de ecuaciones no lineales que resultase.

 Igual que hemos utilizado monomios como funciones base para aplicar el
método, se puede recurrir a cualesquiera otras: polinomios de Chebyshev,
funciones trigonométricas, etc.
23/34

Método de los elementos finitos de Galerkin

 El método de los elementos finitos, formulado por Boris Grigoryevich Galerkin,


Rusia 1871-1945, minimiza el cuadrado del error de la aproximación de la
ecuación diferencial a lo largo de la solución. Aboca a un sistema de ecuaciones
lineales diferente del anterior.

 Si en el procedimiento general anterior se usan como funciones base unos splines


nos referimos al método de los elementos finitos. Las splines son distintas de
cero en un corto espacio de t .

 En el caso de la colocación, los ci se obtenían forzando a que la solución


aproximada satisficiese exactamente las condiciones de contorno y los puntos de
colocación.
 El método de los elementos finitos para resolver 24/34

8
00 0
< y D f .t; y; y /
ˆ
ˆ
y.a/ D y
a
ˆ
ˆ
: y.b/ D y ;
b

escoge una solución aproximada y de tal forma que el residuo r D y 00 f sea


lo más pequeño posible.

 Análogamente a como vimos para mínimos cuadrados, esto se consigue


eligiendo y de tal forma que el vector de residuos sea ortogonal al espacio
vectorial del conjunto de las soluciones de la ecuación diferencial.

 Para un intervalo Œa; b se define el espacio vectorial de las funciones integrables


cuadradas
( ˇZ b )
L2Œa; bD funciones y.t / en Œa; bˇˇ y.t /2dt existe y es finita :
ˇ
a
25/34

 En este espacio se define el producto interior


Z b
hy1; y2i D y1.t /y2.t /dt;
a

con las propiedades habituales:

1. hy1; y2i  0;
2. h˛y1 C ˇy2; zi D ˛hy1; zi C ˇhy2; zi, siendo ˛ y ˇ escalares;
3. hy1; y2i D hy2; y1i.

Dos funciones y1 e y2 son ortogonales en L2Œa; b si hy1; y2i D 0.

 Como este espacio es de dimensión infinita, no podemos hacer r D y 00 f


ortogonal al mismo en sentido estricto, pero si escoger una base que comprenda
lo más posible del mismo en el sentido finito de lo cálculos.
 Hay dos ideas principales detrás del método de Galerkin: 26/34

1º- Minimizar el vector residuo r forzando a que sea ortogonal, en el sentido del
producto interior anterior, a un conjunto de R b n C00 2 funciones
 base 0.t /,
1.t /; : : :, nC1.t /. Es decir forzar a que a y f i dt D 0, o que
Z b Z b
00
y .t/i .t/ dt D f .t; y; y 0 /i .t/ dt forma débil
a a

para cada 0  i  n C 1.
2º- Utilizar integración por partes para eliminar las segundas derivadas.
Teniendo en cuenta que
Z b ˇb
Z b
00
y .t/i .t/ dt D i .t/y 0 .t/ˇa y 0 .t/i0 .t/ dt
a a Z b
D i .b/y 0 .b/ i .a/y 0 .a/ y 0 .t/i0 .t/ dt:
a

Utilizando la forma débil y esta expresión resulta un conjunto de ecuaciones


l b l b

f .t; y; y 0 /i .t/ dt D i .b/y 0 .b/ i .a/y 0 .a/ y 0 .t/i0 .t/ dt:
a a
27/34

 Resolviéndolas se determinan los ci de


nC1
X
y.t / D ci i .t /:
i D0

 Esas dos ideas hacen conveniente usar funciones base i .t / —elementos


finitos— muy simples, como lo son los B-splines.

 Para ello, en los puntos t0 < t1 <    < tn < tnC1 sobre el eje t, para
i D 1; : : : ; n, se define
8
t ti 1
ˆ
ˆ t ti 1
para ti 1 < t  ti
< i
ˆ
ˆ
ti C1 t
i .t / D para ti < t < ti C1
ˆ tiC1 ti
ˆ
ˆ
ˆ
:0 en otros casos.
28/34

 Y, también,
8 8
t1 t t tn
<
ti t0
para t0  t < t1 <
tnC1 tn
para tn < t  tnC1
0.t/ D y nC1.t / D
:0 en otros casos7.3 Collocation and the: 0 ElementenMethod
Finite otros |casos.
369

y
␾0 ␾1 ␾2 ␾n–1 ␾n ␾n+1
1

t
t0 t1 t2 t 3 ... tn–1 tn tn+1

Figure 7.10 Piecewise-linear B-splines used as finite elements. Each φi (t), for
1 ≤ i ≤ n, has support on the interval from ti−1 to ti+1 .

1 si i D j
Estas funciones satisfacen que i .tj / D
0 si i ¤ j:
for each i that can be solved for the ci in the functional form


n+1
y(t) = c φ (t). (7.23)
29/34

 Para un conjunto de datos .ti ; ci /, se define la B-spline lineal por tramos


nC1
X
S.t / D ci i .t /:
i D0
PnC1
Se puede comprobar que S.tj / D iD0 ci i .tj / D cj .

 S.t/ es una función lineal por tramos que interpola los puntos .ti ; ci /. Además,
los ci son las soluciones en los puntos ti de la aproximación de la ecuación
diferencial.
30/34

 Para calcular los ci : el primero y el último se obtienen por colocación:


nC1
X
y.a/ D ci i .a/ D c00.a/ D c0
i D0

nC1
X
y.b/ D ci i .b/ D cnC1nC1.b/ D cnC1:
i D0

Los demás, usando las ecuaciones de los elementos finitos:


Z b Z b
f .t; y; y 0/i .t / dt C y 0.t /i0 .t / dt D 0;
a a
P
sustituyendo y.t / por ci i .t /,
Z b  X X  Z b X
i .t /f t; cj j .t /; cj j0 .t / dt C i0 .t / cj j0 .t / dt D 0:
a a
31/34

 Suponiendo que los puntos en t están uniformemente espaciados un paso h, hay


que calcular todas estas integrales para cada i D 1; : : : ; n:
b b Z b
t2
  
t t t
Z Z
i .t/i C1 .t/ dt D 1 dt D dt
a a h h a h h2
ˇ 3 ˇh
t2 ˇt ˇ
D 2h ˇ 3h2 ˇ D h6
0

b h 2
t 2
Z Z
2
i .t/ dt D 2 dt D h
a 0 h 3
b h  
1 1 1
Z Z
i0 .t/iC1
0
.t/ dt D dt D
a 0 h h h

b h 2
1 2
Z Z
0 2

i .t/ dt D 2 dt D :
a 0 h h

 Si la ecuación diferencial es lineal, las ecuaciones de los ci también.


32/34

8
00
< y D 4y
ˆ
ˆ
 Ejemplo Mediante elementos finitos, resolvamos y.0/ D 1
ˆ
ˆ
: y.1/ D 3:

 Sustituyendo la ecuación diferencial en las expresiones de los ci se tiene para


cada i l 1
nC1 nC1
!
X X
0 D 4i .t/ cj j .t/ C cj j0 .t/i0 .t/ dt
0 j D0 j D0

nC1
i  Z 1 Z 1 
D cj 4 i .t/j .t/ dt C j0 .t/i0 .t/ dt :
0 0
j D0
 Usando las expresiones de las B-splines para i D 1; : : : ; n y teniendo en cuenta 33/34

que c0 D f .a/ y cnC1 D f .b/, las ecuaciones que resultan son estas:
2 1
 8 2
 2 1

3
h h
c0 C 3
hC h
c1 C 3
h h
c2 D 0
2 1
 8 2
 2 1

3
h h
c1 C 3
hC h
c1 C 3
h h
c1 D 0
::
: 0
2 1
 8 2
 2 1

3
h h
cn 1 C 3
hC h
cn C 3
h h
cnC1 D 0:

 Como c0 D ya D 1 y cnC1 D yb D 3 el sistema resultante es este


2 32 3 2 3
˛ ˇ 0  0 c1 ya ˇ
6ˇ ˛ : : : : : : ::: 7 6
7 6 c2 7 6 0 7
7 6 7
6
60
6 ˇ : : : ˇ 07 7 6 ::: 7 D 6 ::: 7 ;
6 7 6 7
6: : : : : : : ˛ ˇ7
4 ::
6 7 6 7
5 4cn 15 4 0 5
0  0 ˇ ˛ cn yb ˇ

donde
8 2 2 1
˛ D hC y ˇD h :
3 h 3 h
 Si recopilamos todo lo necesario en un fichero .m de Matlab para este caso: 34/34

function c=Galerkin_ef_1(inter,bv,n)
% Elementos finitos de ejemplo clase
% inter, intervalo de integración; bv, valores de contorno;
% n, número de pasos.
a=inter(1); b=inter(2); ya=bv(1); yb=bv(2);
h=(b-a)/(n+1);
alfa=(8/3)*h+2/h; beta=(2/3)*h-1/h;
e=ones(n,1);
M=spdiags([beta*e alfa*e beta*e],-1:1,n,n);
d=zeros(n,1); d(1)=-ya*beta; d(n)=-yb*beta;
c=M\d;
end

 Resolviendo con la orden


c=Galerkin_ef_1([0 1],[1 3],3)
se llega a la solución de la tabla que sigue.
i ti ci yi
0 0;00 1;0000 1;0000
1 0;25 1;0109 1;0181
2 0;50 1;2855 1;2961
3 0;75 1;8955 1;9049
4 1;05 3;0000 3;0000

Las diferencias son O.10 2/. Para obtener más precisión habría que aumentar n.

También podría gustarte