Sei sulla pagina 1di 27

Problemas de frontera para

ecuaciones diferenciales
Clculo Numrico
Prctica 3

Algoritmos de resolucin

Algoritmos auxiliares
Problema de valor inicial
Sistemas lineales tridiagonales

Mtodos de disparo
Problema lineales y no lineales

Mtodos de diferencias finitas


Problema lineales y no lineales

Mtodos variacionales
Elementos lineales y cbicos

Problema de valor inicial


y ( t ) f ( t , y( t ))

, t [a , b] , y( t 0 ) y 0

siendo,

y( t ) ( y1 ( t ), y 2 ( t ),..., y m ( t )) T
y ( t ) ( y1 ( t ), y 2 ( t ),..., y m ( t )) T
f ( t , y) ( f1 ( t , y), f2 ( 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)
% Ecuacin 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

c1 a2 b2

c2 a3

b3

cn 2 an 1
cn 1

x1 d1

x2 d 2
x d
3 3

bn 1 xn 1 d n 1
an xn d n

Algoritmo de Crout

% Eliminacin
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
% Sustitucin regresiva
x(n)=y(n);
for i=n-1:-1:1
x(i)=y(i)-u(i)*x(i+1);

Mtodo de disparo no lineal

Resolver el problema de contorno

y' ' f ( x, y, y' )


y (a )

iterando las soluciones de los PVI

y ' ' f ( x , y, y ' )


y (a )

x a , b
y( b)

x a , b

y ' (a ) t k

eligiendo los parmetros t = tk para que

lim y(b, t k ) y(b)


k

Disparo con la secante

tk: ngulo de tiro,


y'(a) = tk,
k=1,2,...

21
20

y(b,tk)

19
18
17
16
15
14

Iterar los tk segn


la frmula

13
12

1.5

y(b, t k )
t k 1 t k
y(b, t k ) y(b, t k 1 )
t k t k 1

2.5

3.5

4.5

5.5

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 frmula de la secante
Disparar con y(a)=tk+1 para hallar y(b,tk+1)

Salida: y

Ejemplo

Solucin exacta:

16
y( x ) x
x
2

1
3
y' ' 32 2x yy' x 1,3
8
43
y(1) 17 y(3)
3

Criterio de parada:

17

16

15

14

13

43
y(3, t k )
10 5
3

12

11

1.2

1.4

1.6

1.8

2.2

2.4

2.6

2.8

Diferencias finitas: caso no lineal

Problema de contorno

y" f ( x , y , y' ), x a ,b ;

y( a ) , y( b )

Nodos de discretizacin
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

Discretizacin del problema no


lineal
Derivada
Para

primera zi

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

y N 2 2 y N 1 y N h 2 f xN 1 , y N 1 , z N 1 0

y N 1 2 y N h f xN , y N , z N 0

Lo resolvemos por Newton

Jacobiano

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

ai ai ,i 2 h 2 f y ( xi , yi , zi )

Superdiagonal: para i = 1, 2, ..., n1

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

Superdiagonal: para i = 1, 2, ..., n1

ci ai 1,i 1 ( h 2 ) f z ( xi 1 , yi 1 , zi 1 )

Trmino independiente
2 y1 y2 h f x1 , y1 , z1

y1 2 y2 y3 h 2 f x2 , y2 , z2

y N 1 2 y N h 2 f xN , y N , z N

diff(y,2)

Ejemplo

1
3
y' ' 32 2 x yy'
8

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;

MtodosVariacionales:
Rayleigh-Ritz

TEOREMA: Bajo ciertas condiciones para las


funciones p(x), q(x) y f(x), y(x) es la solucin
del problema de frontera

d
dy
p
(
x
)

q ( x) y f ( x)
dx
dx
y (0) y (1) 0

0 x 1

(1)

si y slo si y(x) es la nica funcin que


minimiza la integral

I (u ) p( x) u ' ( x) q( x) u ( x) 2 f ( x)u ( x) dx
1

(2)

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

Solucin aproximada

Hallaremos una aproximacin a la solucin


y(x) de (1),
n

( x) cii ( x)
i 1

eligiendo los coeficientes para que


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

aij p ( x) ( x) ( x) q ( x)i ( x) j ( x) dx
1

'
i

'
j

b j f ( x) j ( x)dx
0

Funciones base: polinomios


lineales a trozos

Dada una particin de [0,1]

0 x 0 x1 x 2 ... x n x n 1 1
donde hi xi 1 xi i 0,1,..., n

0
xx
i 1

hi 1

i ( x)

0 x xi 1
xi 1 x xi
i 1,2,..., n
xi x xi 1

xi 1 x 1

xi 1 x

hi

Coeficientes del sistema


aij

p( x ) ( x ) ( x ) q( x ) ( x ) ( x )dx

aii

dx dx

'
i

xi

x i 1

x i 1

xi

xi

x i 1

'

x i 1

xi

hi 1

( x xi 1 )
p( x )
q( x ) dx
2
hi 1

( xi 1 x )2
q( x ) dx
2 p( x )
2
hi
hi

Coeficientes del sistema


ai ,i 1

x i 1

xi

1
( x xi )( xi 1 x )
q( x ) dx
2 p( x )
2
hi
hi

Trminos independientes
x i 1 ( x x )
( x xi 1 )
i
bi
f ( x ) dx
f ( x ) dx
x i 1
xi
hi 1
hi
xi

Algoritmo de elementos finitos


lineales

Entrada: problema, particin del intervalo


Proceso:
En cada subintervalo [xi, xi+1] hallar las integrales
que aparecen el las frmulas de los coeficientes
del sistema.
Combinar adecuadamente las integrales
calculadas para obtener los coeficientes.
Resolver el sistema lineal.

Salida: aproximacin lineal a trozos de la solucin.

Integrales a evaluar: i = 0, ..., n


phi

x i 1

xi

qli

x i 1

xi

( x xi )2
q( x ) dx
2
hi
qhi

x i 1

xi

rli

x i 1

xi

1
p( x ) dx
2
hi
qri

x i 1

xi

( xi 1 x )2
q( x ) dx
2
hi

( x xi )( xi 1 x )
q( x ) dx
2
hi

( x xi )
f ( x ) dx
hi

rri

x i 1

xi

( xi 1 x )
f ( x ) dx
hi

Coeficientes del sistema


Matriz del sistema

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


ai = phi1 + phi + qli1 + qri

Sub y superdiagonal: para i = 1, 2, ..., n1


bi = ci = qhi phi

Trminos independientes: para i = 1, 2, ..., n


di = rli1 + rri

Ejemplo

y ' ' 2 y 2 2 sen( x)


x 0,1, y (0) y (1) 0

Solucin exacta: y(x)=sen (x)

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

Potrebbero piacerti anche