Está en la página 1de 27

Problemas de frontera para

ecuaciones diferenciales
Cálculo Numérico
Práctica 3
Algoritmos de resolución
 Algoritmos auxiliares
• Problema de valor inicial
• Sistemas lineales tridiagonales
 Métodos de disparo
• Problema lineales y no lineales
 Métodos de diferencias finitas
• Problema lineales y no lineales
 Métodos variacionales
• Elementos lineales y cúbicos
Problema de valor inicial
y  ( t )  f ( t , y ( t )) , t [ a , b ] , y( t 0 )  y 0

siendo,
y ( t )  ( y 1 ( t ), y 2 ( t ),..., y m ( t )) T
y  ( t )  ( y 1 ( t ), y 2 ( t ),..., y m ( t )) T
f ( t , y )  ( f1 ( t , y ), f 2 ( t , y ),..., f m ( t , y )) T
y 0  ( y 01 , y 02 ,..., y 0 m ) T
Algoritmo de MATLAB 5.2 para
el Problema de Valor Inicial
 [X,Y] = ode23(‘fun’, [a, b], y0)
• fun.m: fichero que calcula las derivadas

function z=f(x,y)

% Ecuación no lineal de segundo orden

% y" = (32 + 2x^3 -yy')/8

z=[y(2);(32 + 2*x^3 - y(1)*y(2))/8];

 [T,Y] = ode23('fun',[1,3],[17,0])
Sistemas lineales tridiagonales

 a1 b1  x1   d1 
    
 c1 a2 b2  x2   d 2 
 c2 a3 b3  x   d 
  3    3 
         
 c a b  x   d 
 n2 n 1 n 1  n 1   n 1 
  x   d 
 cn 1 a n  n   n 
Algoritmo de Crout
 % Eliminación
 l(1)=a(1); y(1)=d(1)/l(1);
 for i=2:n
 u(i-1)=b(i-1)/l(i-1);
 l(i)=a(i)-c(i-1)*u(i-1);
 y(i)=(d(i)-c(i-1)*y(i-1))/l(i);
 end
 % Sustitución regresiva
 x(n)=y(n);
 for i=n-1:-1:1
 x(i)=y(i)-u(i)*x(i+1);
Método de disparo no lineal
 Resolver el problema de contorno
y' '  f ( x, y, y' ) x  a , b
y (a )   y( b)  
 iterando las soluciones de los PVI
y' '  f ( x, y, y' ) x  a, b
y (a )   y' (a )  t k
 eligiendo los parámetros t = tk para que
lim y(b, t k )  y(b)  
k 
Disparo con la secante
21

 tk: ángulo de tiro, 20

19

y'(a) = tk, 18
y(b,tk)
17

k=1,2,... 16

15

14

13

 Iterar los tk según 12


1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 k
la fórmula
y(b, t k )  
t k 1  t k 
y(b, t k )  y(b, t k 1 )
t k  t k 1
Algoritmo de disparo secante

 Entradas: f, a, b, , , tol, maxiter


 Proceso
• Estimar t0 y t1
• Disparar con y(a) = , y’(a) = t0 para hallar y(b,t0)
• Disparar con y(a) = , y’(a) = t1 para hallar y(b,t1)
• Mientras |y(b,tk)  )| > tol y k < maxiter
Hallar tk+1 por la fórmula de la secante
Disparar con y’(a)=tk+1 para hallar y(b,tk+1)
 Salida: y
Ejemplo 1
8

y' '  32  2 x  yy ' x  1,3
3

43
y(1)  17 y(3) 
3
 Solución exacta:
17

16
y( x )  x  2 16

x 15

 Criterio de parada: 14

13

43
y(3, t k )   10  5
12

3 11
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
Diferencias finitas: caso no lineal
 Problema de contorno

y"  f ( x, y , y' ), x  a,b; y( a )  , y( b )  


 Nodos de discretización
a = x0 < x1 < ... < xn < xn+1 = b
 Aproximaciones en los nodos
yi 1  yi 1
yi  y( xi ) y'i  y' ( xi ) 
2h
yi 1  2 yi  yi 1
y"i  y" ( xi ) 
h2
Discretización del problema no
lineal
Derivada
primera  zi
Para i  1,2 ,...., N
yi 1  2 yi  yi 1  yi 1  yi 1 
  f  xi , yi , 0
 
2
h 2h
Derivada
segunda
y0  
y N 1   Condiciones de contorno
Sistema no lineal
2 y1  y2  h 2 f  x1 , y1 , z1     0 

 y1  2 y2  y3  h f  x2 , y2 , z2   0
2


 
 yN  2  2 yN 1  y N  h f  xN 1 , y N 1 , z N 1   0
2 

 y N 1  2 yN  h 2 f  xN , y N , z N     0
 Lo resolvemos por Newton
Jacobiano
 Diagonal: para i = 1, 2, ..., n
ai  ai ,i  2  h2 f y ( xi , yi , zi )

 Superdiagonal: para i = 1, 2, ..., n1

bi  ai ,i 1  1  ( h 2 ) f z ( xi , yi , zi )

 Superdiagonal: para i = 1, 2, ..., n1

ci  ai 1,i  1  ( h 2 ) f z ( xi 1 , yi 1 , zi 1 )
Término independiente
    2 y1  y2  h 2 f  x1 , y1 , z1  
 
  y1  2 y2  y3  h 2 f  x2 , y2 , z2  
 
d    
  
 
  y N 1  2 y N    h 2 f  xN , y N , z N 
 

diff(y,2)
Ejemplo 
1
y' '  32  2 x  yy'
8
3
 x  1, 3

function [f,fy,fz] = fun(x,y,z)


% y" = (32 + 2x^3 -yy')/8
% Valor de y"
f = (32 + 2*x.^3 -y.*z)/8;
% Parcial respecto a y
fy = -z/8;
% Parcial respecto a y'
fz = -y/8;
MétodosVariacionales:
Rayleigh-Ritz
 TEOREMA: Bajo ciertas condiciones para las
funciones p(x), q(x) y f(x), y(x) es la solución
del problema de frontera
d  dy 
  p ( x )   q ( x) y  f ( x) 0  x 1 (1)
dx  dx 
y (0)  y (1)  0

si y sólo si y(x) es la única función que


minimiza la integral
I (u)   p( x)u' ( x)  q( x)u( x) 
1
 2 f ( x)u( x) dx
2 2
(2)
0
Funciones base

 La integral I se minimiza en el subespacio


generado por las funciones base

1, 2 ,...,n 
Las funciones base
son linealmente independientes
verifican las condiciones de contorno
i (0)  i (1)  0 i  1,2,..., n
Solución aproximada
 Hallaremos una aproximación a la solución
y(x) de (1),
n
 ( x)   cii ( x)
i 1

 eligiendo los coeficientes para que


minimicen la integral I(f).
 Se obtiene el sistema lineal A c = b donde
1

0
 i
' '
j 
aij   p( x) ( x) ( x)  q( x)i ( x) j ( x) dx
1
b j   f ( x) j ( x)dx
0
Funciones base: polinomios
lineales a trozos
 Dada una partición de [0,1]
0  x0  x1  x2  ...  xn  xn1  1
donde hi  xi1  xi i  0,1,..., n

0 0  x  xi 1
x  x
 i 1
xi 1  x  xi
 hi 1
i ( x)   i  1,2,..., n
 xi 1  x xi  x  xi 1
 hi

0 xi 1  x  1
Coeficientes del sistema
 p( x ) ( x ) ( x )  q( x ) ( x ) ( x )dx
1
aij  '
i
'
j i j
0

  dx    dx 
xi x i 1
aii 
x i 1 xi

xi  1 ( x  xi 1 ) 2

   2 p( x )  2
q( x )dx 
 i 1 
x i 1 h hi 1
x i 1  1 ( xi 1  x )2 
xi  hi 2 p( x )  hi 2 q( x )dx
Coeficientes del sistema
x i 1  1 ( x  xi )( xi 1  x ) 
ai ,i 1    2 p( x )  2
q( x )dx
 hi hi 
xi

Términos independientes
xi ( x  xi 1 ) xi 1 ( x  x )
bi   f ( x ) dx   i
f ( x ) dx
x i 1 hi 1 xi hi
Algoritmo de elementos finitos
lineales
 Entrada: problema, partición del intervalo
 Proceso:
• En cada subintervalo [xi, xi+1] hallar las integrales
que aparecen el las fórmulas de los coeficientes
del sistema.
• Combinar adecuadamente las integrales
calculadas para obtener los coeficientes.
• Resolver el sistema lineal.
 Salida: aproximación lineal a trozos de la solución.
Integrales a evaluar: i = 0, ..., n
x i 1 1
phi   2
p( x ) dx
xi hi

x i 1 ( x  xi )2 x i 1 ( xi 1  x )2
qli   2
q( x ) dx qri   2
q( x ) dx
xi hi xi hi

x i 1 ( x  xi )( xi 1  x )
qhi   2
q( x ) dx
xi hi

x i 1 ( x  xi ) x i 1 ( xi 1  x )
rli   f ( x ) dx rri   f ( x ) dx
xi hi xi hi
Coeficientes del sistema
Matriz del sistema

 Diagonal: para i = 1, 2, ..., n


ai = phi1 + phi + qli1 + qri

 Sub y superdiagonal: para i = 1, 2, ..., n1


bi = ci = qhi  phi

Términos independientes: para i = 1, 2, ..., n


di = rli1 + rri
 y' 'p 2 y  2p 2 sen(p x)
Ejemplo x  0,1, y(0)  y(1)  0

 Solución exacta: y(x)=sen (px)


 Tomamos h=0.1, xi = 0.1 i i=0,1,…,9,10
c9  0.31028667 c4  0.95496419
c8  0.59020033 c3  0.81234106
c7  0.81234106 c2  0.59020033
c6  0.95496419 c1  0.31028667
c5  1.00410877
FIN

También podría gustarte