PROGRAM TestIntegration c Programme de test des differentes methodes d'integration c des fonctions reelles. c c Dominique Lefebvre janvier 2007 IMPLICIT NONE C Declaration de la fonction a integrer REAL fn EXTERNAL fn C Declaration des subroutines d'integration EXTERNAL IntRectangles EXTERNAL IntTrapezes EXTERNAL IntSimpson EXTERNAL IntRomberg C Declaration des variables REAL a,b,s,s1,eps INTEGER hinit C Saisie des parametres WRITE(*,'(a,$)') 'Borne inferieure d''integration: ' READ (*,*) a WRITE(*,'(a,$)') 'Borne superieure d''integration: ' READ (*,*) b WRITE(*,'(a,$)') 'Precision requise: ' READ (*,*) eps C Premier calcul avec un pas = 4096 hinit = 4096 CALL IntRectangles(fn,a,b,hinit,s1) C Initialisation de s s = s1 + 2*eps C Boucle pour atteindre la precision voulue DO WHILE (ABS(s-s1) .GE. eps) hinit = hinit*2 CALL IntRectangles(fn,a,b,hinit,s) ENDDO WRITE(*,*)'La valeur de l''integrale (Rectangles) est : ', s C Calcul par la methode des trapezes hinit = 4096 s = 0 CALL IntTrapezes(fn,a,b,hinit,s) WRITE(*,*)'La valeur de l''integrale (Trapezes) est : ', s C Calcul par la methode de Simpson hinit = 8096 s = 0 CALL IntSimpson(fn,a,b,hinit,s) WRITE(*,*)'La valeur de l''integrale (Simpson) est : ', s C Calcul par la methode de Romberg s = 0 CALL IntRomberg(fn,a,b,eps,s) WRITE(*,*)'La valeur de l''integrale (Romberg) est : ', s STOP END