Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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)
[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
n2 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
19
y'(a) = tk, 18
y(b,tk)
17
k=1,2,... 16
15
14
13
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
bi ai ,i 1 1 ( h 2 ) f z ( xi , yi , zi )
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
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) cii ( x)
i 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 xn1 1
donde hi xi1 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