SlideShare una empresa de Scribd logo
1 de 7
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
ADAMAS-BALTHOR-MOULT PREDICTOR
CORRECTOR CON RUNGE KUTTA USANDO
FORTRAN 90 Y MATLAB”
MARCO ANTONIO ALPACA CHAMBA
FÍSICO BÁSICO
ENUNCIADO DEL PROBLEMA:
Use los métodos de RK4 y Adams-Moulton predictor corrector con h=0.05, para obtener
una aproximación de 𝒚 𝟏.𝟑 para la solución de la siguiente ecuación diferencial:
𝒚′
= 𝒙 𝟐
− 𝟐
𝒚
𝒙
, 𝒚(𝟏) = 𝟏.
SOLUCIÓN:
Usando fortran 90 tenemos:
PROGRAM ADAMS_MOULTON_PREDICTOR_CORRECTOR
PARAMETER (IDM=100)
DIMENSION XR(IDM),YR(IDM),Z(IDM,IDM),CP(4),CC(4)
REAL ,PARAMETER::CP=(/55.0,-59.0,37.0,-9.0/)
REAL ,PARAMETER::CC=(/9.0,19.0,-5.0,1.0/)
REAL X0,X1,Y0,K1,K2,K3,K4,H,XR,YR,M,TOL
INTEGER::K
OPEN(UNIT=11,FILE='KUTA4.TXT',STATUS='UNKNOWN',ACTION='WRITE')
PRINT*,''
PRINT*, '=========================================================='
PRINT*,'METHOD DE ADAMS-MOULTON PARA EDO DE LA FORMA DY/DX=F(X,Y)'
PRINT*,'============================================================'
PRINT*,''
PRINT*,'INGRESAR EL VALOR INICIAL DE X(ES DECIR X0):'
READ(5,*)X0
PRINT*, 'INGRESAR EL VALOR FINAL DE X:'
READ*, X1
PRINT*, 'INGRESAR EL VALOR INICAL DE Y(EN X0):'
READ*, Y0
PRINT*, 'INGRESAR LONGITUD DE PASO,H:'
READ*,H
PRINT*, 'INGRESAR TOLERANCIA'
READ*, TOL
PRINT*,''
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS COMPUTACIONALES")'
PRINT*,('*',I=1,79)
PRINT*,''
NMAX=(X1-X0)/H
YR(1)=Y0
XR(1)=X0
K=1
!APLICANDO RUNGE KUTTA
PRINT 90
90 FORMAT(3X,'RUNGE KUTA METHOD TO START:'/)
PRINT 50
50 FORMAT(3X,'DATOS',8X,'TIME',13X,'POSITION')
PRINT'(2X,I3,8X,F8.3,6X,F12.4)',1,XR(1),YR(1)
DO I=1,3
K1=F(YR(I),XR(I))
K2=F(YR(I)+H*(K1/2),XR(I)+(H/2))
K3=F(YR(I)+H*(K2/2),XR(I)+(H/2))
K4=F(YR(I)+H*K3,XR(I)+H)
YR(I+1)=YR(I)+(H/6)*(k1+2*k2+2*k3+k4)
XR(I+1)=XR(I)+H
K=K+1
WRITE(11,60)K,XR(I+1),YR(I+1)
PRINT'(2X,I3,8X,F8.3,6X,F12.4)',K,XR(I+1),YR(I+1)
END DO
DO I=4,NMAX+1
XR(I+1)=XR(I)+H
ENDDO
60 FORMAT (2X,I3,8X,F8.3,6X,F12.4)
PRINT*,''
PRINT 110
110 FORMAT(/3X,'PROCEDIMIENTO PREDICTOR-CORRECTOR:'/)
DO J=1,4
WRITE (*,111)J,CP(J)
111 FORMAT (2X,'CP(',I2,')=',F12.4)
ENDDO
PRINT*,''
DO I=1,4
WRITE (*,112)I,CC(I)
112 FORMAT (2X,'CC(',I2,')=',F12.4)
ENDDO
PRINT 70
70 FORMAT(/3X,'DATOS',8X,'TIME',13X,'POSITION')
DO J=4,NMAX+1
Z(1,J+1)=YR(J)+H/24*(55*F(YR(J),XR(J))-59*F(YR(J-1),XR(J-1))+37*F(YR(J-2),XR(J-
2))-9*F(YR(J-3),XR(J-3)))
YR(J+1)=Z(1,J+1)
M=1
10 M=M+1
Z(M,J+1)=YR(J)+H/24*(9*F(Z(1,J+1),XR(J+1))+19*F(YR(J),XR(J))-5*F(YR(J-1),XR(J-
1))+F(YR(J-2),XR(J-2)))
YR(J+1)=Z(M,J+1)
!CALCULAMOS LA TOLERANCIA
EE=ABS(Z(M,J+1)-Z(M-1,J+1)) !ERROR ENCONTRADO
IF (EE.GT.TOL) THEN
GOTO 10
END IF
PRINT'(2X,I3,8X,F8.3,6X,F12.4)',J+1,XR(J+1),YR(J+1)
ENDDO
PRINT*,''
PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) XR(NMAX+2),YR(NMAX+2)
121 FORMAT (10X,'Y(',F7.2,')=',F12.4)
PRINT*,''
STOP
END PROGRAM
FUNCTION F(Y,X)
REAL X,Y,F
F=(X**2)-2*Y/X
RETURN
END FUNCTION
USANDO MATLAB TENEMOS:
clear;
clc;
t0=0.05;
tf=1.3;
y0=1;
f=@(t,y)t.^2-(2*y./t);
c=(5*t0.^2*y0)-(t0.^5);
te=(t0:0.02:1.5);
for k =1:length(te)
ye(k)=((te(k)).^3)/5+c/(5*(te(k)).^2);
end
a=t0;
b=tf;
t=(t0:0.05:tf);
n=length(t)-1;
h=(b-a)/n;
tol=1.e-4;
% Resolviendo problemas de valores iniciales y'=f(t,y), y(a)=y0
% usando el método de Adams-Moulton de 4 orden.
fprintf('Runge-kutta method of order 4 givesn')
y(1)=y0;
fprintf('y(%3.2f) =%14.8fn',a,y(1))
% Usando el método de Runge Kutta (rk4) para comenzar
for i=1:3
k1=feval(f,t(i),y(i));
k2=feval(f,t(i)+h/2,y(i)+h*k1/2);
k3=feval(f,t(i)+h/2,y(i)+h*k2/2);
k4=feval(f,t(i)+h,y(i)+h*k3);
y(i+1)=y(i)+h*(k1+2*k2+2*k3+k4)/6;
fprintf('y(%3.2f) =%14.8fn',t(i)+h,y(i+1))
end;
fprintf('n')
disp(' Adams-Moulton method of order 4')
disp('_______________________________________________________________________
____________________________')
disp('datos t fi-2 fi-1 fi fi+1 y
Exact error ')
disp('_______________________________________________________________________
____________________________')
fprintf('n')
for i=4:n
f1=feval(f,t(i),y(i));
f2=feval(f,t(i-1),y(i-1));
f3=feval(f,t(i-2),y(i-2));
f4=feval(f,t(i-3),y(i-3));
% Adams–Bashforth como predict
z(1,i+1)=y(i)+h*(55*f1-59*f2+37*f3-9*f4)/24;
y(i+1)=z(1,i+1);
m=1;
r=1;
while r>tol
m=m+1;
% Adams-Moulton como correct
f5=feval(f,t(i+1),z(1,i+1));
z(m,i+1)=y(i)+h*(9*f5+19*f1-5*f2+f3)/24;
y(i+1)=z(m,i+1);
r=abs(z(m,i+1)-z(m-1,i+1));
end
% escribir la solución exacta g si se conoce como: g=g(x)
x=t(i+1);
g=(x.^3)./5+c./(5*x.^2);
if (g~='n')
err=abs(g-y(i+1));
fprintf('% 4.1f %6.2f %12.6f %12.6f %12.6f %12.6f %12.6f %12.6f
%8.2en',i+1,t(i)+h,f3,f2,f1,f5,y(i+1),g,err)
else
fprintf('%6.2f %12.6f %12.6f %12.6f %12.6f
%12.6fn',t(i)+h,f3,f2,f1,f5,y(i+1))
end
end
% 4th order Runge-Kutta simulation
yr(1)=y0;
tr(1)=t(1);
for j=1:length(t)-1
kc1=f(tr(j),yr(j));
kc2=f(tr(j)+.5*h,yr(j)+0.5*h*kc1);
kc3=f(tr(j)+.5*h,yr(j)+0.5*h*kc2);
kc4=f(tr(j)+h,yr(j)+h*kc3);
yr(j+1)=yr(j)+(1/6)*h*(kc1+2*kc2+2*kc3+kc4);
tr(j+1)=tr(j)+h;
end
% Plot
figure1=figure('color',[1 1 1]);
plot(t,y,'--x');
hold on
plot(tr,yr,'^:');
plot(te,ye,'-');
grid on
xlabel('Time(t)');
ylabel('Amplitude');
legend('Adams-Moulton(h=.05)','4th O Runge-Kutta','Exact',1);
fprintf('n');
fprintf('n');
COMPARACIÓN DE LOS MÉTODOS ITERATIVOS ADAMAS-BALTHOR-MOULT PREDICTOR CORRECTOR CON RUNGE KUTTA USANDO FORTRAN 90 Y MATLAB

Más contenido relacionado

La actualidad más candente

Resolucion de un circuito rlc en matlab
Resolucion de un circuito rlc en matlabResolucion de un circuito rlc en matlab
Resolucion de un circuito rlc en matlabJuan Ordóñez
 
Cong thuc-tich-phan
Cong thuc-tich-phanCong thuc-tich-phan
Cong thuc-tich-phanQuoc Tuan
 
Kalkulus modul 3a turunan fungsi revisi
Kalkulus modul 3a turunan fungsi revisiKalkulus modul 3a turunan fungsi revisi
Kalkulus modul 3a turunan fungsi revisiPrayudi MT
 
Integrales sustituciones-trigonometricas
Integrales sustituciones-trigonometricasIntegrales sustituciones-trigonometricas
Integrales sustituciones-trigonometricasFabiana Carnicelli
 
Formulario integrales
Formulario integralesFormulario integrales
Formulario integralesshakalu
 
Formulario calculo integral
Formulario calculo integralFormulario calculo integral
Formulario calculo integralORCI ALBUQUERQUE
 
Resolucion de un circuito rlc en matlab
Resolucion de un circuito rlc en matlabResolucion de un circuito rlc en matlab
Resolucion de un circuito rlc en matlabDavid Basantes
 
Band Limited Impedance Inversion (BLIMP)
Band Limited Impedance Inversion (BLIMP)Band Limited Impedance Inversion (BLIMP)
Band Limited Impedance Inversion (BLIMP)Fajar Perdana
 
2.4.tich phan ham_luong_giac_co_ban
2.4.tich phan ham_luong_giac_co_ban2.4.tich phan ham_luong_giac_co_ban
2.4.tich phan ham_luong_giac_co_banQuyen Le
 

La actualidad más candente (12)

Int.coord.polares
Int.coord.polaresInt.coord.polares
Int.coord.polares
 
Resolucion de un circuito rlc en matlab
Resolucion de un circuito rlc en matlabResolucion de un circuito rlc en matlab
Resolucion de un circuito rlc en matlab
 
Cong thuc-tich-phan
Cong thuc-tich-phanCong thuc-tich-phan
Cong thuc-tich-phan
 
Kalkulus modul 3a turunan fungsi revisi
Kalkulus modul 3a turunan fungsi revisiKalkulus modul 3a turunan fungsi revisi
Kalkulus modul 3a turunan fungsi revisi
 
Integrales sustituciones-trigonometricas
Integrales sustituciones-trigonometricasIntegrales sustituciones-trigonometricas
Integrales sustituciones-trigonometricas
 
Ex algebra (13)
Ex algebra  (13)Ex algebra  (13)
Ex algebra (13)
 
Formulario integrales
Formulario integralesFormulario integrales
Formulario integrales
 
Formulario calculo integral
Formulario calculo integralFormulario calculo integral
Formulario calculo integral
 
Resolucion de un circuito rlc en matlab
Resolucion de un circuito rlc en matlabResolucion de un circuito rlc en matlab
Resolucion de un circuito rlc en matlab
 
Band Limited Impedance Inversion (BLIMP)
Band Limited Impedance Inversion (BLIMP)Band Limited Impedance Inversion (BLIMP)
Band Limited Impedance Inversion (BLIMP)
 
1ee prova com_gab
1ee prova com_gab1ee prova com_gab
1ee prova com_gab
 
2.4.tich phan ham_luong_giac_co_ban
2.4.tich phan ham_luong_giac_co_ban2.4.tich phan ham_luong_giac_co_ban
2.4.tich phan ham_luong_giac_co_ban
 

Destacado

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
 
Métodos numéricos con fortran 90
Métodos numéricos con fortran 90Métodos numéricos con fortran 90
Métodos numéricos con fortran 90Marco Antonio
 
MÉTODO ITERATIVO DE GAUSS_SEIDEL USANDO FORTRAN 90, MATLAB Y SCILAB
MÉTODO ITERATIVO DE GAUSS_SEIDEL USANDO FORTRAN 90, MATLAB Y SCILABMÉTODO ITERATIVO DE GAUSS_SEIDEL USANDO FORTRAN 90, MATLAB Y SCILAB
MÉTODO ITERATIVO DE GAUSS_SEIDEL USANDO FORTRAN 90, MATLAB Y SCILABMarco 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
 
Fortran 90 con métodos numéricos
Fortran 90 con métodos numéricosFortran 90 con métodos numéricos
Fortran 90 con métodos numéricosMarco Antonio
 
Planos cristalográficos
Planos cristalográficosPlanos cristalográficos
Planos cristalográficosMarco Antonio
 

Destacado (20)

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
 
Métodos numéricos con fortran 90
Métodos numéricos con fortran 90Métodos numéricos con fortran 90
Métodos numéricos con fortran 90
 
MÉTODO ITERATIVO DE GAUSS_SEIDEL USANDO FORTRAN 90, MATLAB Y SCILAB
MÉTODO ITERATIVO DE GAUSS_SEIDEL USANDO FORTRAN 90, MATLAB Y SCILABMÉTODO ITERATIVO DE GAUSS_SEIDEL USANDO FORTRAN 90, MATLAB Y SCILAB
MÉTODO ITERATIVO DE GAUSS_SEIDEL USANDO FORTRAN 90, MATLAB Y SCILAB
 
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
 
Laboratorio6
Laboratorio6Laboratorio6
Laboratorio6
 
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
 
Proceso de autoionización
Proceso de autoionizaciónProceso de autoionización
Proceso de autoionización
 
Clase modelo
Clase modeloClase modelo
Clase modelo
 
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 ...
 
Fortran 90 con métodos numéricos
Fortran 90 con métodos numéricosFortran 90 con métodos numéricos
Fortran 90 con métodos numéricos
 
Planos cristalográficos
Planos cristalográficosPlanos cristalográficos
Planos cristalográficos
 

Más de 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
 
Ecuación diferencial parabólica usando el método crank nicholson en fortran, ...
Ecuación diferencial parabólica usando el método crank nicholson en fortran, ...Ecuación diferencial parabólica usando el método crank nicholson en fortran, ...
Ecuación diferencial parabólica usando el método crank nicholson en fortran, ...Marco Antonio
 

Más de 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.
 
Ecuación diferencial parabólica usando el método crank nicholson en fortran, ...
Ecuación diferencial parabólica usando el método crank nicholson en fortran, ...Ecuación diferencial parabólica usando el método crank nicholson en fortran, ...
Ecuación diferencial parabólica usando el método crank nicholson en fortran, ...
 

COMPARACIÓN DE LOS MÉTODOS ITERATIVOS ADAMAS-BALTHOR-MOULT PREDICTOR CORRECTOR CON RUNGE KUTTA USANDO FORTRAN 90 Y MATLAB

  • 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 ADAMAS-BALTHOR-MOULT PREDICTOR CORRECTOR CON RUNGE KUTTA USANDO FORTRAN 90 Y MATLAB” MARCO ANTONIO ALPACA CHAMBA FÍSICO BÁSICO
  • 2. ENUNCIADO DEL PROBLEMA: Use los métodos de RK4 y Adams-Moulton predictor corrector con h=0.05, para obtener una aproximación de 𝒚 𝟏.𝟑 para la solución de la siguiente ecuación diferencial: 𝒚′ = 𝒙 𝟐 − 𝟐 𝒚 𝒙 , 𝒚(𝟏) = 𝟏. SOLUCIÓN: Usando fortran 90 tenemos: PROGRAM ADAMS_MOULTON_PREDICTOR_CORRECTOR PARAMETER (IDM=100) DIMENSION XR(IDM),YR(IDM),Z(IDM,IDM),CP(4),CC(4) REAL ,PARAMETER::CP=(/55.0,-59.0,37.0,-9.0/) REAL ,PARAMETER::CC=(/9.0,19.0,-5.0,1.0/) REAL X0,X1,Y0,K1,K2,K3,K4,H,XR,YR,M,TOL INTEGER::K OPEN(UNIT=11,FILE='KUTA4.TXT',STATUS='UNKNOWN',ACTION='WRITE') PRINT*,'' PRINT*, '==========================================================' PRINT*,'METHOD DE ADAMS-MOULTON PARA EDO DE LA FORMA DY/DX=F(X,Y)' PRINT*,'============================================================' PRINT*,'' PRINT*,'INGRESAR EL VALOR INICIAL DE X(ES DECIR X0):' READ(5,*)X0 PRINT*, 'INGRESAR EL VALOR FINAL DE X:' READ*, X1 PRINT*, 'INGRESAR EL VALOR INICAL DE Y(EN X0):' READ*, Y0 PRINT*, 'INGRESAR LONGITUD DE PASO,H:' READ*,H PRINT*, 'INGRESAR TOLERANCIA' READ*, TOL PRINT*,'' PRINT*,('*',I=1,79) PRINT '(5X,"RESULTADOS COMPUTACIONALES")' PRINT*,('*',I=1,79) PRINT*,'' NMAX=(X1-X0)/H YR(1)=Y0 XR(1)=X0 K=1 !APLICANDO RUNGE KUTTA PRINT 90 90 FORMAT(3X,'RUNGE KUTA METHOD TO START:'/) PRINT 50 50 FORMAT(3X,'DATOS',8X,'TIME',13X,'POSITION') PRINT'(2X,I3,8X,F8.3,6X,F12.4)',1,XR(1),YR(1) DO I=1,3 K1=F(YR(I),XR(I)) K2=F(YR(I)+H*(K1/2),XR(I)+(H/2)) K3=F(YR(I)+H*(K2/2),XR(I)+(H/2)) K4=F(YR(I)+H*K3,XR(I)+H) YR(I+1)=YR(I)+(H/6)*(k1+2*k2+2*k3+k4) XR(I+1)=XR(I)+H K=K+1 WRITE(11,60)K,XR(I+1),YR(I+1) PRINT'(2X,I3,8X,F8.3,6X,F12.4)',K,XR(I+1),YR(I+1)
  • 3. END DO DO I=4,NMAX+1 XR(I+1)=XR(I)+H ENDDO 60 FORMAT (2X,I3,8X,F8.3,6X,F12.4) PRINT*,'' PRINT 110 110 FORMAT(/3X,'PROCEDIMIENTO PREDICTOR-CORRECTOR:'/) DO J=1,4 WRITE (*,111)J,CP(J) 111 FORMAT (2X,'CP(',I2,')=',F12.4) ENDDO PRINT*,'' DO I=1,4 WRITE (*,112)I,CC(I) 112 FORMAT (2X,'CC(',I2,')=',F12.4) ENDDO PRINT 70 70 FORMAT(/3X,'DATOS',8X,'TIME',13X,'POSITION') DO J=4,NMAX+1 Z(1,J+1)=YR(J)+H/24*(55*F(YR(J),XR(J))-59*F(YR(J-1),XR(J-1))+37*F(YR(J-2),XR(J- 2))-9*F(YR(J-3),XR(J-3))) YR(J+1)=Z(1,J+1) M=1 10 M=M+1 Z(M,J+1)=YR(J)+H/24*(9*F(Z(1,J+1),XR(J+1))+19*F(YR(J),XR(J))-5*F(YR(J-1),XR(J- 1))+F(YR(J-2),XR(J-2))) YR(J+1)=Z(M,J+1) !CALCULAMOS LA TOLERANCIA EE=ABS(Z(M,J+1)-Z(M-1,J+1)) !ERROR ENCONTRADO IF (EE.GT.TOL) THEN GOTO 10 END IF PRINT'(2X,I3,8X,F8.3,6X,F12.4)',J+1,XR(J+1),YR(J+1) ENDDO PRINT*,'' PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:' PRINT*,'' WRITE (*,121) XR(NMAX+2),YR(NMAX+2) 121 FORMAT (10X,'Y(',F7.2,')=',F12.4) PRINT*,'' STOP END PROGRAM FUNCTION F(Y,X) REAL X,Y,F F=(X**2)-2*Y/X RETURN END FUNCTION
  • 5. clc; t0=0.05; tf=1.3; y0=1; f=@(t,y)t.^2-(2*y./t); c=(5*t0.^2*y0)-(t0.^5); te=(t0:0.02:1.5); for k =1:length(te) ye(k)=((te(k)).^3)/5+c/(5*(te(k)).^2); end a=t0; b=tf; t=(t0:0.05:tf); n=length(t)-1; h=(b-a)/n; tol=1.e-4; % Resolviendo problemas de valores iniciales y'=f(t,y), y(a)=y0 % usando el método de Adams-Moulton de 4 orden. fprintf('Runge-kutta method of order 4 givesn') y(1)=y0; fprintf('y(%3.2f) =%14.8fn',a,y(1)) % Usando el método de Runge Kutta (rk4) para comenzar for i=1:3 k1=feval(f,t(i),y(i)); k2=feval(f,t(i)+h/2,y(i)+h*k1/2); k3=feval(f,t(i)+h/2,y(i)+h*k2/2); k4=feval(f,t(i)+h,y(i)+h*k3); y(i+1)=y(i)+h*(k1+2*k2+2*k3+k4)/6; fprintf('y(%3.2f) =%14.8fn',t(i)+h,y(i+1)) end; fprintf('n') disp(' Adams-Moulton method of order 4') disp('_______________________________________________________________________ ____________________________') disp('datos t fi-2 fi-1 fi fi+1 y Exact error ') disp('_______________________________________________________________________ ____________________________') fprintf('n') for i=4:n f1=feval(f,t(i),y(i)); f2=feval(f,t(i-1),y(i-1)); f3=feval(f,t(i-2),y(i-2)); f4=feval(f,t(i-3),y(i-3)); % Adams–Bashforth como predict z(1,i+1)=y(i)+h*(55*f1-59*f2+37*f3-9*f4)/24; y(i+1)=z(1,i+1); m=1; r=1; while r>tol m=m+1; % Adams-Moulton como correct f5=feval(f,t(i+1),z(1,i+1)); z(m,i+1)=y(i)+h*(9*f5+19*f1-5*f2+f3)/24; y(i+1)=z(m,i+1); r=abs(z(m,i+1)-z(m-1,i+1)); end % escribir la solución exacta g si se conoce como: g=g(x) x=t(i+1); g=(x.^3)./5+c./(5*x.^2); if (g~='n') err=abs(g-y(i+1));
  • 6. fprintf('% 4.1f %6.2f %12.6f %12.6f %12.6f %12.6f %12.6f %12.6f %8.2en',i+1,t(i)+h,f3,f2,f1,f5,y(i+1),g,err) else fprintf('%6.2f %12.6f %12.6f %12.6f %12.6f %12.6fn',t(i)+h,f3,f2,f1,f5,y(i+1)) end end % 4th order Runge-Kutta simulation yr(1)=y0; tr(1)=t(1); for j=1:length(t)-1 kc1=f(tr(j),yr(j)); kc2=f(tr(j)+.5*h,yr(j)+0.5*h*kc1); kc3=f(tr(j)+.5*h,yr(j)+0.5*h*kc2); kc4=f(tr(j)+h,yr(j)+h*kc3); yr(j+1)=yr(j)+(1/6)*h*(kc1+2*kc2+2*kc3+kc4); tr(j+1)=tr(j)+h; end % Plot figure1=figure('color',[1 1 1]); plot(t,y,'--x'); hold on plot(tr,yr,'^:'); plot(te,ye,'-'); grid on xlabel('Time(t)'); ylabel('Amplitude'); legend('Adams-Moulton(h=.05)','4th O Runge-Kutta','Exact',1); fprintf('n'); fprintf('n');