[PDF] Calcul numérique d'intégrale [nr03] - Exercice - Unisciel



Previous PDF Next PDF


























[PDF] commentaire de texte seconde exemple

[PDF] exercices corrigés communication professionnelle

[PDF] exercices inférences collège

[PDF] exercices lecture implicite cm2

[PDF] le journal comptable pdf

[PDF] le livre journal en comptabilité

[PDF] facture doit et avoir exercice corrigé maroc

[PDF] exercices corrigés de facturation pdf

[PDF] exercice corrigé journal comptable marocain

[PDF] exercice de concentration mentale gratuit

[PDF] jeux concentration

[PDF] exercice passé composé cm1 a imprimer avec correct

[PDF] evaluation grammaire cm1 pdf

[PDF] exercice de conjugaison ce2

[PDF] exercice de conjugaison ce1

Calcul numerique d'integrale [nr03] - Exercice

Karine Zampieri, Stephane Riviere

UniscielalgoprogVersion 22 mai 2018

Table des matieres

1 Calcul numerique d'integrale / pgintegr

2

1.1 Integration numerique

2

1.2 Methodes des rectangles et trapezes

3

1.3 Methode de Simpson

5

1.4 Convergence des methodes

6 C++ - Calcul numerique d'integrale (TP)Mots-ClesNumerique RequisStructures de base, Algorithmes parametres, Structures repetitives, Schema ite- ratif

Diculte• ◦ ◦(2 h 30)Objectif

Cet exercice etudie quelques methodes d'approximation classiques d'integrales (methode des rectangles, methode des trapezes, methode deSimpson) et compare la vitesse de convergence de la methode des trapezes et deSimpson. 1 Unisciel algoprog { Calcul numerique d'integrale [nr03]2

1 Calcul numerique d'integrale / pgintegr

1.1 Integration numerique

L'integrale

?b afd'une fonctionfpeut ^etre vue comme l'aire (algebrique) de la partie du plan entreaetbcomprise entre l'axe des abscisses et la courbe def. On approxime le calcul de cette surface en divisant l'intervalle[a,b]ennsous-intervalles [xj,xj+1]de m^eme longueurh= (b-a)/n(doncxj=a+j h) et en approximant l'integrale?xj+1x jfpar une surfaceδ(j).

L'integrale de la fonction est alors :

b af=n-1? j=0δ(j)Soitle typeFonctioncomme etant (un pointeur d')une fonction ayant un parametre de reel et retournant un reel. Ecrivez une fonctionintegraleExacte(F,a,b)qui calcule et renvoie l'integrale exacte en utilisant laFonctionprimitiveFdef: b af=F(b)-F(a) Ecrivez une fonctionf(x)qui servira de test (calculez et retournez le cosinus dexpar exemple) ainsi qu'une fonctionprimF(x)qui calcule et renvoie une primitive exacteFdef (la primitive du cosinus est le sinus).Outil C++ Les fonctions cosinuscos(x)et sinussin(x)sont denies dans la bibliotheque. Ecrivez une proceduresaisirLimites(a,b)qui saisit des limites d'integration dansa(reel) et dansb(reel) en s'assurant quea< b . Achez l'invite :Limitesd "intégration? Ecrivez une fonctionsaisirIntervalles()qui renvoie un entier saisi par l'utilisateur, entier qui represente un nombre d'intervalles. La fonction doit s'assurer que cet entier est≥1.

Achez l'invite :Nombred "intervalles?

Unisciel algoprog { Calcul numerique d'integrale [nr03]3 Ecrivez une proceduretest_exactequi saisit les limites d'integration puis calcule et ache l'integrale exacte.Testez. Exemple d'execution :

Limites

d int gration ? -0.1 0.7

Integrale

exacte : 0.7440511038

1.2 Methodes des rectangles et trapezes

Les methodes des rectangles et des trapezes approxime l'aireδ(i)de la fonction dans l'intervalle[xj,xj+1]par : •le rectangle gauche s'appuyant surfenxj, soitδ(j) =f(xj)×h •le rectangle droit s'appuyant surfenxj+1, soitδ(j) =f(xj+1)×h •le trapeze s'appuyant surfenxjetxj+1, soitδ(j) =12 (f(xj+f(xj+1))×h Les sommes correspondantes donnent le calcul approche de l'integrale. Ecrivez une fonctionintegraleRectangleG(f,a,b,n)qui calcule et renvoie l'integrale appro- chee de laFonctionf en subdivisant un intervalle de reels[a,b]ennsous-intervalles et en approximant l'aire par les rectangles gauches. b af=n-1? j=0δ(j) =hn-1? j=0f(xj) =hn-1? j=0f(a+j h) Ecrivez une fonctionintegraleRectangleD(f,a,b,n)qui calcule et renvoie l'integrale appro- chee de laFonctionf en subdivisant un intervalle de reels[a,b]ennsous-intervalles et en approximant l'aire par les rectangles droits. b af=n-1? j=0δ(j) =hn-1? j=0f(xj+1) =hn j=1f(a+j h) Unisciel algoprog { Calcul numerique d'integrale [nr03]4 Ecrivez une fonctionintegraleTrapeze(f,a,b,n)qui calcule et renvoie l'integrale approchee de laFonctionf en subdivisant un intervalle de reels[a,b]ennsous-intervalles et en approximant l'aire par les trapezes. b af=n-1? j=0δ(j) =hn-1? j=012 (f(xj+f(xj+1)) =h( 12 f(x0) +n-1? j=1f(xj) +12 f(xn)) =h( 12 f(a) +n-1? j=1f(a+j h) +12 f(b)) Ecrivez une procedureafficherCalculs(a,b,n)qui ache les resultats des trois methodes en subdivisant un intervalle de reels[a,b]enjsous-intervalles variant de2an. Achez

aussi la valeur exacte de l'integrale comme dans l'extrait d'execution suivant :Limitesd "intégration? -0.1 0.7

Nombre

d intervalles ? 20 ==> 2 sous intervalles

Rectangle

Gauche

: 0.7801362618

Rectangle

Droit : 0.6880714706

Trapeze

: 0.7341038662 ==> 3 sous intervalles

Rectangle

Gauche

: 0.7703249413

Rectangle

Droit : 0.7089484139

Trapeze

: 0.7396366776 ==> 20 sous intervalles

Rectangle

Gauche

: 0.748555134

Rectangle

Droit : 0.7393486549

Trapeze

: 0.7439518944

Calcul

exact

Integrale

exacte : 0.7440511038 Unisciel algoprog { Calcul numerique d'integrale [nr03]5 Ecrivez une proceduretest_recTrapezessaisit les limites d'integration et le nombre d'in- tervalles puis ache les resultats des calculs correspondants.Outil C++ Incluez la bibliothequeet ajoutez en premiere ligne du programme l'instruction l'instruction suivante (an d'obtenir susamment de decimales, ici15) :cout<Pourquoi?

1.3 Methode de Simpson

La methode deSimpsonapproxime la fonctionfdans un sous-intervalle par une para- bole. La formule est la suivante : b af=h6 f(a) +f(b) + 2n-1? j=1f(xj) + 4n-1? j=0f(xj+h/2)) Notez quefest aussi calculee aux points milieux des intervalles dans cette methode. Ecrivez une fonctionintegraleSimpson(f,a,b,n)qui calcule et renvoie l'integrale approchee de laFonctionf en subdivisant un intervalle de reels[a,b]ennsous-intervalles et en approximant l'aire par la methode de Simpson. Ecrivez une procedureafficherCalculs2(a,b,n)qui ache les resultats de la methode des trapezes et de la methode deSimpsonen subdivisant un intervalle de reels[a,b]enj sous-intervalles variant de 2 an, et en passant en parametre a la methode des trapezes le double du nombre d'intervalles pour que la comparaison soit juste. Achez aussi la

valeur exacte de l'integrale comme dans l'extrait d'execution suivant :Limitesd "intégration? -0.2 0.5

Nombre

d intervalles ? 20 ==> 2*2 sous intervalles

Trapeze

: 0.6763634308

Simpson

: 0.6780984155 ==> 3*2 sous intervalles

Trapeze

: 0.6773255595

Simpson

: 0.6780955684 Unisciel algoprog { Calcul numerique d'integrale [nr03]6==> 20*2sous -intervalles

Trapeze

: 0.6780775638

Simpson

: 0.6780948698

Exacte

: 0.6780948694 Ecrivez une proceduretest_simpsonqui saisit les limites d'integration et le nombre d'in-

tervalles puis ache les resultats des calculs correspondants.Testez avec l'extrait d'execution ci-avant, l'integralite de l'exemple d'execution etant

fourni en telechargement ici. @[rsintegrat3.txt]

1.4 Convergence des methodes

Ce probleme compare la vitesse de convergence de la methode des trapezes et deSimp- son. Pour chaque methode, on veut calculer la valeur aεpres et conna^tre le nombre d'itera- tions correspondant, c.-a-d. on veut calculernetint(a,b,n)tel que

Δ =|int(a,b,n)-int(a,b,n-1)|< ε

ouintdesigne l'integrale par la methode des trapezes ou la methode deSimpson. Ecrivez une fonctionnitersTrapeze(a,b,epsilon,integr)qui calcule et restitue dansintegrquotesdbs_dbs15.pdfusesText_21