1 universidad de antioquia carlos alberto palacio tobÓn. medellín 2007 – i ecuaciones...
TRANSCRIPT
1
UNIVERSIDAD DE ANTIOQUIAUNIVERSIDAD DE ANTIOQUIA
CARLOS ALBERTO PALACIO TOBÓN.CARLOS ALBERTO PALACIO TOBÓN.
MedellínMedellín
2007 – 2007 – II
ECUACIONES DIFERENCIALES ORDINARIAS (ODE)
CONDICIONES INICIALES
•MAESTRÍA Y DOCTORADO EN INGENIERÍA MAESTRÍA Y DOCTORADO EN INGENIERÍA MATEMÁTICAS AVANZADASMATEMÁTICAS AVANZADAS
2
ContenidoContenido
• Ecuaciones Diferenciales OrdinariasMotivaciónProblemas de Valor Inicial .vs. Problemas de fronteraProblemas Estables .vs. Inestables
• Problemas de Valor InicialMétodo de EulerMétodos de HeunMétodos de Runge – Kutta
3
¿QUÉ ES UNA ECUACIÓN DIFERENCIAL?
– Es una ecuación de la forma:
– Es decir una ecuación en las cual existen relaciones de una función con sus derivadas.
0),...,,,(2
2
n
n
dx
yd
dx
yd
dx
dyxF
MotivaciónMotivación
4
CLASIFICACIÓN LAS ECUACIONES DIFERENCIALES
– La primera gran clasificación es si la ecuación contiene derivadas ordinarias o derivadas parciales:
(EDP) parcial diferenciaEcuacion ,
(EDO) ordinaria ldiferenciaEcuacion ,
2
2
2
2
t
u
t
u
u
u
xdx
dv
dx
du
MotivaciónMotivación
5
OTROS ELEMENTOS DE CLASIFICACIÓN DE ECUACIONES DIFERENCIALES
– El orden de una ecuación diferencial: es igual al de la derivada de más alto orden que aparece en ella.
– El grado de una ecuación diferencial es el exponente de la potencia más alta a la que aparece elevada alguna de las variables de la ecuación.
1 gradoy 4 orden cuarto de EDP ,t
u
x
ua
3 gradoy 2 orden segundode EDO ,xdx
ud
dx
ud
2
2
4
42
2
2
2
MotivaciónMotivación
6
¿CÓMO SE SOLUCIONA UNA ECUACIÓN DIFERENCIAL?
–Solución analítica: expresa la solución general en funciones elementales (polinomios, exponenciales, etc.). No se abordará
–Solución numérica: obtiene las soluciones particulares de una ecuación diferencial. Pare ello se formula de tal forma que su solución sea posible usando operaciones aritméticas. Se abordará en esta presentación.
MotivaciónMotivación
7
MotivaciónMotivación
vm
cg
dt
dv
tmcec
gmv 1
Analítica Numérica
tvm
cgvv iii
1
Ley Física EDO Solución
8
Solución numérica
Aproximación por funciones
Método de diferencias(step by step)
•Polinomios ortogonales•Series de Fourier•Funciones ortogonales
•Metodo de Euler•Metodo de Runge-Kuta•...•...
MotivaciónMotivación
9
¿CÓMO SE SOLUCIONA UNA ECUACIÓN DIFERENCIAL?
–Para hallar la solución particular de una ecuación de grado “n” se requieren “n” condiciones independientes; la forma como un problema entrega estas condiciones da origen a dos tipos de problemas:
• Los de valores iniciales
• Los de valores de frontera.
MotivaciónMotivación
10
PROBLEMAS DE VALORES INICIALES
– Dada una EDO de orden “n” un problema con condiciones iniciales es:
0),...,,,(2
2
n
n
dx
yd
dx
yd
dx
dyxF
n
n
cdx
axdy
cdx
axdy
caxy
)(
.
.
)(
)(
1
2
1
11
PROBLEMAS DE VALORES DE FRONTERA
– El orden mínimo de la ecuación diferencial para un problema de valores de frontera es dos:
2
1
2
2
)(
)(
0),,,(
cbxy
caxydx
yd
dx
dyyxF
12
PROBLEMAS DE VALORES INICIALES Y DE VALORES DE FRONTERA
– En problemas de valores iniciales entregan condiciones en el extremo inicial del intervalo de solución. Los problemas de valores de frontera establecen condiciones en todos y cada uno de los puntos que constituyen la frontera del dominio de solución.
– Ejemplo en una dimensión, si el dominio de solución es a<x<b, hay dos puntos frontera, x=a y x=b; las condiciones son f(x=a)=C1 y f(x-b)=C2.
13
Valor inicial
Valor de frontera
y’= ySolución y(t) = c exp(t)
y’ = z z’ = -ySolución y(t) = A sin(t+a) z(t) = A cos(t+a)
y(0)=0y(π)=0 muchas soluciones
Como verificar la solución ?
Problemas de Valor Inicial .vs. Problemas de frontera
14
ECUACION DIFERENCIAL
Inestable Estable
y’ = -ySolución y(t) = c exp(-t)
y’ = ySolución y(t) = c exp(t)
a < 0 a > 0
Problemas Estables vs. Inestables
y’ = a y y(t) = c exp(at)
15
PROBLEMAS DE VALOR INICIAL
Los métodos numéricos que estudiaremos se podrán aplicar a una ecuación o a sistemas de ecuaciones diferenciales:
0 0
0
( ) ( , )
( )
[ , ]f
dy t f t y
dty t y
t t t
C.I.
Tiempo
EDO
16
PROBLEMAS DE n-ésimo ORDEN
Se podrán aplicar a problemas de n-ésimo orden con condición inicial, de la forma:
Para lo que se debe transformar el P.V.I. dado, en un sistema equivalente, introduciendo las variables:y1 = y y2 = y′ y3 = y′′ ... yn = y (n-1) = dn-1/ dt n-1
17
PROBLEMAS DE n-ésimo ORDEN
Derivando miembro a miembro cada una de estas últimas ecuaciones con respecto a t, se obtiene el sistema equivalente:
y1′ = y′ = y2 y2′ = y′′ = y3
y3′ = y′′′ = y4
... yn′ = f(t,y1,y2,y3,....,yn)
Condición inicialy1(t0)=y1,0 , y2(t0)=y2,0 , ..., yn(t0)=yn,0
18
EJEMPLO: EDO de orden 22
2
0 0
( ) sin( ) 0
( ) 1; ( ) 1
[0,10]
dt
dtd
t tdt
t
C.I.
Tiempo
EDO
y1 = θ y2 = θ′ y1′ = y2 y2′ = θ′′ = -sin(θ)Condiciones iniciales: y1(0) = 1, y2(0) = 1
19
Método de EulerMétodo de Euler
donde y′(ti) es la ecuación diferencial evaluada en ti y yi. Esta estimación puede sustituirse en la ecuación:
yi+1 = yi + f(ti, yi) h
Conocido como método de Euler.
Del teorema de Taylor se sabe que:
)(,..........)(')()( 11 iiiii tthhtytyty
Dada la siguiente ecuación diferencial ordinaria:
)(,,),()(' aybtaytfdtdy
ty
20ti ti+1
t
y Predicho
Verdadero
Error
Método de Método de EulerEuler
y’ = pendiente = f(ti,yi)
Tamaño de paso, h
yi+1 = yi + f(ti, yi)h
21
( ) ( ) 5 sin(5 )
(0) 1
[0,3]
tdy t y t e t
dty
t
C.I.
Tiempo
EDO
EJEMPLO:EDO de orden 1
% Matlab asume función derivada con respecto a la 1a variable
function yprime = myf(t,y)
yprime = -y -5*exp(-t)*sin(5*t);
22
Programa método de Eulerfunction [t,y] = euler_1(fun,ti,tmax,h,ci)% METODO DE EULER% fun: función programada% ti : tiempo inicial% tmax : tiempo final% h : intervalo de tiempo% ci : condiciones inicialesfor n=1:length(ci)
Y(n,1) = ci(n);%condicion inicialend T(1) = ti; %tiempo inicialfin=(tmax-ti)/h;for n=1:fin Y(:,n+1)=Y(:,n)+h*feval(fun,T(n),Y(:,n)); T(n+1)=T(n)+h;endt=T'; y=Y';plot(t,y)
23
Programa método de Euler
% METODO DE EULER% fun: función programadati=0; % Tiempo inicialtmax=3; % Tiempo finalci=1; % Condición inicialh=0.01; % Intervalo de tiempo
[t,y] = euler_1('myf',ti,tmax,h,ci)
% Solución exactaye = exp(-t).*cos(5*t);hold onplot(t,ye,'r*') % grafico de la solución
24
Fórmula de predictor-corrector o Método de Heun
Es mejorada porque se puede demostrar que el error total de la fórmula es O(h2), mientras que en Euler es O(h). O sea, la fórmula de Euler-mejorada o Heun es de orden dos.
En la fórmula de Euler mejorada se obtiene una mayor exactitud pero un trabajo de cálculo mayor, ya que para ir de tk a tk+1 hay que evaluar dos veces la función f(t,y).
25
ti ti+1
t
y
ti ti+1
t
y
011
'1 , iii ytfy
y’i =f(ti, yi)
2
,,'
01 1
iytfytf
y iii
Predictor
Corrector
26
Métodos de Runge-Kutta (RK) El método de RK se fundamenta en el método de la serie de Taylor. Existen métodos de RK de diferentes ordenes, el orden del método lo define el orden de la derivada en el término de la serie de Taylor donde ésta se corte. Existen muchas variaciones, pero todas se pueden denotar en la forma generalizada de la ecuación:
yi+1 = yi + (xi,yi,h)hdonde (xi,yi,h) es conocida como función incremento, la cual puede interpretarse como una pendiente representativa sobre el intervalo. = a1k1+ a2k2 +…+ ankn
donde las a son constantes y las k son relaciones de recurrencia, esto es, k1 aparece en la ecuación para k2, la cual aparece en la ecuación para k3, etc. n = 1, es el método de Euler. n = 2, es el método de Heun.
27
Método de RK de segundo ordenMétodo de RK de segundo orden
• La versión de segundo orden para la ecuación de RK es:yi+1 = yi + (a1k1+a2k2)h
• dondek1 = f(xi,yi)k2 = f(xi+p1h, yi+q11k1h)
• Los valores de a1, a2, p1 y q11 son evaluados al igualar el término de segundo orden de la ecuación de RK con la expansión de la serie de Taylor.
• Desarrollando tres ecuaciones para evaluar las cuatro incógnitas:a1+a2=1 a2p2= ½ a2q11 = ½
• Como se tienen tres ecuaciones con cuatro incógnitas se tiene que suponer el valor de una de ellas.
28
Método de RK de segundo ordenMétodo de RK de segundo orden
Suponiendo que se especificó un valor para a2, se puede resolver de manera simultánea la ecuación de RK:
a1 = 1 – a2
p1 = q11 = 1/ (2a2)
Como se puede elegir un número infinito de valores para a2, hay un número infinito de métodos RK de segundo orden.
Cada versión podría dar exactamente los mismos resultados si la solución de la EDO fuera cuadrática, lineal o una constante
29
Método de RK de segundo ordenMétodo de RK de segundo orden
a2 = ½: Método de Heun con un solo corrector, donde.
yi+1 = yi + (k1/2+k2/2)h
k1 = f(xi, yi)
k2 = f(xi+h, yi+k1h) a2 = 1: Método del punto medio.
yi+1 = yi + k2h
k1 = f(xi, yi)
k2 = f(xi+h/2, yi+k1h/2) a2 = 2/3: Método de Ralston.
yi+1 = yi + (k1/3+2k2/3)h
k1 = f(xi, yi)
k2 = f(xi+3h/4, yi+3k1h/4)
30
Método de RK de Método de RK de tercertercer orden orden• Siguiendo el mismo razonamiento para n = 3.
• El resultado es seis ecuaciones con ocho incógnitas, por lo tanto se deben suponer dos valores con antelación para poder desarrollar el sistema de ecuaciones.
• Una versión ampliamente usada es:
yi+1 = yi + 1/6 (k1 + 4k2 + k3)h
k1 = f(xi, yi)
k2 = f(xi+h/2, yi+k1h/2)
k3 = f(xi+h, yi – k1h + 2k2h)
• Si la derivada es solo una función de x, el método se reduce a la regla de Simpson 1/3.
31
• Es el más popular de los métodos RK.
• También cuenta con infinitas versiones. La más usada es:
yi+1 = yi + 1/6 (k1 + 2k2 + 2k3 + k4)h
k1 = f(xi, yi)
k2 = f(xi+h/2, yi+k1h/2)
k3 = f(xi+h/2, yi + k2h/2)
k4 = f(xi+h, yi + k3h)
Método de RK de Método de RK de cuartcuarto ordeno orden
32
Programa método de R-K o4
function [t,y] = rko4_1(fun,ti,tmax,h,ci)% METODO DE Runge-Kutta de orden 4% [t,y] = rko4_1(fun,ti,tmax,h,ci)% fun: nombre del archivo con la función programada% ti : tiempo inicial% tmax : tiempo final% h : intervalo de tiempo% ci : condiciones inicialesfor n=1:length(ci)
Y(n,1) = ci(n);%condicion inicialend T(1) = ti; %tiempo inicialfin=(tmax-ti)/h;for n=1:fin
k1 = h*feval(fun,T(n),Y(:,n));k2 = h*feval(fun,T(n)+(0.5*h),Y(:,n)+0.5*k1);k3 = h*feval(fun,T(n)+(0.5*h),Y(:,n)+0.5*k2);k4 = h*feval(fun,T(n)+h,Y(:,n)+k3);
Y(:,n+1) = Y(:,n) + (1/6)*(k1+2*k2+2*k3+k4); T(n+1)=T(n)+h;endt=T'; y=Y';plot(t,y)
33
% METODO R-K o4% fun: función programadati=0; % Tiempo inicialtmax=3; % Tiempo finalci=1; % Condición inicialh=0.01; % Intervalo de tiempo
[t,y] = rko4_1(‘myf’,ti,tmax,h,ci)% Solucion exactaye = exp(-t).*cos(5*t);hold onplot(t,ye,'r*') % grafico de la soluciónfunction yprime = myf(t,y) yprime = -y -5*exp(-t)*sin(5*t);
Programa método de R-K o4
34
APLICANDO MATLAB
ODE45: Nonstiff Explicit Runge-Kutta pair, order 4 and 5[T,Y] = ODE45(ODEFUN,TSPAN,Y0) TSPAN = [T0 TFINAL] integrates the m system of differential equations y' = f(t,y) from time T0 to TFINAL with initial conditions Y0. Function ODEFUN(T,Y) must return a column vector corresponding to f(t,y).
To obtain solutions at specific times T0,T1,...,TFINAL (all increasing or all decreasing), use TSPAN = [T0 T1 ... TFINAL].
35
APLICANDO MATLAB
% Solución de la función myftspan = [0 3]; %Intervalo de la variable independienteyzero = 1; %Condicion inicial
ode45('myf',tspan,yzero) % solución con grafico[t,y] = ode45('myf',tspan,yzero); % solución con datos
plot(t,y,'r*--') % grafico de la soluciónxlabel t, ylabel y(t)% Solucion exactaye = exp(-t).*cos(5*t);hold online(t,ye)
36
EJEMPLO: EDO de orden 22
2
0 0
( ) sin( ) 0
( ) 1; ( ) 1
[0,10]
dt
dtd
t tdt
t
C.I.
Tiempo
EDO
y1 = θ y2 = θ′ y1′ = y2 y2′ = θ′′ = -sin(θ) = -sin(y1)Condiciones iniciales: y1(0) = 1, y2(0) = 1
37
function yprime = pend(t,y)
yprime = [y(2); -sin(y(1))];
FUNCION EN MATLAB
38
Ejemplo: 1/2% Solución de la funcion pend
tspan = [0 10]; % %Intervalo de la variable independiente
yazero = [1; 1]; % condiciones iniciales a
ybzero = [-5;2]; % condiciones iniciales b
yczero = [5; -2];% condiciones iniciales c
[ta,ya] = ode45('pend',tspan,yazero); % solucion con CI a
[tb,yb] = ode45('pend',tspan,ybzero); % solucion con CI b
[tc,yc] = ode45('pend',tspan,yczero); % solucion con CI c
plot(ta,ya) % grafico de la solucion con CI a
plot(tb,yb) % grafico de la solucion con CI b
plot(tc,yc) % grafico de la solucion con CI c
39
Ejemplo: 2/2
% Grafico del campo vectorial
[y1,y2] = meshgrid(-5:.5:5,-3:.5:3);
Dy1Dt = y2; Dy2Dt = -sin(y1);
quiver(y1,y2,Dy1Dt,Dy2Dt)
hold on
plot(ya(:,1),ya(:,2),yb(:,1),yb(:,2),yc(:,1),yc(:,2))
axis equal, axis([-5 5 -3 3])
xlabel y_1(t), ylabel y_2(t)
hold off
40
Sistemas de EDO
1 2 3
2 1 2
3 3 1
1 2 3
( ) ( ) ( )
( ) ( ) ( )
( ) ( )( ( ) )
(0) 1; (0) 1; (0) 1;
[0,100]
dy t y t y t
dtd
y t y t ay tdtd
y t b y t y t cdty y y
t
C.I.
Tiempo
SistemaEDO
Parametros: a = 0.2, b = 0.2, c = 5, 2.5, 1, 0.5
41
function yprime = rossler(t,y)% ROSSLER: Rossler system
a=0.2; b=0.2; c=2.5;
yprime = [-y(2)-y(3); y(1)+a*y(2); b+y(3)*(y(1)-c)];
FUNCIÓN EN MATLAB
42
% Solución de la función Rossler
tspan = [0,100]; % Intervalo de la variable independiente
yzero = [1;1;1]; % Condición inicial
ode45('rossler',tspan,yzero); % solucion con grafico
[t,y] = ode45('rossler',tspan,yzero); % solución con datos
plot(t,y(:,1)) % Grafico solución de y1
plot(t,y(:,1),t,y(:,2)) % Grafico solución de y1,y2
plot(t,y(:,1),t,y(:,2),t,y(:,3)) % grafico de la solución de y1,y2,y3
plot3(y(:,1),y(:,2),y(:,3)) % grafico de la solución
APLICANDO MATLAB
43
OTROS MÉTODOS
Runge-Kutta-Fehlberg Paso adaptativo: METODO DE PASO VARIABLE
Métodos de Adams-Bashforth: METODOS MULTIPASOS EXPLÍCITOS
Métodos Adams-Moulton: METODOS MULTIPASOS IMPLÍCITOS
METODOS PREDICTOR-CORRECTOR
44
EDO RIGIDAS
Problema de valor inicial
)sin(31
)cos(9
)sin(31
)cos(5
5124
249
2
1
2
1
tt
tt
u
u
u
u
Natural- homogénea Forzada
45
Solución analítica al problema
Para la solución de numérica de problemas rígidos se usan métodos absolutamente estables (implícitos). Un ejemplo es el método implícito del trapecio:
46
Solución en Matlab
function uprima=rigida(t,x)uprima=[9*x(1)+24*x(2)+5*cos(t)-1/3*sin(t);... -24*x(1)-51*x(2)-9*cos(t)+1/3*sin(t)]************************************************tspan = [0 3]; %Intervalo de la variable independienteuzero = [4/3 2/3]; %Condicion inicial[t,u] = ode23s('rigida',tspan,uzero); % solucion con datosplot(t,u) % grafico de la solucion% Solucion exactahold on;ue1 = 2*exp(-3*t)-exp(-39*t)+1/3*cos(t);ue2 = -exp(-3*t)+2*exp(-39*t)-1/3*cos(t);plot(t,ue1,'r*',t,ue2,'r*')
47
Solución en Matlab
48
ode45 is based on an explicit Runge-Kutta (4,5) formula, the Dormand-Prince pair.
ode23 is an implementation of an explicit Runge-Kutta (2,3) pair of Bogacki and Shampine.
ode113 is a variable order Adams-Bashforth-Moulton PECE solver. It is a multistep solver.
ode15s is a variable order solver based on the numerical differentiation formulas, NDFs. (also known as Gear's method) is a multistep solver
APLICANDO MATLAB
49
ode23s is based on a modified Rosenbrock formula of order 2. it is a one-step solver
ode23t is an implementation of the trapezoidal rule using a "free" interpolant.
ode23tb is an implementation of TR-BDF2, an implicit Runge-Kutta formula,trapezoidal rule and backward differentiation
APLICANDO MATLAB
50
ODE23: NonstiffExplicit Runge-Kutta pair, order 2 and 3
ODE45: NonstiffExplicit Runge-Kutta pair, order 4 and 5
ODE113: Nonstiff Explicit linear multistep, orders 1 to 13
ODE15S: Stiff Implicit linear multistep, orders 1 to 5
ODE23S: Stiff Modified Rosenbrock pair (one-step), orders 2 and 3
ODE23T: Mildly stiff Trapezoidal rule (implicit), orders 2 and 3
ODE23TB: Stiff Implicit Ringe-Kutta type algorithm, orders 2 and 3
APLICANDO MATLAB
51
APLICANDO MATLAB