La Sostenibilidad Corporativa. Administración Ambiental
MÉTODO DE RONGE KUTTA DE CUARTO ORDEN PARA EDO
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 II
“MÉTODO DE RONGE KUTTA DE CUARTO ORDEN
USANDO FORTRAN Y SCILAB 5.5”
MARCO ANTONIO ALPACA CHAMBA
ESCUELA PROFESIONAL DE: FÍSICA
𝑦′
= 2𝑥𝑦 ,𝑦(1) = 1.
PROGRAM
IMPLICIT NONE
REAL, INTEGER…
03 -05-2015
2. MÉTODO DE RUNGE KUTTA PARA UNA ECUACIÓN DIFERENCIAL ORDINARIA DE
PRIMER ORDEN:
Use el método de RK4 con h=0.1 para obtener una aproximación de y(1.5) para la solución
de:
𝒚′
= 𝟐𝒙𝒚 ,𝒚(𝟏) = 𝟏.
SOLUCIÓN:
PROGRAM RUNGE_KUTTA_CUARTO_ORDEN
REAL X0,X1,Y0,K1,K2,K3,K4,H
OPEN(UNIT=11,FILE='KUTTA4.TXT',STATUS='UNKNOWN',ACTION='WRITE')
PRINT*,''
PRINT*,
'====================================================================='
PRINT*,'METHOD DE RUNGE KUTTADE CUARTO ORDEN CON CONDICIONES INICIALES
PARA '
PRINT*,'UNAEQUATION DIFERENCIAL ORDINARIADE PRIMER ORDEN'
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*,''
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',8X,'TIME',16X,'POSITION')
70 WRITE(11,60)K,X0,Y0
PRINT'(2X,I3,8X,F12.8,6X,F12.6)',K,X0,Y0
IF (X0.LE.(X1-0.0000001))THEN
DO WHILE (K < N+2)
K1=H*F(X0,Y0)
K2=H*F(X0+(H/2),Y0+(K1/2))
K3=H*F(X0+(H/2),Y0+(K2/2))
K4=H*F(X0+H,Y0+K3)
X0=X0+H
Y0=Y0+(K1+2*(K2+K3)+K4)/6
K=K+1
GOTO 70
ENDDO
END IF
60 FORMAT (2X,I3,8X,F12.8,6X,F12.6)
PRINT*,''
STOP
3. END PROGRAM
FUNCTION F(X,Y)
REAL X,Y
F=2*X*Y
RETURN
END FUNCTION
USANDO SCILAB 5.5 PARA GRAFICAR TENEMOS:
A=read('KUTTA4.txt',6,3);
t=A(:,2);
x=A(:,3);
plot(t,x,'ro-')
legend("RK4",4);
xlabel('Tiempo t (segundos)','fontsize',4)
ylabel('Posición Y(t)','fontsize',4)
title("MÉTODOS DE RK4",'fontsize',4)
xgrid