Вы находитесь на странице: 1из 5

Méthode d’Azkour ………………………………………………………………………Page 1 sur 5

E-mail :azkour88@hotmail.fr / Tél : 0640 67 60 63

Méthode d’Azkour

1. But :
Le but de cette méthode est de calculer une valeur approchée de l’intégrale, sur
un intervalle [ ], d’une fonction continue , en remplaçant les arcs de courbe
(MiMi+1) par des arcs d’ellipse interpolant les arcs de courbe.

2. Schéma de base :
:ae :c

:be :d

Y
Mi+1(xi+1 ,yi+1)
y Ni (E) X
Pi

(C)
β

Mi(xi,yi)

xi mi xi+1

 (E) est l’arc d’ellipse passant par les points M i , Mi+1 et Pi avec :
 Ni est le point d’intersection de l’arc de courbe (MiMi+1) et la droite
d’équation x = mi avec mi = (xi + xi+1) / 2.
 Pi est la projection orthogonale de Ni sur Y.
Méthode d’Azkour ………………………………………………………………………Page 2 sur 5
E-mail :azkour88@hotmail.fr / Tél : 0640 67 60 63

 ae et be sont les deux paramètres de l’ellipse.


3. Démonstration :
3.1. Calcul des paramètres ae et be de l’ellipse :

Par Pythagore, on a :
(2ae) 2 ₌ (xi+1 ₋ xi) 2₊ (f(xi+1) ₋ f(xi))2
En posant : xi+1 ₋ xi ₌ h ₌ (b ₋ a) ⁄ n avec n étant le nombre des sous-intervalles
obtenus par subdivision régulière de l’intervalle [ ].
On obtient alors : ae ₌ (1/2)×[ h2₊ (f(xi+1) ₋ f(xi))2]1/2.
Par Pythagore, on a aussi : d2 ₌ be2 ₊ c2
C'est-à-dire : be ₌ (d2 ₋ c2)1/2 avec :
d ₌ f(mi) ₋ (f(xi) ₊ f(xi+1)) ⁄ 2.
En remarquant que α ₌ β, on peut écrire :
sinβ ₌ c ⁄ d ₌ sinα ₌ (f(xi+1) ₋ f(xi)) ⁄ 2ae
Cela implique que : c ₌ d×(f(xi+1) ₋ f(xi)) ⁄ 2ae
Donc : be ₌ d×{ 1 ₋ [(f(xi+1) ₋ f(xi)) ⁄ 2ae]2}1/2
C'est-à-dire :
be ₌ [ f(mi) ₋ (f(xi) ₊ f(xi+1)) ⁄ 2 ]×h×[ h2 ₊ (f(xi+1) ₋ f(xi))2]-1/2.

3.2. Calcul approché de: ?

Soit : s ₌ Sellipse ⁄ 2 ₌ (π×ae×be) ⁄ 2 ₌(π×h ⁄ 4)×[f(mi) ₋ (f(xi) ₊ f(xi+1)) ⁄ 2]

Donc: ×

C’est-à-dire :

× +( )×[ ₋ ]

= × ₋ × )
= ×( ₋ )+
(1 - )× × +( × ). (‫)٭‬
Méthode d’Azkour ………………………………………………………………………Page 3 sur 5
E-mail :azkour88@hotmail.fr / Tél : 0640 67 60 63

3.3. Formule d’approximation d’Azkour :


En faisant la sommation de (‫ )٭‬pour i variant de 0 à n – 1 avec : x0 = a et
xn = b, on obtient la formule d’approximation d’Azkour définie comme
suit :

)× ×[ ]+ × ×

Remarque :

×[ ] = Strapèzes = Tn : surface des n trapèzes.

× = Srectangles = Rn : surface des n rectangles par la méthode


du point médian.

D’où : An = (1‒ )×Tn+ ( )×Rn


4. Calcul de l’erreur théorique maximale :
Soit ei(h) l’erreur commise sur [xi ,xi+1]. Par suite on aura selon la formule
d’approximation d’Azkour :

ei(h) = (1 ‒ )× × +( × )₋

× -( × × +( × )₋

[ × ₋ ]₋( × × +( × )=

[ × ₋ ]₋( ×

× +( × )+(

₋( =[ × ₋ ]₋( ×[ × ₋

]+( [ )₋ ]=(1₋ )×[

× ₋ ]+( [( ))₋ ].
Méthode d’Azkour ………………………………………………………………………Page 4 sur 5
E-mail :azkour88@hotmail.fr / Tél : 0640 67 60 63

Remarque :

× ₋ = ei/Trapèzes: erreur commise dans l’intervalle

[xi,xi+1] par la méthode des trapèzes.


( )) ₋ ] = ei/Point médian : erreur commise dans

l’intervalle [xi,xi+1] par la méthode des rectangles (méthode du point


médian).

On suppose f de classe C2 sur l’intervalle [ ].

On sait que :

ei/Trapèzes| (1/12)h3 M1 avec M1= sup| f "(ui)| , ui ∈ [xi,xi+1]

|ei/Point médian| (1/24)h3 M2 avec M2= sup| f "(vi)| ,vi∈ [xi,xi+1]

En posant : M1= M2= sup| f "(x)|, x ∈ [ ]

On obtient :

|e(h)| [(8−π)/8][(b−a)3/12n2]×Sup│f ''(x)│, x∈ [ ]

5. Conclusion:
La formule d’approximation d’Azkour qui permet de donner une
valeur approchée de l’intégrale d’une fonction sur un
intervalle [ ] est une formule qui est plus précise que la
formule d’approximation par la méthode des trapèzes et qui est
facilement programmable, et voici un programme en C++ qui a

été établi pour calculer une approximation de basée sur la

méthode démontrée ci-dessus :


Méthode d’Azkour ………………………………………………………………………Page 5 sur 5
E-mail :azkour88@hotmail.fr / Tél : 0640 67 60 63

#include<stdio.h>
#include<math.h>
#include<conio.h>
float f(float x){
return 1/x;}
int main()
{
double A,pi=3.141592654,h,i,som=0,som2=0;
float a,b,n;
printf("Entrer a :");
scanf("%f",&a);
printf("Entrer b :");
scanf("%f",&b);
printf ("Entrer n :");
scanf("%f",&n);
h=(b-a)/n ;
for(i=1;i<=n-1;i++)
som+=f(a+i*h);
for(i=0; i<=n-1;i++)
som2+=f(a+i*h+h/2);
A=(1-pi/4)*h*((f(a)+f(b))/2 +som)+ pi/4*h*som2;
printf("Le resultat est : %f ",A);
getch();}

Exemple : f(x) = , a = 1 , b = 2 , n = 1000000

A= 0.693147 ≈ = ln(2) = 0.69314718

avec une erreur : |e| ≤ 1.012168197×10−13

fin

Вам также может понравиться