Intégration de fonctions

Présentation

Nous nous servirons de la routine quanc8. Nous mettrons en évidence les principales variables qui interviennent lors d'une intégration par pas variables.

Nous aurons besoin des routines suivantes:

Voici le Makefile à utiliser avec le gfortran (le programme principal doit s'appeler Integration.f90).

quanc8.f90

subroutine quanc8(fun,a,b,abserr,relerr,result,errest,nofun,flag)

Etant donnée une fonction fun(x), les bornes d'intégration a et b, la routine renvoie la valeur result de l'integrale de cette fonction entre les deux bornes, errest une estimation de l'erreur absolue sur la valeur de l'intégrale, nofun le nombre d'évaluations qu'elle a effectuées ainsi que flag qui indique la fiabilité du résultat (si flag est nul, c'est que le résultat est fiable). L'utilisateur doit fournir abserr et relerr qui sont respectivement les erreurs absolues et relatives qu'il souhaite.

La sous-routine quanc8 fonctionne en double précision. Tout le programme sera donc écrit en double précision (r=8 et DP).
L'interface de quanc8 est contenue dans le module forsythe. Le programme principal y fait donc référence par use forsythe, only: quanc8.
La fonction fun(x) doit être construite explicitement et son interface introduite dans list_interface.

Exercices

Soit la fonction fun(x) = 1/((x-0.3)**2+0.01) + 1/((x-0.9)**2+0.04) - 6. Nous allons l'intégrer sur l'intervalle [0,1].