MÉTODO DE RUNGE KUTTA DE 4 ORDEN PARA RESOLVER UNA ECUACIÓN DIFERENCIAL DE SEGUNDO ORDEN 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
“MÉTODO DE RUNGE KUTTA DE 4 ORDEN PARA
RESOLVER UNA ECUACIÓN DIFERENCIAL DE
SEGUNDO ORDEN USANDO FORTRAN 90 Y
MATLAB”
MARCO ANTONIO ALPACA CHAMBA
FÍSICO BÁSICO
2. ENUNCIADO DEL PROBLEMA:
Utilice el método de Runge-Kutta con h = 0.25 para aproximar los valores de la solución
del problema con valores iniciales:
𝒙(𝟎) = 𝟏/𝟐. 𝒙′(𝟎) = 𝟎. 𝟎
SOLUTION:
Usando fortran tenemos:
PROGRAM RUNGE_KUTTA_CUARTO_ORDEN
REAL X0,X1,Y0,Z0,RK1X,RK1V,RK2X,RK2V,RK3X,RK3V,RK4X,RK4V,H
OPEN(UNIT=12,FILE='KUTTA4.TXT',STATUS='UNKNOWN',ACTION='WRITE')
PRINT*,''
PRINT*,
'==================================================================
==='
PRINT*,'METHOD DE RUNGE KUTTA DE CUARTO ORDEN CON CONDICIONES
INICIALES PARA '
PRINT*,'ECUACIONES DIFERENCIALES ORDINARIAS DE SEGUNDO ORDEN'
PRINT*,'============================================================
=========='
PRINT*,''
PRINT*,'INGRESAR EL VALOR INICIAL DE X:'
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 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=(X1-X0)/H
K=1
PRINT 50
50 FORMAT(3X,'DATOS',5X,'TIME',8X,'POSITION',15X,"VELOCIDAD")
70 WRITE(12,60)K,X0,Y0,Z0
PRINT'(2X,I3,8X,F4.2,6X,F12.6,10X,F12.6)',K,X0,Y0,Z0
IF (X0.LE.(X1-0.0000001))THEN
DO WHILE (K < N+2)
RK1X=H*Z0
RK1V=H*F(X0,Y0,Z0)
RK2X=H*(Z0+0.5*RK1V)