You are on page 1of 7

Instituto Tecnol ogico de L azaro C ardenas Ingenier a Electr onica Programa en MATLAB

Asignatura: An alisis Num erico


Docente: M.C. Julio C esar Gallo Sanchez

Alumno: Jos e Armando Lara Ramos

4o Semestre

Mayo 30 de 2012

Jos e Armando Lara Ramos

1.

M etodo de Runge-Kutta de 4to Orden

La funci on RKgrado4 implementa el m etodo de Runge-Kutta de grado 4. El usuario debe proveer RKgrado4 con la funci on dEqs que dene la ecuaci on diferencial. El c odigo del programa con la explicaci on adjunta se muestra a continuaci on.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

function [xSol,ySol] = RKgrado4(dEqs,x,y,xStop,h) % Integraci on de Runge--Kutta de 4to Orden % MODO DE USO: [xSol,ySol] = runKut4(dEqs,x,y,xStop,h) % Entradas: % dEqs = Funci on a manejar que contiene la ecuaci on diferencial % F(x,y) = [dy/dx d2y/dx2 d3y/dx3 ...] % debe ser otro archivo *.m % x = Punto inicial. % y = Condiciones iniciales para cada derivada de distinto orden, % debe ser un vector, por ejemplo, para condiciones iniciales % y(0)=0 y(0)=1 el vector y quedar a y=[0 1]. % xStop = El ultimo valor de x o valor final. % h = Incremento de x. % Salidas: % xSol = Valores x en los que se realizaron operaciones. % ySol = Valores y en correspondientes a los valores x. if size(y,1) > 1 ; y = y; end % Si y NO un vector fila se convierte a tal. xSol = zeros(2,1); ySol = zeros(2,length(y)); % Se generan matrices % con las dimensiones necesarias para guardar los resultados. xSol(1) = x; ySol(1,:) = y; % Se ingresan a las matrices soluci on los % datos iniciales. i = 1; while x < xStop % Inicia ciclo de iteraciones para el c alculo de las ks. i = i + 1; h = min(h,xStop - x); % F ormulas correspondientes al m etodo de Runge-Kutta K1 = h*feval(dEqs,x,y); % de 4to orden. K2 = h*feval(dEqs,x + h/2,y + K1/2); K3 = h*feval(dEqs,x + h/2,y + K2/2); K4 = h*feval(dEqs,x+h,y + K3); y = y + (K1 + 2*K2 + 2*K3 + K4)/6; % Se calcula el resultado y. x = x + h; % Se incrementa x para su pr oxima iteraci on. xSol(i) = x; ySol(i,:) = y; % Se guardan los resultados en las matrices % soluci on. end

Jos e Armando Lara Ramos

2.

Gu a de Uso / Ejemplo 1: Ecuaci on Diferencial de grado 1

Se utilizar a la funci on RKgrado4 para la resoluci on de la ecuaci on diferencial de primer orden y = 3y 4ex y (0) = 1 (1)

desde x = 0 a 10 en pasos de h = 0,1. El resultado se comparar a con la soluci on anal tica y = ex . Primeramente creamos en un archivo .m la funci on a manejar de la siguiente manera.
1 2

function F = funEjem1(x,y) F = 3*y - 4*exp(-x);

Para pedir ayuda en la l nea de comandos acerca de la introducci on de datos escriba help RKgrado4 como se muestra en seguida

Figura 1: Ayuda. Posteriormente se introducen los datos en nuestra funci on RKgrado4.

Figura 2: Introducci on de datos. N otese que se escribi o @ junto con funEjem1 lo que permite que la funci on funEjem1 sea tomada en cuenta como tal y no como una cadena de caracteres. Posteriormente se obtienen los resultados xSol y ySol. A continuaci on por causa del tama no de los vectores soluciones, se muestra en la Figura 3 y 4 la primera y la u ltima parte del vector soluci on ySol, siendo el u ltimo valor la soluci on nal.

Jos e Armando Lara Ramos

Figura 3: Inicio del vector soluci on ySol.

Figura 4: Final del vector soluci on ySol.

3.

Gu a de Uso / Ejemplo 2: Ecuaci on Diferencial de grado 2 y m as


Por resolver tenemos la ecuaci on diferencial y condiciones iniciales

Jos e Armando Lara Ramos

y = 0,1y x

y (0) = 0

y (0) = 1

(2)

de x = 0 a 2 en incrementos de h = 0,25 con el m etodo de Runge-Kutta de cuarto orden. Como es una ecuaci on diferencial de segundo grado las variables independientes se extender an a otras dimensiones del vector y , es decir, la primera dimensi on del vector y (y (1)) segur a representanto a y , y ahora la segunda dimensi on del vector y (y (2)) representar a a la derivada de y (y ) y as sucesivamente seg un se requiera. Esto se puede poner de la siguiente forma y (1) = y La funci on a resolver ser a F (x, y ) = y = y (1) y (2) = y (2) 0,1y (2) x (3) y (2) = y y (3) = y ...

que en el c odigo de la funci on a manejar (Ecuaci on 2) quedar a as


1 2 3

function F = funEjem2(x,y) F = zeros(1,2); % Se crea una matriz de 1x2 F(1) = y(2); F(2) = -0.1*y(2) - x; % Se define la matriz

El ingreso de los datos a la funci on RKgrado4 y la muestra de los resultados al presionar enter se muestran en la Figura 5.

Figura 5: Vector soluciones xSol y ySol.

Jos e Armando Lara Ramos

4.

M etodo de Runge-Kutta de 3er Orden

El c odigo de la funci on es diferente con el de cuarto orden u nicamente en el c alculo de las Ks. El c odigo es el siguiente.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

function [xSol,ySol] = RKgrado3(dEqs,x,y,xStop,h) % Integraci on de Runge--Kutta de 3er Orden % MODO DE USO: [xSol,ySol] = runKut4(dEqs,x,y,xStop,h) % Entradas: % dEqs = Funci on a manejar que contiene la ecuaci on diferencial % F(x,y) = [dy/dx d2y/dx2 d3y/dx3 ...] % debe ser otro archivo *.m % x = Punto inicial. % y = Condiciones iniciales para cada derivada de distinto orden, % debe ser un vector, por ejemplo, para condiciones iniciales % y(0)=0 y(0)=1 el vector y quedar a y=[0 1]. % xStop = El ultimo valor de x o valor final. % h = Incremento de x. % Salidas: % xSol = Valores x en los que se realizaron operaciones. % ySol = Valores y en correspondientes a los valores x. if size(y,1) > 1 ; y = y; end % Si y NO un vector fila se convierte a tal. xSol = zeros(2,1); ySol = zeros(2,length(y)); % Se generan matrices % con las dimensiones necesarias para guardar los resultados. xSol(1) = x; ySol(1,:) = y; % Se ingresan a las matrices soluci on los % datos iniciales. i = 1; while x < xStop % Inicia ciclo de iteraciones para el c alculo de las ks. i = i + 1; h = min(h,xStop - x); % F ormulas correspondientes al m etodo de Runge-Kutta K1 = h*feval(dEqs,x,y); % de 3to orden. K2 = h*feval(dEqs,x + h/2,y + K1/2); K3 = h*feval(dEqs,x+h,y-K1*h+2*K2); y = y + (K1 + 4*K2 + K3)/6; % Se calcula el resultado y. x = x + h; % Se incrementa x para su pr oxima iteraci on. xSol(i) = x; ySol(i,:) = y; % Se guardan los resultados en las matrices % soluci on. end

5.

Gu a de Uso / Ejemplo 3
El objetivo es integrar f (x, y ) = 2x3 + 12x2 20x + 8,5 (4)

Jos e Armando Lara Ramos

mediante un tama no de paso de h = 0,5 y una condici on inicial de y (0) = 1 desde x = 0 hasta 0.5. El ingreso de los datos y las soluciones se muestra en la Figura 6.

Figura 6: Escritura de datos de entrada y vectores soluciones xSol y ySol.

Referencias
[1] An Introduction to Numerical Analysis for Electrical and Computer Engineers, Chistopher J. Zarowski, Editorial Wiley, ISBN 0-471-46737-5. [2] http://www.mathworks.com/help (Sitio de ayuda ocial de Matlab) [3] Numerical Methods for Mathematics, Science and Engineering, 2nd Ed, 1992 [4] Numerical Methods In Matlab, Jaan Kiusalaas ISBN-13 978-0-511-12811-0

You might also like