SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Año de la Diversificación Productiva y del Fortalecimiento de la
Educación
UNIVERSIDAD NACIONAL
DEL CALLAO
FACULTAD DE CIENCIAS
NATURALES Y MATEMÁTICA
FÍSICA TEÓRICA COMPUTACIONAL
“COMPARACIÓN DE LOS MÉTODOS ITERATIVOS
DE RUNGE KUTTA 2 ORDEN CON RUNGR KUTTA 4
ORDEN EN UNA EDO DE SEGUNDO ORDEN
USANDO FORTRAN 90 , MATLAB Y SCILAB”
MARCO ANTONIO ALPACA CHAMBA
FÍSICO BÁSICO
ENUNCIADO DEL PROBLEMA:
Use los métodos de RK2 y RK4 con h=0.5, para obtener una aproximación de 𝒙 𝟑 para la
solución de la siguiente ecuación diferencial con valores iniciales:
SOLUCIÓN:
Se comprueba fácilmente que la solución del problema de valor inicial es:
Usando fortran tenemos:
PROGRAM RUNGE_KUTTA_CUARTO_ORDEN
REAL T0,TF,X0,Z0,K1,M1,K2,M2,K3,M3,K4,M4,H
OPEN(UNIT=12,FILE='KUTTA4.TXT',STATUS='UNKNOWN',ACTION='WRITE')
PRINT*,''
PRINT*,
'====================================================================='
PRINT*,'METHOD DE RUNGEKUTTADE CUARTO ORDEN CON CONDICIONES
INICIALES PARA '
PRINT*,'ECUACIONES DIFERENCIALES ORDINARIAS DE SEGUNDO ORDEN'
PRINT*,'==================================================================
===='
PRINT*,''
PRINT*,'INGRESAR EL VALOR INICIAL T0:'
READ(5,*)T0
PRINT*, 'INGRESAR EL VALOR FINAL TF:'
READ*, TF
PRINT*, 'INGRESAR EL VALOR INICAL X0:'
READ*, X0
PRINT*, 'INGRESAR EL VALOR INICIAL Z0:'
READ*, Z0
PRINT*, 'INGRESAR LONGITUD DE PASO,H:'
READ*,H
PRINT*,''
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS COMPUTACIONALES")'
PRINT*,('*',I=1,79)
PRINT*,''
N=(TF-T0)/H
K=1
PRINT 50
50 FORMAT(3X,'DATOS',5X,'TIME',8X,'POSITION',15X,"VELOCIDAD")
70 WRITE(12,60)K,T0,X0,Z0
PRINT'(2X,I2,8X,F3.1,6X,F12.6,10X,F12.6)',K,T0,X0,Z0
IF (T0.LE.(TF-0.0000001))THEN
DO WHILE (K < N+2)
M1=H*Z0
K1=H*F(T0,X0,Z0)
M2=H*(Z0+K1/2)
K2=H*F(T0+H/2,X0+M1/2,Z0+K1/2)
M3=H*(Z0+K2/2)
K3=H*F(T0+H/2,X0+M2/2,Z0+K2/2)
M4=H*(Z0+K3)
K4=H*F(T0+H,X0+M3,Z0+K3)
X0=X0+(M1+2*(M2+M3)+M4)/6
Z0=Z0+(K1+2*K2+2*K3+K4)/6
T0=T0+H
K=K+1
GOTO 70
ENDDO
END IF
60 FORMAT (2X,I2,8X,F3.1,6X,F12.6,10X,F12.6)
PRINT*,''
PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) T0,X0
121 FORMAT (10X,'X(',F7.2,')=',F12.4)
PRINT*,''
STOP
END PROGRAM
FUNCTION F(T,X,Z)
REAL T,X,Z
F=-5*Z-4*X+0*T
RETURN
END FUNCTION
PROGRAM RUNGE_KUTTA_SECOND_ORDEN
REAL T0,TF,X0,Z0,K1,M1,K2,M2,H
OPEN(UNIT=12,FILE='KUTTA2.TXT',STATUS='UNKNOWN',ACTION='WRITE')
PRINT*,''
PRINT*,
'====================================================================='
PRINT*,'METHOD DE RUNGEKUTTADE SEGUNDO ORDEN CON CONDICIONES
INICIALES PARA '
PRINT*,'ECUACIONES DIFERENCIALES ORDINARIAS DE SEGUNDO ORDEN'
PRINT*,'==================================================================
===='
PRINT*,''
PRINT*,'INGRESAR EL VALOR INICIAL T0:'
READ(5,*)T0
PRINT*, 'INGRESAR EL VALOR FINAL TF:'
READ*, TF
PRINT*, 'INGRESAR EL VALOR INICAL X0:'
READ*, X0
PRINT*, 'INGRESAR EL VALOR INICIAL DE Z0:'
READ*, Z0
PRINT*, 'INGRESAR LONGITUD DE PASO,H:'
READ*,H
PRINT*,''
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS COMPUTACIONALES")'
PRINT*,('*',I=1,79)
PRINT*,''
N=(TF-T0)/H
K=1
PRINT 50
50 FORMAT(3X,'DATOS',5X,'TIME',8X,'POSITION',15X,"VELOCIDAD")
70 WRITE(12,60)K,T0,X0,Z0
PRINT'(2X,I2,8X,F3.1,6X,F12.6,10X,F12.6)',K,T0,X0,Z0
IF (T0.LE.(TF-0.0000001))THEN
DO WHILE (K < N+2)
M1=H*Z0
K1=H*F(T0,X0,Z0)
M2=H*(Z0+K1)
K2=H*F(T0+H,X0+M1,Z0+K1)
X0=X0+(M1+M2)/2
Z0=Z0+(K1+K2)/2
T0=T0+H
K=K+1
GOTO 70
ENDDO
ENDIF
60 FORMAT (2X,I2,8X,F3.1,6X,F12.6,10X,F12.6)
PRINT*,''
PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,90) T0,X0
90 FORMAT (10X,'X(',F7.2,')=',F12.4)
PRINT*,''
STOP
END PROGRAM
FUNCTION F(T,X,Z)
REAL T,X,Z
F=-5*Z-4*X+0*T
RETURN
END FUNCTION
USANDO MATLAB TENEMOS:
clear;
clc;
t0=0.0;
tf=3.0;
x0=1;
z0=1;
h=0.5;
k=1;
sk=1;
n=0;
i=0;
f=@(t,x,z)0*t-4*x-5*z;
g1=@(t)5./3.*exp(-1*t)-2./3.*exp(-4*t);
T=(t0:0.02:3.5);
xe=g1(T);
t(1)=t0;x(1)=x0;z(1)=z0;
disp(' 4th order Runge-Kutta simulation')
disp('_________________________________________')
disp(' datos t x ')
disp('_________________________________________')
fprintf('n')
fprintf('%6.2f %12.6f %12.6fn',k,t0,x0)
while(t(n+1)<=tf)
n=n+1;
% Cuarto order Runge-Kutta simulation
k1=h*z(n);
m1=h*f(t(n),x(n),z(n));
k2=h*(z(n)+m1./2);
m2=h*f(t(n)+h./2,x(n)+k1./2,z(n)+m1./2);
k3=h*(z(n)+m2./2);
m3=h*f(t(n)+h./2,x(n)+k2./2,z(n)+m2./2);
k4=h*(z(n)+m3);
m4=h*f(t(n)+h,x(n)+k3,z(n)+m3);
x(n+1)=x(n)+(k1+2*k2+2*k3+k4)./6;
z(n+1)=z(n)+(m1+2*m2+2*m3+m4)./6;
t(n+1)=t(n)+h;
k=k+1;
fprintf('%6.2f %12.6f %12.6fn',k,t(n+1),x(n+1))
end
fprintf('Final answer n');
fprintf('%12.6fn',x(n));
fprintf('n')
st(1)=t0;sx(1)=x0;sz(1)=z0;
disp(' Second order Runge-Kutta simulation')
disp('_________________________________________')
disp(' datos t x ')
disp('_________________________________________')
fprintf('n')
fprintf('%6.2f %12.6f %12.6fn',1,st(1),sx(1))
while(st(i+1)<=tf)
i=i+1;
% Second order Runge-Kutta simulation
sk1=h*sz(i);
sm1=h*f(st(i),sx(i),sz(i));
sk2=h*(sz(i)+sm1);
sm2=h*f(st(i)+h,sx(i)+sk1,sz(i)+sm1);
sx(i+1)=sx(i)+(sk1+sk2)./2;
sz(i+1)=sz(i)+(sm1+sm2)./2;
st(i+1)=st(i)+h;
sk=sk+1;
fprintf('%6.2f %12.6f %12.6fn',sk,st(i+1),sx(i+1))
end
fprintf('Final answer n');
fprintf('%12.6fn',sx(i));
fprintf('n')
figure1=figure('color',[1 1 1]);
plot(T,xe,'b-');
hold on
plot(t,x,'--x');
plot(st,sx,'--o');
grid on
xlabel('Time(t)');
ylabel('Amplitude');
title('x(t)=(5/3)e^-^t-(2/3)e^-^4^t')
legend('Exact','4th O Runge-Kutta','2nd O Runge-Kutta',1)
Usando Scilab tenemos:
clear;
clc;
t0=0.0;
tf=3.0;
x0=1.0;
z0=1.0;
h=0.5;
k=1;
sk=1;
n=0;
i=0;
function y=f(t, x, z)
y=0*t-4*x-5*z
endfunction
T=(t0:0.02:3.5);
xe=5/3*exp(-1*T)-2/3*exp(-4*T);
t(1)=t0;x(1)=x0;z(1)=z0;
disp(' 4th order Runge-Kutta simulation')
disp('_________________________________________')
disp(' datos t x ')
disp('_________________________________________')
printf('%6.2f %12.6f %12.6fn',k,t0,x0)
while(t(n+1)<=tf)
n=n+1;
// Cuarto order Runge-Kutta simulation
k1=h*z(n);
m1=h*f(t(n),x(n),z(n));
k2=h*(z(n)+m1/2);
m2=h*f(t(n)+h/2,x(n)+k1/2,z(n)+m1/2);
k3=h*(z(n)+m2/2);
m3=h*f(t(n)+h/2,x(n)+k2/2,z(n)+m2/2);
k4=h*(z(n)+m3);
m4=h*f(t(n)+h,x(n)+k3,z(n)+m3);
x(n+1)=x(n)+(k1+2*k2+2*k3+k4)/6;
z(n+1)=z(n)+(m1+2*m2+2*m3+m4)/6;
t(n+1)=t(n)+h;
k=k+1;
printf('%6.2f %12.6f %12.6fn',k,t(n+1),x(n+1))
end
printf('Final answer n');
printf('%12.6fn',x(n));
printf('n')
st(1)=t0;sx(1)=x0;sz(1)=z0;
disp(' Second order Runge-Kutta simulation')
disp('_________________________________________')
disp(' datos t x ')
disp('_________________________________________')
printf('%6.2f %12.6f %12.6fn',1,st(1),sx(1))
while(st(i+1)<=tf)
i=i+1;
// Second order Runge-Kutta simulation
sk1=h*sz(i);
sm1=h*f(st(i),sx(i),sz(i));
sk2=h*(sz(i)+sm1);
sm2=h*f(st(i)+h,sx(i)+sk1,sz(i)+sm1);
sx(i+1)=sx(i)+(sk1+sk2)/2;
sz(i+1)=sz(i)+(sm1+sm2)/2;
st(i+1)=st(i)+h;
sk=sk+1;
printf('%6.2f %12.6f %12.6fn',sk,st(i+1),sx(i+1))
end
printf('Final answer n');
printf('%12.6fn',sx(i));
printf('n');
scf(1);
clf(1);
plot2d(T,xe,rect=[0,-0.8,3.5,1.2],style=5);
plot(t,x,'bx--');
plot(st,sx,'m--o');
xlabel('Time(t)');
ylabel('Amplitude');
title('x(t)=(5/3)e^-t-(2/3)e^-4t','fontsize',3);
legend('Exact','4th O Runge-Kutta','2nd O Runge-Kutta',1);
xgrid
COMPARACIÓN DE LOS MÉTODOS ITERATIVOS DE RUNGE KUTTA 2 ORDEN CON RUNGR KUTTA 4 ORDEN EN UNA EDO DE SEGUNDO ORDEN USANDO FORTRAN 90 , MATLAB Y SCILAB
COMPARACIÓN DE LOS MÉTODOS ITERATIVOS DE RUNGE KUTTA 2 ORDEN CON RUNGR KUTTA 4 ORDEN EN UNA EDO DE SEGUNDO ORDEN USANDO FORTRAN 90 , MATLAB Y SCILAB

Weitere ähnliche Inhalte

Was ist angesagt?

Solucionario Montgomery Probabilidad y Estadistica Seguna Edicion 2da
Solucionario Montgomery Probabilidad y Estadistica Seguna Edicion 2daSolucionario Montgomery Probabilidad y Estadistica Seguna Edicion 2da
Solucionario Montgomery Probabilidad y Estadistica Seguna Edicion 2daCésar Alejandro
 
Complex Variables and Numerical Methods
Complex Variables and Numerical MethodsComplex Variables and Numerical Methods
Complex Variables and Numerical MethodsDhrumit Patel
 
Problemas resueltos de venero, Introducción al análisis matemático 2020
Problemas resueltos de venero, Introducción al análisis matemático 2020Problemas resueltos de venero, Introducción al análisis matemático 2020
Problemas resueltos de venero, Introducción al análisis matemático 2020ELESRAUL
 
metodos numericos aplicados a la ingenieria nieves
metodos numericos aplicados a la ingenieria   nieves metodos numericos aplicados a la ingenieria   nieves
metodos numericos aplicados a la ingenieria nieves karemssita
 
Informe ecuaciones lineales, diferenciales en matlab
Informe ecuaciones lineales, diferenciales en matlabInforme ecuaciones lineales, diferenciales en matlab
Informe ecuaciones lineales, diferenciales en matlabIvanJustinianoPio
 
Ecuaciones diferenciales _parciales
Ecuaciones diferenciales _parcialesEcuaciones diferenciales _parciales
Ecuaciones diferenciales _parcialesJohana lopez
 
Desigualdad de bessel igualdad de parseval
Desigualdad de bessel   igualdad de parsevalDesigualdad de bessel   igualdad de parseval
Desigualdad de bessel igualdad de parsevalJosé Puerta
 
Sucesiones ejercicio
Sucesiones ejercicioSucesiones ejercicio
Sucesiones ejerciciopollardo2
 
Formulario sobre la Segunda y Tercera Ley de la Termodinámica
Formulario sobre la Segunda y Tercera Ley de la TermodinámicaFormulario sobre la Segunda y Tercera Ley de la Termodinámica
Formulario sobre la Segunda y Tercera Ley de la TermodinámicaMiguel Ángel Hernández Trejo
 
Distribución binomial final expo
Distribución binomial final expoDistribución binomial final expo
Distribución binomial final expoEduardo Tandazo
 
Interpolación matricial
Interpolación matricialInterpolación matricial
Interpolación matricialPervys Rengifo
 

Was ist angesagt? (20)

Solucionario Montgomery Probabilidad y Estadistica Seguna Edicion 2da
Solucionario Montgomery Probabilidad y Estadistica Seguna Edicion 2daSolucionario Montgomery Probabilidad y Estadistica Seguna Edicion 2da
Solucionario Montgomery Probabilidad y Estadistica Seguna Edicion 2da
 
Complex Variables and Numerical Methods
Complex Variables and Numerical MethodsComplex Variables and Numerical Methods
Complex Variables and Numerical Methods
 
Problemas resueltos de venero, Introducción al análisis matemático 2020
Problemas resueltos de venero, Introducción al análisis matemático 2020Problemas resueltos de venero, Introducción al análisis matemático 2020
Problemas resueltos de venero, Introducción al análisis matemático 2020
 
Flujo laminar dentro de tubo
Flujo laminar dentro de tuboFlujo laminar dentro de tubo
Flujo laminar dentro de tubo
 
Resumen Método de Hamilton-Jacobi
Resumen Método de Hamilton-JacobiResumen Método de Hamilton-Jacobi
Resumen Método de Hamilton-Jacobi
 
metodos numericos aplicados a la ingenieria nieves
metodos numericos aplicados a la ingenieria   nieves metodos numericos aplicados a la ingenieria   nieves
metodos numericos aplicados a la ingenieria nieves
 
Interpolacion newton
Interpolacion newtonInterpolacion newton
Interpolacion newton
 
Ecuaciones diferenciales
Ecuaciones diferencialesEcuaciones diferenciales
Ecuaciones diferenciales
 
Informe ecuaciones lineales, diferenciales en matlab
Informe ecuaciones lineales, diferenciales en matlabInforme ecuaciones lineales, diferenciales en matlab
Informe ecuaciones lineales, diferenciales en matlab
 
Ecuaciones diferenciales _parciales
Ecuaciones diferenciales _parcialesEcuaciones diferenciales _parciales
Ecuaciones diferenciales _parciales
 
Tema I. Propiedades residuales
Tema I. Propiedades residualesTema I. Propiedades residuales
Tema I. Propiedades residuales
 
Desigualdad de bessel igualdad de parseval
Desigualdad de bessel   igualdad de parsevalDesigualdad de bessel   igualdad de parseval
Desigualdad de bessel igualdad de parseval
 
001 electrotecnia
001 electrotecnia001 electrotecnia
001 electrotecnia
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
 
Sucesiones ejercicio
Sucesiones ejercicioSucesiones ejercicio
Sucesiones ejercicio
 
PUNTO FIJO
PUNTO FIJOPUNTO FIJO
PUNTO FIJO
 
Ejercicios de presión
Ejercicios de  presiónEjercicios de  presión
Ejercicios de presión
 
Formulario sobre la Segunda y Tercera Ley de la Termodinámica
Formulario sobre la Segunda y Tercera Ley de la TermodinámicaFormulario sobre la Segunda y Tercera Ley de la Termodinámica
Formulario sobre la Segunda y Tercera Ley de la Termodinámica
 
Distribución binomial final expo
Distribución binomial final expoDistribución binomial final expo
Distribución binomial final expo
 
Interpolación matricial
Interpolación matricialInterpolación matricial
Interpolación matricial
 

Andere mochten auch

COMPARACIÓN DE LOS MÉTODOS ITERATIVOS ADAMAS-BALTHOR-MOULT PREDICTOR CORRECTO...
COMPARACIÓN DE LOS MÉTODOS ITERATIVOS ADAMAS-BALTHOR-MOULT PREDICTOR CORRECTO...COMPARACIÓN DE LOS MÉTODOS ITERATIVOS ADAMAS-BALTHOR-MOULT PREDICTOR CORRECTO...
COMPARACIÓN DE LOS MÉTODOS ITERATIVOS ADAMAS-BALTHOR-MOULT PREDICTOR CORRECTO...Marco Antonio
 
El principio de Le Chatelier
El principio de Le Chatelier El principio de Le Chatelier
El principio de Le Chatelier Marco Antonio
 
Regla de dispersión numérica
Regla de dispersión numéricaRegla de dispersión numérica
Regla de dispersión numéricaMarco Antonio
 
Prob resueltost3 mapas k
Prob resueltost3 mapas kProb resueltost3 mapas k
Prob resueltost3 mapas kCECYTEG
 
MÉTODO DE EULER PARA EDO Y DE ORDEN SUPERIOR USANDO SCILAB 5.5
MÉTODO DE EULER PARA EDO Y DE ORDEN SUPERIOR USANDO SCILAB 5.5MÉTODO DE EULER PARA EDO Y DE ORDEN SUPERIOR USANDO SCILAB 5.5
MÉTODO DE EULER PARA EDO Y DE ORDEN SUPERIOR USANDO SCILAB 5.5Marco Antonio
 
Mapa de karnaugh alarma de un automóvil
Mapa de karnaugh alarma de un automóvilMapa de karnaugh alarma de un automóvil
Mapa de karnaugh alarma de un automóvilMarco Antonio
 
Ecuación diferencial parcial parabólica, método explícito usando fortan 90 ,m...
Ecuación diferencial parcial parabólica, método explícito usando fortan 90 ,m...Ecuación diferencial parcial parabólica, método explícito usando fortan 90 ,m...
Ecuación diferencial parcial parabólica, método explícito usando fortan 90 ,m...Marco Antonio
 
Espaciotiempo y diagrama de espaciotiempo
Espaciotiempo y diagrama de espaciotiempoEspaciotiempo y diagrama de espaciotiempo
Espaciotiempo y diagrama de espaciotiempoMarco Antonio
 
La Celda unidad y las redes de bravais
La Celda unidad y las redes de bravaisLa Celda unidad y las redes de bravais
La Celda unidad y las redes de bravaisMarco Antonio
 
Proceso de autoionización
Proceso de autoionizaciónProceso de autoionización
Proceso de autoionizaciónMarco Antonio
 
Por qué es azul el océano
Por qué es azul el océanoPor qué es azul el océano
Por qué es azul el océanoMarco Antonio
 
Dosis media de radiación de un examen estándar en la cabeza en 250 sistemas ...
Dosis media de radiación de un examen  estándar en la cabeza en 250 sistemas ...Dosis media de radiación de un examen  estándar en la cabeza en 250 sistemas ...
Dosis media de radiación de un examen estándar en la cabeza en 250 sistemas ...Marco Antonio
 
Planos cristalográficos
Planos cristalográficosPlanos cristalográficos
Planos cristalográficosMarco Antonio
 
Mapa de karnaugh el semáforo
Mapa de karnaugh el semáforoMapa de karnaugh el semáforo
Mapa de karnaugh el semáforoMarco Antonio
 
Cómo Hacer Una Bobina Tesla
Cómo Hacer Una Bobina TeslaCómo Hacer Una Bobina Tesla
Cómo Hacer Una Bobina TeslaKevin
 

Andere mochten auch (20)

COMPARACIÓN DE LOS MÉTODOS ITERATIVOS ADAMAS-BALTHOR-MOULT PREDICTOR CORRECTO...
COMPARACIÓN DE LOS MÉTODOS ITERATIVOS ADAMAS-BALTHOR-MOULT PREDICTOR CORRECTO...COMPARACIÓN DE LOS MÉTODOS ITERATIVOS ADAMAS-BALTHOR-MOULT PREDICTOR CORRECTO...
COMPARACIÓN DE LOS MÉTODOS ITERATIVOS ADAMAS-BALTHOR-MOULT PREDICTOR CORRECTO...
 
El principio de Le Chatelier
El principio de Le Chatelier El principio de Le Chatelier
El principio de Le Chatelier
 
Regla de dispersión numérica
Regla de dispersión numéricaRegla de dispersión numérica
Regla de dispersión numérica
 
Laboratorio8
Laboratorio8Laboratorio8
Laboratorio8
 
Laboratorio5
Laboratorio5Laboratorio5
Laboratorio5
 
Arquímedes
ArquímedesArquímedes
Arquímedes
 
Prob resueltost3 mapas k
Prob resueltost3 mapas kProb resueltost3 mapas k
Prob resueltost3 mapas k
 
MÉTODO DE EULER PARA EDO Y DE ORDEN SUPERIOR USANDO SCILAB 5.5
MÉTODO DE EULER PARA EDO Y DE ORDEN SUPERIOR USANDO SCILAB 5.5MÉTODO DE EULER PARA EDO Y DE ORDEN SUPERIOR USANDO SCILAB 5.5
MÉTODO DE EULER PARA EDO Y DE ORDEN SUPERIOR USANDO SCILAB 5.5
 
Mapa de karnaugh alarma de un automóvil
Mapa de karnaugh alarma de un automóvilMapa de karnaugh alarma de un automóvil
Mapa de karnaugh alarma de un automóvil
 
Ecuación diferencial parcial parabólica, método explícito usando fortan 90 ,m...
Ecuación diferencial parcial parabólica, método explícito usando fortan 90 ,m...Ecuación diferencial parcial parabólica, método explícito usando fortan 90 ,m...
Ecuación diferencial parcial parabólica, método explícito usando fortan 90 ,m...
 
Espaciotiempo y diagrama de espaciotiempo
Espaciotiempo y diagrama de espaciotiempoEspaciotiempo y diagrama de espaciotiempo
Espaciotiempo y diagrama de espaciotiempo
 
Clase modelo
Clase modeloClase modelo
Clase modelo
 
La Celda unidad y las redes de bravais
La Celda unidad y las redes de bravaisLa Celda unidad y las redes de bravais
La Celda unidad y las redes de bravais
 
Laboratorio6
Laboratorio6Laboratorio6
Laboratorio6
 
Proceso de autoionización
Proceso de autoionizaciónProceso de autoionización
Proceso de autoionización
 
Por qué es azul el océano
Por qué es azul el océanoPor qué es azul el océano
Por qué es azul el océano
 
Dosis media de radiación de un examen estándar en la cabeza en 250 sistemas ...
Dosis media de radiación de un examen  estándar en la cabeza en 250 sistemas ...Dosis media de radiación de un examen  estándar en la cabeza en 250 sistemas ...
Dosis media de radiación de un examen estándar en la cabeza en 250 sistemas ...
 
Planos cristalográficos
Planos cristalográficosPlanos cristalográficos
Planos cristalográficos
 
Mapa de karnaugh el semáforo
Mapa de karnaugh el semáforoMapa de karnaugh el semáforo
Mapa de karnaugh el semáforo
 
Cómo Hacer Una Bobina Tesla
Cómo Hacer Una Bobina TeslaCómo Hacer Una Bobina Tesla
Cómo Hacer Una Bobina Tesla
 

Mehr von Marco Antonio

DIVISIÓN POLINÓMICA
DIVISIÓN POLINÓMICADIVISIÓN POLINÓMICA
DIVISIÓN POLINÓMICAMarco Antonio
 
Interpolación aritmética
Interpolación aritméticaInterpolación aritmética
Interpolación aritméticaMarco Antonio
 
PREFIJOS DEL SISTEMA MÉTRICO
PREFIJOS DEL SISTEMA MÉTRICOPREFIJOS DEL SISTEMA MÉTRICO
PREFIJOS DEL SISTEMA MÉTRICOMarco Antonio
 
EXAMEN DE SUBSANACIÓN DE ÁLGEBRA
EXAMEN DE SUBSANACIÓN DE ÁLGEBRAEXAMEN DE SUBSANACIÓN DE ÁLGEBRA
EXAMEN DE SUBSANACIÓN DE ÁLGEBRAMarco Antonio
 
Prefijos del sistema internacional
Prefijos del sistema internacionalPrefijos del sistema internacional
Prefijos del sistema internacionalMarco Antonio
 
monthly exam of algebra
monthly exam of algebramonthly exam of algebra
monthly exam of algebraMarco Antonio
 
Problemas resueltos de Factorización
Problemas resueltos de FactorizaciónProblemas resueltos de Factorización
Problemas resueltos de FactorizaciónMarco Antonio
 
solucionario del examen de álgebra
solucionario del examen de álgebrasolucionario del examen de álgebra
solucionario del examen de álgebraMarco Antonio
 
Examen Bimestral de Aritmética 5° de primaria
Examen Bimestral de Aritmética 5° de primariaExamen Bimestral de Aritmética 5° de primaria
Examen Bimestral de Aritmética 5° de primariaMarco Antonio
 
Examen Bimestral de Aritmética 6° de primaria
Examen Bimestral de Aritmética 6° de primariaExamen Bimestral de Aritmética 6° de primaria
Examen Bimestral de Aritmética 6° de primariaMarco Antonio
 
Brevísima historia de Arquímedes
Brevísima historia de ArquímedesBrevísima historia de Arquímedes
Brevísima historia de ArquímedesMarco Antonio
 
Sesion multiplexores y demultiplexores
Sesion  multiplexores y demultiplexores Sesion  multiplexores y demultiplexores
Sesion multiplexores y demultiplexores Marco Antonio
 
Sesion contadores y registros
Sesion  contadores y registrosSesion  contadores y registros
Sesion contadores y registrosMarco Antonio
 
EL VALOR DE PI USANDO EL MÉTODO MONTE CARLO EN FORTRAN, SCILAB 5.5 Y MATLAB
EL VALOR DE PI USANDO EL MÉTODO MONTE CARLO EN FORTRAN, SCILAB 5.5 Y MATLABEL VALOR DE PI USANDO EL MÉTODO MONTE CARLO EN FORTRAN, SCILAB 5.5 Y MATLAB
EL VALOR DE PI USANDO EL MÉTODO MONTE CARLO EN FORTRAN, SCILAB 5.5 Y MATLABMarco Antonio
 
MÉTODO DE RONGE KUTTA DE CUARTO ORDEN PARA EDO
MÉTODO DE RONGE KUTTA DE CUARTO ORDEN PARA EDOMÉTODO DE RONGE KUTTA DE CUARTO ORDEN PARA EDO
MÉTODO DE RONGE KUTTA DE CUARTO ORDEN PARA EDOMarco Antonio
 
COMPARACIÓN DEL MÉTODO DE RONGE KUTTA (2-4) USANDO FORTRAN Y SCILAB 5.5
COMPARACIÓN DEL MÉTODO DE RONGE KUTTA (2-4) USANDO FORTRAN Y SCILAB 5.5COMPARACIÓN DEL MÉTODO DE RONGE KUTTA (2-4) USANDO FORTRAN Y SCILAB 5.5
COMPARACIÓN DEL MÉTODO DE RONGE KUTTA (2-4) USANDO FORTRAN Y SCILAB 5.5Marco Antonio
 
Ecuación Diferencial Hiperbólica usando fortran, matlab y scilab.
Ecuación Diferencial Hiperbólica usando fortran, matlab y scilab.Ecuación Diferencial Hiperbólica usando fortran, matlab y scilab.
Ecuación Diferencial Hiperbólica usando fortran, matlab y scilab.Marco Antonio
 
Técnicas numéricas
Técnicas numéricasTécnicas numéricas
Técnicas numéricasMarco Antonio
 

Mehr von Marco Antonio (20)

DIVISIÓN POLINÓMICA
DIVISIÓN POLINÓMICADIVISIÓN POLINÓMICA
DIVISIÓN POLINÓMICA
 
Interpolación aritmética
Interpolación aritméticaInterpolación aritmética
Interpolación aritmética
 
PREFIJOS DEL SISTEMA MÉTRICO
PREFIJOS DEL SISTEMA MÉTRICOPREFIJOS DEL SISTEMA MÉTRICO
PREFIJOS DEL SISTEMA MÉTRICO
 
EXAMEN DE SUBSANACIÓN DE ÁLGEBRA
EXAMEN DE SUBSANACIÓN DE ÁLGEBRAEXAMEN DE SUBSANACIÓN DE ÁLGEBRA
EXAMEN DE SUBSANACIÓN DE ÁLGEBRA
 
Prefijos del sistema internacional
Prefijos del sistema internacionalPrefijos del sistema internacional
Prefijos del sistema internacional
 
monthly exam of algebra
monthly exam of algebramonthly exam of algebra
monthly exam of algebra
 
Factorización
FactorizaciónFactorización
Factorización
 
Problemas resueltos de Factorización
Problemas resueltos de FactorizaciónProblemas resueltos de Factorización
Problemas resueltos de Factorización
 
solucionario del examen de álgebra
solucionario del examen de álgebrasolucionario del examen de álgebra
solucionario del examen de álgebra
 
Examen Bimestral de Aritmética 5° de primaria
Examen Bimestral de Aritmética 5° de primariaExamen Bimestral de Aritmética 5° de primaria
Examen Bimestral de Aritmética 5° de primaria
 
Examen Bimestral de Aritmética 6° de primaria
Examen Bimestral de Aritmética 6° de primariaExamen Bimestral de Aritmética 6° de primaria
Examen Bimestral de Aritmética 6° de primaria
 
Brevísima historia de Arquímedes
Brevísima historia de ArquímedesBrevísima historia de Arquímedes
Brevísima historia de Arquímedes
 
Sesion multiplexores y demultiplexores
Sesion  multiplexores y demultiplexores Sesion  multiplexores y demultiplexores
Sesion multiplexores y demultiplexores
 
Sesion flips flops
Sesion  flips flopsSesion  flips flops
Sesion flips flops
 
Sesion contadores y registros
Sesion  contadores y registrosSesion  contadores y registros
Sesion contadores y registros
 
EL VALOR DE PI USANDO EL MÉTODO MONTE CARLO EN FORTRAN, SCILAB 5.5 Y MATLAB
EL VALOR DE PI USANDO EL MÉTODO MONTE CARLO EN FORTRAN, SCILAB 5.5 Y MATLABEL VALOR DE PI USANDO EL MÉTODO MONTE CARLO EN FORTRAN, SCILAB 5.5 Y MATLAB
EL VALOR DE PI USANDO EL MÉTODO MONTE CARLO EN FORTRAN, SCILAB 5.5 Y MATLAB
 
MÉTODO DE RONGE KUTTA DE CUARTO ORDEN PARA EDO
MÉTODO DE RONGE KUTTA DE CUARTO ORDEN PARA EDOMÉTODO DE RONGE KUTTA DE CUARTO ORDEN PARA EDO
MÉTODO DE RONGE KUTTA DE CUARTO ORDEN PARA EDO
 
COMPARACIÓN DEL MÉTODO DE RONGE KUTTA (2-4) USANDO FORTRAN Y SCILAB 5.5
COMPARACIÓN DEL MÉTODO DE RONGE KUTTA (2-4) USANDO FORTRAN Y SCILAB 5.5COMPARACIÓN DEL MÉTODO DE RONGE KUTTA (2-4) USANDO FORTRAN Y SCILAB 5.5
COMPARACIÓN DEL MÉTODO DE RONGE KUTTA (2-4) USANDO FORTRAN Y SCILAB 5.5
 
Ecuación Diferencial Hiperbólica usando fortran, matlab y scilab.
Ecuación Diferencial Hiperbólica usando fortran, matlab y scilab.Ecuación Diferencial Hiperbólica usando fortran, matlab y scilab.
Ecuación Diferencial Hiperbólica usando fortran, matlab y scilab.
 
Técnicas numéricas
Técnicas numéricasTécnicas numéricas
Técnicas numéricas
 

COMPARACIÓN DE LOS MÉTODOS ITERATIVOS DE RUNGE KUTTA 2 ORDEN CON RUNGR KUTTA 4 ORDEN EN UNA EDO DE SEGUNDO ORDEN USANDO FORTRAN 90 , MATLAB Y SCILAB

  • 1. Año de la Diversificación Productiva y del Fortalecimiento de la Educación UNIVERSIDAD NACIONAL DEL CALLAO FACULTAD DE CIENCIAS NATURALES Y MATEMÁTICA FÍSICA TEÓRICA COMPUTACIONAL “COMPARACIÓN DE LOS MÉTODOS ITERATIVOS DE RUNGE KUTTA 2 ORDEN CON RUNGR KUTTA 4 ORDEN EN UNA EDO DE SEGUNDO ORDEN USANDO FORTRAN 90 , MATLAB Y SCILAB” MARCO ANTONIO ALPACA CHAMBA FÍSICO BÁSICO
  • 2. ENUNCIADO DEL PROBLEMA: Use los métodos de RK2 y RK4 con h=0.5, para obtener una aproximación de 𝒙 𝟑 para la solución de la siguiente ecuación diferencial con valores iniciales: SOLUCIÓN: Se comprueba fácilmente que la solución del problema de valor inicial es: Usando fortran tenemos: PROGRAM RUNGE_KUTTA_CUARTO_ORDEN REAL T0,TF,X0,Z0,K1,M1,K2,M2,K3,M3,K4,M4,H OPEN(UNIT=12,FILE='KUTTA4.TXT',STATUS='UNKNOWN',ACTION='WRITE') PRINT*,'' PRINT*, '=====================================================================' PRINT*,'METHOD DE RUNGEKUTTADE CUARTO ORDEN CON CONDICIONES INICIALES PARA ' PRINT*,'ECUACIONES DIFERENCIALES ORDINARIAS DE SEGUNDO ORDEN' PRINT*,'================================================================== ====' PRINT*,'' PRINT*,'INGRESAR EL VALOR INICIAL T0:' READ(5,*)T0 PRINT*, 'INGRESAR EL VALOR FINAL TF:' READ*, TF PRINT*, 'INGRESAR EL VALOR INICAL X0:' READ*, X0 PRINT*, 'INGRESAR EL VALOR INICIAL Z0:' READ*, Z0 PRINT*, 'INGRESAR LONGITUD DE PASO,H:' READ*,H PRINT*,'' PRINT*,('*',I=1,79) PRINT '(5X,"RESULTADOS COMPUTACIONALES")' PRINT*,('*',I=1,79) PRINT*,'' N=(TF-T0)/H K=1 PRINT 50 50 FORMAT(3X,'DATOS',5X,'TIME',8X,'POSITION',15X,"VELOCIDAD") 70 WRITE(12,60)K,T0,X0,Z0 PRINT'(2X,I2,8X,F3.1,6X,F12.6,10X,F12.6)',K,T0,X0,Z0 IF (T0.LE.(TF-0.0000001))THEN DO WHILE (K < N+2) M1=H*Z0 K1=H*F(T0,X0,Z0) M2=H*(Z0+K1/2) K2=H*F(T0+H/2,X0+M1/2,Z0+K1/2) M3=H*(Z0+K2/2) K3=H*F(T0+H/2,X0+M2/2,Z0+K2/2)
  • 3. M4=H*(Z0+K3) K4=H*F(T0+H,X0+M3,Z0+K3) X0=X0+(M1+2*(M2+M3)+M4)/6 Z0=Z0+(K1+2*K2+2*K3+K4)/6 T0=T0+H K=K+1 GOTO 70 ENDDO END IF 60 FORMAT (2X,I2,8X,F3.1,6X,F12.6,10X,F12.6) PRINT*,'' PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:' PRINT*,'' WRITE (*,121) T0,X0 121 FORMAT (10X,'X(',F7.2,')=',F12.4) PRINT*,'' STOP END PROGRAM FUNCTION F(T,X,Z) REAL T,X,Z F=-5*Z-4*X+0*T RETURN END FUNCTION PROGRAM RUNGE_KUTTA_SECOND_ORDEN REAL T0,TF,X0,Z0,K1,M1,K2,M2,H OPEN(UNIT=12,FILE='KUTTA2.TXT',STATUS='UNKNOWN',ACTION='WRITE')
  • 4. PRINT*,'' PRINT*, '=====================================================================' PRINT*,'METHOD DE RUNGEKUTTADE SEGUNDO ORDEN CON CONDICIONES INICIALES PARA ' PRINT*,'ECUACIONES DIFERENCIALES ORDINARIAS DE SEGUNDO ORDEN' PRINT*,'================================================================== ====' PRINT*,'' PRINT*,'INGRESAR EL VALOR INICIAL T0:' READ(5,*)T0 PRINT*, 'INGRESAR EL VALOR FINAL TF:' READ*, TF PRINT*, 'INGRESAR EL VALOR INICAL X0:' READ*, X0 PRINT*, 'INGRESAR EL VALOR INICIAL DE Z0:' READ*, Z0 PRINT*, 'INGRESAR LONGITUD DE PASO,H:' READ*,H PRINT*,'' PRINT*,('*',I=1,79) PRINT '(5X,"RESULTADOS COMPUTACIONALES")' PRINT*,('*',I=1,79) PRINT*,'' N=(TF-T0)/H K=1 PRINT 50 50 FORMAT(3X,'DATOS',5X,'TIME',8X,'POSITION',15X,"VELOCIDAD") 70 WRITE(12,60)K,T0,X0,Z0 PRINT'(2X,I2,8X,F3.1,6X,F12.6,10X,F12.6)',K,T0,X0,Z0 IF (T0.LE.(TF-0.0000001))THEN DO WHILE (K < N+2) M1=H*Z0 K1=H*F(T0,X0,Z0) M2=H*(Z0+K1) K2=H*F(T0+H,X0+M1,Z0+K1) X0=X0+(M1+M2)/2 Z0=Z0+(K1+K2)/2 T0=T0+H K=K+1 GOTO 70 ENDDO ENDIF 60 FORMAT (2X,I2,8X,F3.1,6X,F12.6,10X,F12.6) PRINT*,'' PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:' PRINT*,'' WRITE (*,90) T0,X0 90 FORMAT (10X,'X(',F7.2,')=',F12.4) PRINT*,'' STOP END PROGRAM FUNCTION F(T,X,Z) REAL T,X,Z F=-5*Z-4*X+0*T
  • 5. RETURN END FUNCTION USANDO MATLAB TENEMOS: clear; clc; t0=0.0; tf=3.0; x0=1; z0=1; h=0.5; k=1; sk=1; n=0; i=0; f=@(t,x,z)0*t-4*x-5*z; g1=@(t)5./3.*exp(-1*t)-2./3.*exp(-4*t); T=(t0:0.02:3.5); xe=g1(T); t(1)=t0;x(1)=x0;z(1)=z0; disp(' 4th order Runge-Kutta simulation') disp('_________________________________________') disp(' datos t x ') disp('_________________________________________') fprintf('n') fprintf('%6.2f %12.6f %12.6fn',k,t0,x0)
  • 6. while(t(n+1)<=tf) n=n+1; % Cuarto order Runge-Kutta simulation k1=h*z(n); m1=h*f(t(n),x(n),z(n)); k2=h*(z(n)+m1./2); m2=h*f(t(n)+h./2,x(n)+k1./2,z(n)+m1./2); k3=h*(z(n)+m2./2); m3=h*f(t(n)+h./2,x(n)+k2./2,z(n)+m2./2); k4=h*(z(n)+m3); m4=h*f(t(n)+h,x(n)+k3,z(n)+m3); x(n+1)=x(n)+(k1+2*k2+2*k3+k4)./6; z(n+1)=z(n)+(m1+2*m2+2*m3+m4)./6; t(n+1)=t(n)+h; k=k+1; fprintf('%6.2f %12.6f %12.6fn',k,t(n+1),x(n+1)) end fprintf('Final answer n'); fprintf('%12.6fn',x(n)); fprintf('n') st(1)=t0;sx(1)=x0;sz(1)=z0; disp(' Second order Runge-Kutta simulation') disp('_________________________________________') disp(' datos t x ') disp('_________________________________________') fprintf('n') fprintf('%6.2f %12.6f %12.6fn',1,st(1),sx(1)) while(st(i+1)<=tf) i=i+1; % Second order Runge-Kutta simulation sk1=h*sz(i); sm1=h*f(st(i),sx(i),sz(i)); sk2=h*(sz(i)+sm1); sm2=h*f(st(i)+h,sx(i)+sk1,sz(i)+sm1); sx(i+1)=sx(i)+(sk1+sk2)./2; sz(i+1)=sz(i)+(sm1+sm2)./2; st(i+1)=st(i)+h; sk=sk+1; fprintf('%6.2f %12.6f %12.6fn',sk,st(i+1),sx(i+1)) end fprintf('Final answer n'); fprintf('%12.6fn',sx(i)); fprintf('n') figure1=figure('color',[1 1 1]); plot(T,xe,'b-'); hold on plot(t,x,'--x'); plot(st,sx,'--o'); grid on xlabel('Time(t)'); ylabel('Amplitude'); title('x(t)=(5/3)e^-^t-(2/3)e^-^4^t') legend('Exact','4th O Runge-Kutta','2nd O Runge-Kutta',1)
  • 7.
  • 8. Usando Scilab tenemos: clear; clc; t0=0.0; tf=3.0; x0=1.0; z0=1.0; h=0.5; k=1; sk=1; n=0; i=0; function y=f(t, x, z) y=0*t-4*x-5*z endfunction T=(t0:0.02:3.5); xe=5/3*exp(-1*T)-2/3*exp(-4*T); t(1)=t0;x(1)=x0;z(1)=z0; disp(' 4th order Runge-Kutta simulation') disp('_________________________________________') disp(' datos t x ') disp('_________________________________________') printf('%6.2f %12.6f %12.6fn',k,t0,x0) while(t(n+1)<=tf) n=n+1; // Cuarto order Runge-Kutta simulation k1=h*z(n); m1=h*f(t(n),x(n),z(n)); k2=h*(z(n)+m1/2); m2=h*f(t(n)+h/2,x(n)+k1/2,z(n)+m1/2);
  • 9. k3=h*(z(n)+m2/2); m3=h*f(t(n)+h/2,x(n)+k2/2,z(n)+m2/2); k4=h*(z(n)+m3); m4=h*f(t(n)+h,x(n)+k3,z(n)+m3); x(n+1)=x(n)+(k1+2*k2+2*k3+k4)/6; z(n+1)=z(n)+(m1+2*m2+2*m3+m4)/6; t(n+1)=t(n)+h; k=k+1; printf('%6.2f %12.6f %12.6fn',k,t(n+1),x(n+1)) end printf('Final answer n'); printf('%12.6fn',x(n)); printf('n') st(1)=t0;sx(1)=x0;sz(1)=z0; disp(' Second order Runge-Kutta simulation') disp('_________________________________________') disp(' datos t x ') disp('_________________________________________') printf('%6.2f %12.6f %12.6fn',1,st(1),sx(1)) while(st(i+1)<=tf) i=i+1; // Second order Runge-Kutta simulation sk1=h*sz(i); sm1=h*f(st(i),sx(i),sz(i)); sk2=h*(sz(i)+sm1); sm2=h*f(st(i)+h,sx(i)+sk1,sz(i)+sm1); sx(i+1)=sx(i)+(sk1+sk2)/2; sz(i+1)=sz(i)+(sm1+sm2)/2; st(i+1)=st(i)+h; sk=sk+1; printf('%6.2f %12.6f %12.6fn',sk,st(i+1),sx(i+1)) end printf('Final answer n'); printf('%12.6fn',sx(i)); printf('n'); scf(1); clf(1); plot2d(T,xe,rect=[0,-0.8,3.5,1.2],style=5); plot(t,x,'bx--'); plot(st,sx,'m--o'); xlabel('Time(t)'); ylabel('Amplitude'); title('x(t)=(5/3)e^-t-(2/3)e^-4t','fontsize',3); legend('Exact','4th O Runge-Kutta','2nd O Runge-Kutta',1); xgrid