Sei sulla pagina 1di 10

Mtodos Numricos Aplicados

EAPI IH UNC

2012 - 1

Anexos 3. 1. Ecuaciones diferenciales ordinarias.

Las ecuaciones diferenciales juegan un papel esencial en las disciplinas cient cas y t ecnicas, ya que la mayor a de los fen omenos f sicos se pueden modelar utilizando este tipo de ecuaciones. S olo un n umero limitado de ecuaciones diferenciales pueden resolverse anal ticamnte. Los m etodos num ericos, por otro lado, pueden dar una soluci on aproximada de la mayor a de estas ecuaciones. Sin embargo, obtener una soluci on num erica no es una tarea sencilla, ya que no existe un m etodo num erico general que pueda resolver todas las ecuaciones diferenciales existentes. MatLab posee una librer a con un gran n umero de herramientas que pueden ser utilizadas para la soluci on de ecuaciones diferenciales. Para poder sacar el m aximo provecho a estas herramientas, el usuario debe saber trabajar con ecuaciones diferenciales, as como estar familiarizado con los m etodos apropiados para poder resolverlas. En esta secci on se describe en detalle c omo se utiliza MatLab para resolver ecuaciones diferenciales ordinarias de primer orden. Se describir an los m etodos num ericos utilizados para resolver este tipo de ecuaciones, aunque estos no se explicar an desde el punto de vista matem atico. Esta secci on proporciona informaci on para resolver ecuaciones de primer orden no demasiado problem aticas. Estos m etodos proporcionan la pauta para resolver ecuaciones de orden superior y sistemas de ecuaciones m as completos. Una ecuaci on diferencial ordinaria (ODE: del ingl es Ordinary Dierential Equation) es una ecuaci on que contiene una variable independiente, una variable dependiente, as como derivadas de la variable dependiente. Las ecuaciones que se tratar an en esta secci on son ecuaciones de primer orden, cuya forma es: dy = f (x, y ) dx donde x e y representan la variable independiente y dependiente, respectivamente. La soluci on es una funci on y = f (x) que satisface la ecuaci on. En general, existen muchas funciones que dan soluci on a una determinada ODE, por lo que se necesita m as informaci on para calcular la soluci on a un problema espec co. Esta informaci on adicional es el valor de la funci on (variable dependiente) para ciertos valores de la variable independiente.

EAP IH - UNC

MTODOS NUMRICOS APLICADOS

2012-1

Mtodos Numricos Aplicados

EAPI IH UNC

2012 - 1

1.1.

Pasos en la resoluci on de una ODE simple de primer orden:

De aqu en adelante se considerar a t (el tiempo) como variable independiente. La raz on es que en muchas aplicaciones el tiempo es casi siempre la variable independiente, as adem as la explicaci on ser a coherente con la ayuda que proporciona MatLab en el men u Help (Ayuda).

1.1.1.

Paso 1: Escribir el problema en la forma est andar.

Esto es, escribir la ecuaci on en la forma: dy = f (t, y ) dt

para t0 t tf ,

con y = y0

en

t = t0

Como se puede observar, para resolver una ODE de primer orden es necesario conocer tres cosas importantes: una ecuaci on que da la expresi on para la derivada de y con respecto a t, el intervalo de la variable independiente y el valor inicial de y . La soluci on es el valor de y en funci on de t, entre t0 y tf . He aqu un problema de ejemplo: dy t3 2y = dt t

para 1 t 3,

con y = 4,2 en

t=1

1.1.2.

Paso 2: Crear un chero de funci on.

Crear una funci on (en un chero) que calcule dy dt para los valores dados de t e y . Para el problema anterior, el chero de funci on ser a el siguiente:

function dydt = ODEexp1(t,y) dydt = (t^3-2*y)/t;

1.1.3.

Paso 3: Seleccionar un m etodo para hallar la soluci on.

Se trata de seleccionar el m etodo para el c alculo de la soluci on. Hasta la fecha se han desarrollado multitud de m etodos para calcular ODEs de primer orden. T picamente, en estos m etodos el intervalo de tiempo se divide en peque nos subintervalos o pasos. La soluci on comienza en el
MTODOS NUMRICOS APLICADOS 2012-1

EAP IH - UNC

Mtodos Numricos Aplicados

EAPI IH UNC

2012 - 1

punto conocido y0 . Seguidamente, utilizando uno de los m etodos de integraci on, se calcula el valor de y en cada paso. En la Tabla 1 se listan siete m etodos distintos para resolver ODEs de primer orden, implementados en MatLab mediante funciones. En la tabla se detalla adem as una breve descripci on de cada m etodo.

TABLA 1. Funciones MatLab para la resoluci on de ODEs Nombre de la funci on ode45 Descripci on Para ecuaciones no demasiado complejas.Obtiene la soluci on en un solo paso, ideal para intentar obtener una primera aproximaci on. Se basa en el m etodo de Runge-Kutta. Para ecuaciones no demasiado complejas. Es m as r apido pero menos preciso que el m etodo ode45. Para ecuaciones no demasiado complejas. Obtiene la soluci on en m ultiples pasos. Para ecuaciones complejas. Obtiene la soluci on en varios pasos. Se utiliza cuando ode45 falla. Para ecuaciones complejas. Obtiene la soluci on en un solo paso. Permite resolver algunas ecuaciones que no puede resolver ode15s. Para ecuaciones de dicultad media. Para ecuaciones complejas. A veces m as eciente que ode15s.

ode23 ode113 ode15s ode23s ode23t ode23tb

En general, los m etodos de c alculo de ODEs se pueden dividir en dos grupos seg un su habilidad para resolver problemas f aciles o dif ciles, y tambi en en funci on de si se usan uno o varios pasos para la resoluci on de la ecuaci on. Las ecuaciones m as dif ciles son aquellas que incluyen componentes que var an de forma r apida y lenta, y requieren peque nos subintervalos de tiempo para obtener la soluci on. Los m etodos que calculan la soluci on en un solo paso necesitan necesitan la informaci on de un punto para obtener una soluci on pr oxima al punto en cuenti on. Los m etodos planicados en varios pasos utilizan informaci on de varios puntos previos para encontrar la soluci on en el punto siguiente. Es necesario conocer de antemano qu e m etodo es el m as apropiado para un problema espec co. Para hacer esto se puede utilizar, como primera opci on, el m etodo ode45. Este m etodo da, por lo general, buenos resultados para la mayor a de los problemas. Si no se obtiene ninguna soluci on adecuada debido a la dicultad de la ecuaci on, se puede utilizar, por ejemplo, el m etodo ode15s.

EAP IH - UNC

MTODOS NUMRICOS APLICADOS

2012-1

Mtodos Numricos Aplicados

EAPI IH UNC

2012 - 1

1.1.4.

Paso 4: Resoluci on de la ODE.

El formato del comando que se utiliza para resolver ODEs para valores concretos es el mismo para todos los m etodos vistos anteriormente. La sintaxis general es:

[t, y ] = nombre metodo f uncODE , tspan, y 0 Informaci on adicional: etodo (num erico) usado (por ejemplo: ode45, ode23s, etc.) nombre metodo - Es el nombre del m funcODE - Es el nombre, en forma de cadena, de la funci on (chero de funci on) que calcula dy para valores dados de t e y . dt tspan Es un vector que especica el intervalo de la soluci on. El vector debe tener almenos dos elementos, pero puede tener m as. Si el vector tiene s olo dos elementos, los elementos deben ser [t0, tf ], que son el punto inicial y nal, respectivamente, del intervalo de la soluci on. Sin embargo, el vector tspan puede tener puntos adicionales entre el primero y el u ltimo. El n umero de elementos de tspan afecta a la salida del comando. y 0 - Es el valor inicial de y (valor de y en el primer punto del intervalo). [t, y ] - Es la salida del comando, es decir, la soluci on a la ecuaci on diferencial. Los valores t e y son vectores columna. Los puntos primero y u ltimo representan el punto inicial y nal del intervalo, respectivamente. El espaciado y el n umero de puntos dependen del vector de entrada tspan. Si tspan tiene dos elementos (puntos inicial y nal), los vectores t e y contendr an la soluci on en cada paso de integraci on calculado por el m etodo en cuesti on. Por el contrario, si tspan tiene m as de dos puntos (puntos adicionales entre el inicial y el nal), los vectores t e y s olo contendr an la soluci on para esos puntos. El n umero de puntos en tspan no afecta a los pasos (subintervalos de tiempo) utilizados para la soluci on de la ecuaci on. Por ejemplo, la soluci on al problema presentado en el Paso 1: dy t3 2y = dt t se puede obtener de la forma: >> [t,y]=ode45(ODEexp1,[1:0.5:3],4.2) t =
EAP IH - UNC MTODOS NUMRICOS APLICADOS 2012-1

para 1 t 3,

con y = 4,2 en

t=1

Mtodos Numricos Aplicados

EAPI IH UNC

2012 - 1

1.0000 1.5000 2.0000 2.5000 3.0000 y = 4.2000 2.4528 2.6000 3.7650 5.8444

Esta soluci on se ha calculado mediante el m etodo ode45. El nombre de la funci on utilizada (la del Paso 2) es ODEexp1 . La soluci on coemienza en t = 1 y naliza en t = 3, con incrementos de 0,5 (seg un el vector tspan). Para visualizar la soluci on, el problema se resuelve de nuevo utilizando tspan con un espaciado menor. Esta soluci on se representa gr acamente mediante el comando plot.

>> [t,y]=ode45(ODEexp1,[1:0.01:3],4.2); >> plot(t,y) >> xlabel(t), ylabel(y)

6 5.5 5 4.5 4 3.5 3 2.5 2

1.5

2 t

2.5

EAP IH - UNC

MTODOS NUMRICOS APLICADOS

2012-1

Mtodos Numricos Aplicados

EAPI IH UNC

2012 - 1

1.2.

Programas diversos

function E=euler(f,a,b,ya,M) %M etodo de Euler. Construcci on de las aproximaciones a la soluci on del %problema inicial y=f(t,y) con y(a)=y0 en [a,b] dadas por % % y(k+1)=y(k)+h*f(t(k),y(k)) para k=0,1,...,M-1. % % Datos % - f es la funci on almacenada como una cadena de caracteres f. % - a y b son los extremos derecho e izquierdo del intervalo. % - ya es la condici on inicial y(a). % - M es el n umero de pasos. % Resultado % - E=[T Y] siendo T el vector de las abscisas e Y el vector de % las ordenadas. h=(b-a)/M; T=zeros(1,M+1); Y=zeros(1,M+1); T=a:h:b; Y(1)=ya; for j=1:M Y(j+1)=Y(j)+h*feval(f,T(j),Y(j)); end E=[T Y]; plot(E(:,1),E(:,2))

function H=heun(f,a,b,ya,M) %Datos % - f es la funci on almacenada como una cadena de caracteres f. % - a y b son los extremos derecho e izquierdo del intervalo. % - ya es la condici on inicial y(a). % - M es el n umero de pasos. %Resultado % - H=[T Y] siendo T el vector de las abscisas e Y el vector de % las ordenadas. h=(b-a)/M;
MTODOS NUMRICOS APLICADOS 2012-1

EAP IH - UNC

Mtodos Numricos Aplicados

EAPI IH UNC

2012 - 1

T=zeros(1,M+1); Y=zeros(1,M+1); T=a:h:b; Y(1)=ya; for j=1:M k1=feval(f,T(j),Y(j)); k2=feval(f,T(j+1),Y(j)+h*k1); Y(j+1)=Y(j)+(h/2)*(k1+k2); end H=[T Y]; plot(H(:,1),H(:,2))

function z=df(t,y) z = [(t-y)/2,(2-t+y)/4,(-2+t-y)/8,(2-t+y)/16];

function T4=taylor(df,a,b,ya,M) %Datos % - df=[y y y y] almacanada como una cadena de caracteres % - df, siendo y=f(t,y). % - a y b son los extremos derecho e izquierdo del intervalo. % - ya es la condici on inicial. % - M es el n umero de pasos. %Resultado % - T4=[T Y] siendo T el vector de las abscisas e Y el vector de % las ordenadas. h=(b-a)/M; T=zeros(1,M+1); Y=zeros(1,M+1); T=a:h:b; Y(1)=ya; for j=1:M D=feval(df,T(j),Y(j)); Y(j+1)=Y(j)+h*(D(1)+h*(D(2)/2+h*(D(3)/6+h*D(4)/24))); end T4=[T Y]; plot(T4(:,1),T4(:,2))
EAP IH - UNC MTODOS NUMRICOS APLICADOS 2012-1

Mtodos Numricos Aplicados

EAPI IH UNC

2012 - 1

function R=rk4(f,a,b,ya,M) %Aproximaci on a la soluci on del problema de valor inicial y=f(t,y) con %y(a)=y0 en [a,b] usando la f ormula: % % y(k+1)=y(k)+h/6*(k1+2k2+2k3+k4). % %Datos % - f es la funci on almacenada como una cadena de caracteres f. % - a y b son los extremos derecho e izquierdo del intervalo. % - ya es la condici on inicial y(a). % - M es el n umero de pasos. %Resultado % - R=[T Y] siendo T el vector de las abscisas e Y el vector de % las ordenadas. h=(b-a)/M; T=zeros(1,M+1); Y=zeros(1,M+1); T=a:h:b; Y(1)=ya; for j=1:M k1=h*feval(f,T(j),Y(j)); k2=h*feval(f,T(j)+h/2,Y(j)+k1/2); k3=h*feval(f,T(j)+h/2,Y(j)+k2/2); k4=h*feval(f,T(j)+h,Y(j)+k3); Y(j+1)=Y(j)+(k1+2*k2+2*k3+k4)/6; end R=[T Y]; plot(R(:,1),R(:,2));

function Z=F1(t,Z) x=Z(1); y=Z(2); Z=[y,2*t*y/(1+t^2)-2*x/(1+t^2)+1];

function [T,Z]=rks4(F,a,b,Za,M) %Datos % - F es la funci on, almacenada como una cadena de caracteres F. % - a y b son los extremos derecho e izquierdo del intervalo.
MTODOS NUMRICOS APLICADOS 2012-1

EAP IH - UNC

Mtodos Numricos Aplicados

EAPI IH UNC

2012 - 1

% - Za=[x1(a)...xn(a)]; es la condici on inicial. % - M es el n umero de pasos. %Resultados % - T el vector de los nodos. % - Z=[x1(t)...xn(t)]; donde xk(t) es la aproximaci on a la k- esima % variable dependiente. h=(b-a)/M; T=zeros(1,M+1); Z=zeros(M+1,length(Za)); T=a:h:b; Z(1,:)=Za; for j=1:M k1=h*feval(F,T(j),Z(j,:)); k2=h*feval(F,T(j)+h/2,Z(j,:)+k1/2); k3=h*feval(F,T(j)+h/2,Z(j,:)+k2/2); k4=h*feval(F,T(j)+h,Z(j,:)+k3); Z(j+1,:)=Z(j,:)+(k1+2*k2+2*k3+k4)/6; end

function Z=F2(t,Z) x=Z(1); y=Z(2); Z=[y,2*t*y/(1+t^2)-2*x/(1+t^2)];

function L=linsht(F1,F2,a,b,alpha,beta,M) %Datos % - F1 y F2 son los sistemas de ecuaciones de primer orden % que representan los problemas de valor inicial: % u=p(t)u(t)+q(t)u(t)+r(t) con u(a)=alpha y u(a)=0 % v=p(t)v(t)+q(t)v(t) con v(a)=0 y v(a)=1 % almacenados como cadenas de caracteres F1 y F2. % - a y b son los extremos derecho e izquierdo del intervalo. % - alpha = x(a) y beta = x(b) son las condiciones de contorno. % - M es el n umero de pasos. %Resultado % - L=[T X]; siendo T el vector de dimensi on (M+1)x1 de las abscisas y % y X el vector de dimensi on (M+1)x1 de las ordenadas.
MTODOS NUMRICOS APLICADOS 2012-1

EAP IH - UNC

Mtodos Numricos Aplicados

EAPI IH UNC

2012 - 1

%Resoluci on del sistema F1 Za=[alpha,0]; [T,Z]=rks4(F1,a,b,Za,M); U=Z(:,1); %Resoluci on del sistema F2 Za=[0,1]; [T,Z]=rks4(F2,a,b,Za,M); V=Z(:,1); %C alculo de la soluci on del problema de contorno X=U+(beta-U(M*1))*V/V(M+1); L=[T X]; plot(L(:,1),L(:,2))

EAP IH - UNC

MTODOS NUMRICOS APLICADOS

2012-1

10

Potrebbero piacerti anche