Académique Documents
Professionnel Documents
Culture Documents
implicit none
real :: T,y1_0,y2_0,h,k1_1,k1_2,k2_1,k2_2,k3_1,a,b,c,d
real :: k3_2,k4_1,k4_2,f1,f2,Y2,Y1,tn,t0
integer :: n,i
!********************************************************
!****** Le message qui sera affiché à l'utilisateur *****
write(*,*),''
!********************************************************
Y1 = y1_0
Y2 = y2_0
h = (tn - t0)/(n)
T = t0
do i = 1,n
k1_1 = h*f1(T,Y1,Y2,a,b,c,d)
k1_2 = h*f2(T,Y1,Y2,a,b,c,d)
k2_1 = h*f1((T+h/2.),(Y1+k1_1/2.),(Y2+k1_2/2.),a,b,c,d)
k2_2 = h*f2((T+h/2.),(Y1+k1_1/2.),(Y2+k1_2/2.),a,b,c,d)
k3_1 = h*f1((T+h/2.),(Y1+k2_1/2.),(Y2+k2_2/2.),a,b,c,d)
k3_2 = h*f2((T+h/2.),(Y1+k2_1/2.),(Y2+k2_2/2.),a,b,c,d)
k4_1 = h*f1((T+h),(Y1+k3_1),(Y2+k3_2),a,b,c,d)
k4_2 = h*f2((T+h),(Y1+k3_1),(Y2+k3_2),a,b,c,d)
Y1 = Y1 + (1./6.)*(k1_1+2.*k2_1+2.*k3_1+k4_1)
Y2 = Y2 + (1./6.)*(k1_2+2.*k2_2+2.*k3_2+k4_2)
T = T+h
end do
end program
Function f1(T,Y1,Y2,a,b,c,d)
f1 = Y2
end function
Function f2(T,Y1,Y2,a,b,c,d)
f2 = -b*Y2 -c*Y1 -d
end function
!********************************************************