You are on page 1of 14

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN

FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA

ESCUELA DE GEOLOGIA-GEOTECNIA

DIAGRAMAS DE FLUJO

CODIFICACIN EN MATLAB

ALUMNO: Jorge Luis Cubas Mamani

CDIGO: 2014-130049

AO/CICLO: 3er ao/5to ciclo

CURSO: Mtodos Numricos

DOCENTE: Ing. Wilson Chambilla

HORARIO: Mircoles, 12:00pm 2:00pm

FECHA DE ENTREGA: 29 de mayo del 2017

TACNA-PER
2017
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN
FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA
ESCUELA DE GEOLOGIA-GEOTECNIA

1. Mtodo de Euler:

INICIO

Leer
f(x),a,b,n,y0

x0=a

h=(b-a)/n

i=1,n

y1=y0+h*f(x)

y0=y1

x1=x0+h

x0=x1

y0

FIN

[Fecha] 2
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN
FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA
ESCUELA DE GEOLOGIA-GEOTECNIA

Codificacin en MatLab:

function Euler
clear
clc
fprintf('\n \tResolucion de ecuaciones diferenciales con el
metodo de euler\n')
f=input('\nIngrese la ecuacion diferencial de la
forma:dy/dx=f(x,y)\n','s');
x0=input('\nIngrese el primer punto x0:\n');
x1=input('\nIngrese el segundo punto x1:\n');
y0=input('\nIngrese la condicion inicial y(x0):\n');
n=input('\nIngrese el numero de pasos n:\n');
h=(x1-x0)/n;
xs=x0:h:x1;
y1=y0;
fprintf('\n''it x0 x1 y1');
for i=1:n
it=i-1;
x0=xs(i);
x=x0;
x1=xs(i+1);
y=y0;
y1=y0+h*eval(f);
fprintf('\n%2.0f%10.6f%10.6f%10.6fn',it,x0,x1,y1);
y0=y1;
end
fprintf('\n EL PUNTO APROXIMADO y(x1) es = %10.6f\n',y1)
end

[Fecha] 3
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN
FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA
ESCUELA DE GEOLOGIA-GEOTECNIA

2. Mtodo de Runge-Kutta de 2do Orden:

INICIO

Leer
f(x),x0,x1,n,y0

x0

h=(x1-x0)/n

i=1,n

k1=h*f(x0, y0)
k2=h*f(x0+h, y0+k1)

y0=y0+(k1+k2)/2

x1=x0+h

x1=x0+h

x0=x1

y0

FIN

[Fecha] 4
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN
FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA
ESCUELA DE GEOLOGIA-GEOTECNIA

Codificacin en MatLab

function rungekutta2
clear
clc
fprintf('\n \tRESOLUCION DE ECUACIONES DIFERENCIALES POR
MEDIO RUNGE-KUTTA DE ORDEN 2\n')
f=input('\n Ingrese la ecuacion diferencial dy/dx=\n','s');
x0=input('\n Ingrese el primer punto x0:\n');
x1=input('\n Ingrese el segundo punto x1:\n');
y0=input('\n Ingrese la condicion inicial y(x0):\n');
n=input('\n Ingrese el numero de pasos n:\n');
h=(x1-x0)/n;
xs=x0:h:x1;
fprintf('\n''it x0 y1');
for i=1:n
it=i-1;
x0=xs(i);
x=x0;
y=y0;
k1=h*eval(f);
x=xs(i+1);
y=y0+k1;
k2=h*eval(f);
y0=y0+(k1+k2)/2;
fprintf('\n%2.0f%10.6f%10.6f\n',it,x0,y0);
end
fprintf('\n El punto aproximado y(x1) es = %8.6f\n',y0);
end

[Fecha] 5
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN
FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA
ESCUELA DE GEOLOGIA-GEOTECNIA

3. Mtodo de Runge-Kutta de 3er orden

INICIO

Leer
f(x),x0,x1,n,y0

h=(x1-x0)/n

i=1,n

K1=h*F(x0;y0)
K2=h*f(x0+h/2;y0+k1/2)
K3=h*F(x0+h*3/4;y0+k2*3/4)

y1=y0+2/9*k1+1/3*k2+4/9*k3

x 1=x0+h

x0=x1
y0=y1

y0

FIN

[Fecha] 6
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN
FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA
ESCUELA DE GEOLOGIA-GEOTECNIA

Codificacin en MatLab:

function rungekutta3
clear
clc
fprintf('\n\t RESOLUCION DE ECUACIONES DIFERENCIALES RUNGLE
KUTTA DE ORDEN TRES ')
f=input('\n\ INGRESE LA ECUACION DIFERENCIAL \n','s');
x0=input('\n\ INGRESE EL PRIMER PUNTO x0: \n');
x1=input('\n\ INGRESE EL SEGUNDO PUNTO x1: \n');
y0=input('\n\ INGRESE LA CONDICION INICIAL y0: \n');
n=input('\n\ INGRESE EL NUMERO DE PASOS n: \n');
h=(x1-x0)/n;
xs=x0:h:x1;
fprintf('\n''it x0 y0');
for i=1:n;
it=i-1;
x0=xs(i);
x=x0;
y=y0;
k1=h*eval(f);
x=x0+h/2;
y=y0+k1/2;
k2=h*eval(f);
x=x0+h;
y=y0-k1+2*k2;
k3=h*eval(f);
y=y0+(k1+4*k2+k3)/6;
fprintf('\n%2.0f%10.6f%10.6f\n',it,x0,y0);
end
fprintf('\n EL PUNTO APROXIMADO y(x1) ES: %8.6f\n', y0);
end

[Fecha] 7
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN
FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA
ESCUELA DE GEOLOGIA-GEOTECNIA

4. Mtodo de Runge-Kutta de 4to orden

INICIO

Leer
f(x),x0,y0,x1,n

h =(x1-x0)/n

i=1,n

k1=f( x0, y0)


k2=f(x0+h/2, y0+h/2*k1)
k3=f(x0+h/2, y0+h/2*k2)
k4=f(x0+h, y0+h*k3)

y1=y0-h/6*(k1+2*k2+2*k3+k4)

x 1=x0+h

x0=x1
y0=y1

y0

FIN

[Fecha] 8
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN
FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA
ESCUELA DE GEOLOGIA-GEOTECNIA

Codificacin en MatLab:

function RKOR4
clear
clc
fprintf('\n\t RESOLUCION DE ECUACIONES DIFERENCIALES RUNGLE
KUTTA DE ORDEN CUATRO ')
f=input('\n\ INGRESE LA ECUACION DIFERENCIAL \n','s');
x0=input('\n\ INGRESE EL PRIMER PUNTO x0: \n');
x1=input('\n\ INGRESE EL SEGUNDO PUNTO x1: \n');
y0=input('\n\ INGRESE LA CONDICION INICIAL y0: \n');
n=input('\n\ INGRESE EL NUMERO DE PASOS n: \n');
h=(x1-x0)/n;
xs=x0:h:x1;
fprintf('\n''it x0 y0');
for i=1:n;
it=i-1;
x0=xs(i);
x=x0;
y=y0;
k1=h*eval(f);
x=x0+h/2;
y=y0+k1/2;
k2=h*eval(f);
x=x0+h/2;
y=y0+k2/2;
k3=h*eval(f);
x=x0+h;
y=y0+k3;
k4=h*eval(f);
y0=y0+(k1+2*k2+2*k3+k4)/6;
fprintf('\n%2.0f%10.6f%10.6f\n',it,x0,y0);
end
fprintf('\n EL PUNTO APROXIMADO y(x1) ES: %8.6f\n', y0);

[Fecha] 9
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN
FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA
ESCUELA DE GEOLOGIA-GEOTECNIA

5. Mtodo de Runge-Kutta de Orden Superior

INICIO

Leer
f(x),x0,y0,x1,n

h =(x1-x0)/n

i=1,n

K1=h*F(x0;y0)
K2=h*f(x0+h/4;y0+k1/4)
K3=h*F(x0+h/4;y0+k1/8+k2/8)
K4=h*F(x0+h/2;y0+k2/2+k3)
K5=h*f(x0+3*h/4; y0+3*k1/16+9*k4/16)
K6=h*f(x0+h; y0-3*k1/7+2*k2/7+12+k3/7-12+k4/7+8*k5/7)

y1=y0+(7*k1+32*k3+12*k4+32*k5+7*k6)/90

x1=x0+h

x0=x1
y0=y1

y0

FIN

[Fecha] 10
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN
FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA
ESCUELA DE GEOLOGIA-GEOTECNIA

Codificacin en MatLab:

function RungeKuttaOS
clear
clc
fprintf('\n\t RESOLUCION DE ECUACIONES DIFERENCIALES RUNGLE
KUTTA DE ORDEN SUPERIOR ')
f=input('\n\ INGRESE LA ECUACION DIFERENCIAL \n','s');
x0=input('\n\ INGRESE EL PRIMER PUNTO x0: \n');
x1=input('\n\ INGRESE EL SEGUNDO PUNTO x1: \n');
y0=input('\n\ INGRESE LA CONDICION INICIAL y0: \n');
n=input('\n\ INGRESE EL NUMERO DE PASOS n: \n');
h=(x1-x0)/n;
xs=x0:h:x1;
fprintf('\n''it x0 y0');
for i=1:n;
it=i-1;
x0=xs(i);
x=x0;
y=y0;
k1=h*eval(f);
x=x0+h/4;
y=y0+k1/4;
k2=h*eval(f);
x=x0+h/4;
y=y0+k1/8+k2/8;
k3=h*eval(f);
x=x0+h/2;
y=y0-(k2/2)+k3;
k4=h*eval(f);
x=x0+(3*h)/4;
y=y0+((3*k1)/16)+(9*k4)/16;
k5=h*eval(f);
x=x0+h;
y=y0-(3*k1)/7+(2*k2)/7+(12*k3)/7-(12*k4)/7+(8*k5)/7;
k6=h*eval(f);
y0=y0+(7*k1+32*k3+12*k4+32*k5+7*k6)/90;
fprintf('\n%2.0f%10.6f%10.6f\n',it,x0,y0);
end
fprintf('\n EL PUNTO APROXIMADO y(x1) ES: %8.6f\n', y0);

[Fecha] 11
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN
FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA
ESCUELA DE GEOLOGIA-GEOTECNIA

6. Mtodo de Runge-Kutta extendido (Para 2 EDOs)

[Fecha] 12
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN
FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA
ESCUELA DE GEOLOGIA-GEOTECNIA

Codificacin en MatLab:

function Runge_Kutta_4doorden_2funciones_3variables
%Valores Iniciales
fprintf('\n\t RESOLUCION DE SISTEMA DE ECUACIONES POR EL
METODO DE RUNGE KUTTA');
to=input('\n Inserte el valor de la to inicial: ');
tf=input('\n Inserte el valor de la tf final: ');
h=input('\n Inserte el valor de tamao de pasos: ');
%Literales
syms x y xi yi t z
%Funciones
f=input('Ingrese la funcion f: ');
g=input('Ingrese la funcion g: ');
d=(tf-to)/h;
%Impresion de datos
disp(' i t x y ');
disp('_ _ _ _ _ _ _ _ _ _ _');
r=zeros(d,4);
p=zeros(d,3);
t=to;
x=input('nIngrese el dato inicial x: ');
y=input('nIngrese el dato inicial y: ');
%Procedimiento
for i=1:1:d+1
xo=x;
to=t;
yo=y;
r(i,1)=i;
r(i,2)=t;
r(i,3)=x;
r(i,4)=y;
p(i,1)=t;
p(i,2)=x;
p(i,3)=y;
%Para K1 L1
K1=eval(f);
L1=eval(g);
%Para K2 L2
K2=[to+(h/2),xo+(h/2)*K1,yo+(h/2)*L1];
t=K2(1);
x=K2(2);
y=K2(3);
K2=eval(f);
L2=[to+(h/2),xo+(h/2)*K1,yo+(h/2)*L1];
L2=eval(g);
%Para K3 L3
K3=[to+(h/2),xo+(h/2)*K2,yo+(h/2)*L2];
t=K3(1);
x=K3(2);

[Fecha] 13
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMAN
FACULTAD DE INGENIERIA, ARQUITECTURA Y GEOLOGIA-GEOTECNIA
ESCUELA DE GEOLOGIA-GEOTECNIA

y=K3(3);
K3=eval(f);
L3=[to+(h/2),xo+(h/2)*K2,yo+(h/2)*L2];
L3=eval(g);
%Para K4 L4
K4=[to+(h/2),xo+(h/2)*K3,yo+(h/2)*L3];
t=K4(1);
x=K4(2);
y=K4(3);
K4=eval(f);
L4=[to+(h/2),xo+(h/2)*K3,yo+(h/2)*L3];
L4=eval(g);
%Para t,x e y
x=xo+(h/6)*(K1+2*K2+2*K3+K4);
y=yo+(h/6)*(L1+2*L2+2*L3+L4);
t=to+h;
end
%Impresion de grafica de datos
r
surf(p)
zlabel('y');
xlabel('t');
ylabel('x');
title('Runge Kutta 4 orden 2 funciones y 3 variables');
end

[Fecha] 14

You might also like