Vous êtes sur la page 1sur 6

I.N.S.S.E.T. U. P. J. V.

Licence Maths et SPI 2me anne

Initiation Matlab M. Marcoux

TP 6 : Intgration numrique

1. Introduction
Lobjectif de cette sance est de calculer numriquement lintgrale dune fonction.

Selon les travaux de Riemann, lintgrale dune fonction peut sinterprter comme laire sous la courbe reprsentative de cette fonction. Le calcul numrique dune intgrale se rduit donc lestimation dune aire.

Comme pour le calcul de la drive, plusieurs mthodes sont possibles selon le type dapproximation ralise sur la courbe.

Les points suivants seront abords : Scripts fonction. Paramtres dentre et sortie Les tests (if/then/else), les boucles while Laffichage format de texte

2. Rappels mathmatiques et prparation

a) Diffrentes mthodes
Si une fonction est positive, son intgrale sur un intervalle [a, b] permet dvaluer laire sous la courbe reprsentative de la fonction. Lide de Riemann fut de remplacer un arc de courbe correspondant un petit intervalle [ x n x n +1 ] par un segment horizontal dordonne f (( x n + x n +1 ) 2 ) . On parle alors de fonction en escalier. 6.1

La figure suivante illustre le procd de Riemann :

xn

x n +1

A partir dune subdivision de [a, b] en N intervalles, la somme dfinie par S N = ( x1 x 0 ) f (c1 ) + ( x 2 x1 ) f (c 2 ) + ... + ( x N x N 1 ) f (c N ) avec ci = est une somme de Riemann attache f sur lintervalle [a, b] .
xi + xi +1 2

Lorsque N tend vers linfini, de sorte que les pas c n tendent vers 0, la somme S N admet une limite finie appele intgrale de f sur [a, b] . On note alors :

lim
N

S N = f ( x) dx
a

Ce principe permet le calcul approch dintgrales en choisissant une subdivision rgulire avec des pas constants : x n +1 x n = h = (b a ) N et un N assez grand. On obtient alors une succession de rectangles approchant laire sous la courbe.

La premire mthode de calcul (dite mthode des rectangles) consiste donc calculer :
rectangles SN = h f ( xi + h 2 ) i =1 N

Les arcs de la courbe tant remplacs par des segments "horizontaux", la mthode converge "lentement", elle ncessite de grandes valeurs de N pour obtenir un rsultat acceptable.

6.2

Une seconde mthode consiste remplacer les arcs de courbes par des segments de droite joignant les ordonnes choisies.

Cette mthode dintgration (dite des trapzes) dcrite par Newton et Cotes, consiste raliser une interpolation linaire. Chaque aire est celle dun trapze de hauteur x n +1 x n et de bases respectives f ( x n ) et f ( x n +1 ) . Lintgrale de f est donc approche en calculant la suite suivante : S
rectangles N

f (a ) + f (b) N 1 = h + f ( x i ) 2 i =1

Cette mthode est plus prcise que la mthode des rectangles.

Le dfaut vident du calcul par la mthode des trapzes est de remplacer grossirement les arcs de courbes compris entre les abscisses x n et x n +1 par un segment de droite. La mthode de Simpson consiste regrouper trois points conscutifs et remplacer larc correspondant par un arc de parabole. Au final lintgrale peut tre value en calculant la suite suivante :
simpson SN =

h f (a ) + f (b) + 4 f (xi ) + 2 f ( xi ) 3 i pair i impair

b) Fonctions tudies
Soit la fonction f ( x) =
x x sin( 2 x) et la fonction g ( x) = 1+ x2

Dterminez analytiquement les primitives de f et de g. Donnez alors une valeur numrique approche des intgrales suivantes : I 1 = f ( x) dx

et

I 2 = g ( x) dx
0

3. Manipulation
Allez dans le rpertoire correspondant votre nom (c:\TPmatlab\votrenom). Crez un rpertoire TP6 et allez dans celui-ci. 6.3

Crez un script fonction dans un fichier "f.m" qui code au besoin, la fonction f ou la fonction g Crez un script intitul "courbes.m" ralisant un plot dtaill des fonctions f et g dans leur domaine dtude et sauvez les figures obtenues dans des images jpeg.

a) Intgration par la mthode des rectangles


Crez un script fonction nomm "irecta" utilisant la mthode des rectangles pour valuer lintgrale dune fonction f La fonction "irecta" doit recevoir en entre les bornes a et b ainsi que le nombre de points N utiliss pour le calcul. En sortie la fonction doit fournir la valeur de lintgrale I Suivez les recommandations suivantes : Pour les lignes suivantes, calculer I = S N : Calculer h Initialiser I zro Faire une boucle avec un indice k qui va de 1 N. Dans cette boucle : Calculer le centre de lintervalle [ x k x k +1 ] puis la valeur de la fonction en ce point Ajouter I la valeur du kime lment de la suite S N Comparez les rsultats obtenus avec les valeurs des intgrales I 1 et I 2 calcules lors de la prparation.

b) Autres mthodes
Il existe dans Matlab des fonctions utilisant les autres mthodes de segmentation numrique. Trois fonctions sont disponibles sous Matlab : trapz, quad et quad8

Trapz : utilise lapproche de la mthode des trapzes Quad : est une forme adaptative de la rgle de Simpson Quad8 : est base sur la quadrature adaptative de Lobatto 6.4

Crez un script intitul "iautres.m" qui calcule les intgrales I 1 et I 2 en utilisant ces trois fonction dintgration et affiche le rsultat Comparez les rsultats obtenus

c) Calcul avec une prcision souhaite


Si on veut calculer une valeur dintgrale avec une prcision souhaite, il existe une valeur de N qui permet de lobtenir. Malheureusement, il nest pas possible de connatre priori cette valeur qui dpend de la fonction f. Par contre, il existe une mthode itrative qui permet datteindre cette prcision voulue. La mthode consiste choisir une valeur initiale N = 2 . Une premire valuation de lintgrale est ralise et donne une valeur I 1 . Une seconde valuation est alors ralise avec N = 4 et permet dobtenir une seconde valeur I 2 . En gnralisant la mthode, on obtient la valeur I k en estimant la valeur avec k = 2 N .

Etant donn que la mthode de calcul de lintgrale converge, les nombres I k tendent vers la valeur de lintgrale dsire. Cela signifie que les carts E k = I k +1 I k diminuent et tendent vers 0. La mthode de calcul pour atteindre une prcision donne p va donc consister calculer les valeurs I k jusqu' ce que lcart E k correspondant soit infrieur p. Crez un nouveau script "irectp.m" utilisant la fonction "irecta" cre prcdemment. La fonction aura comme paramtres dentre les nombres a, b, et p et comme paramtre de sortie lintgrale I Initialisez N = 8 et Ecart = inf Calculez I en utilisant la mthode des rectangles avec les paramtre a, b et N Utilisez maintenant une structure "while" qui bouclera tant que Ecart est suprieur p

Dans cette boucle : 6.5

Doublez la valeur de N Calculez I s : nouvelle valeur de lintgrale correspondant la nouvelle valeur de N Calculez Ecart : valeur absolue de la diffrence entre I et I s Affectez I s I Affichez sur la mme ligne I et Ecart Utilisez votre script pour calculer I 1 et I 2 avec une prcision de 10 2 et 10 5

d) Affichage format
La commande sprintf permet de crer une chane de caractres contenant des nombres dont laffichage est format. Un affichage format consiste afficher un nombre avec un nombre donn de chiffres avant et aprs la virgule. Dans la fentre de commande tapez les lignes suivantes et analysez le fonctionnement de la commande sprintf

>> S=sprintf(%1.5e et %3.1e',5.21,2*pi) ; >> disp(S)

Modifiez le script "irectf.m" pour que dans la boucle laffichage soit de la forme :

4 8 16 32 64 128 256 512

3.93384e-001 5.41330e-001 6.02082e-001 6.24038e-001 6.31651e-001 6.34386e-001 6.35449e-001 6.35900e-001

2.99634e-001 1.47947e-001 6.07516e-002 2.19557e-002 7.61343e-003 2.73438e-003 1.06338e-003 4.50733e-004

A savoir : Chaque ligne doit comporter laffichage de N, puis de I, puis de lcart. Chaque affichage tant spar des autres par une tabulation (\t) o Le format de N est : 9 chiffres avant la virgule, 0 aprs o Le format de I est : 5 chiffres avant la virgule et 5 aprs o Le format de Ecart est : 0 chiffres avant la virgule et 5 aprs 6.6

Vous aimerez peut-être aussi