Différentiation & Intégration Numérique

20
UNIVERSITE DE BEJAIA ABDERRAHMANE MIRA FACULTE DE LA TECHNOLOGIE DEPARTEMENT D’ELECTRONIQUE Electronique - Automatique Mini Projet Analyse Numérique Différentiation & Intégration Numérique Préparé par: Bouiche Hachemi Boumertit Sofiane Seddar Moussa Copyright 2011

description

Développement d'un programme sous MATLAB de la "Différentiation & Intégration Numérique".

Transcript of Différentiation & Intégration Numérique

Page 1: Différentiation & Intégration Numérique

UNIVERSITE DE BEJAIA – ABDERRAHMANE MIRA

FACULTE DE LA TECHNOLOGIE

DEPARTEMENT D’ELECTRONIQUE

Electronique - Automatique

Mini Projet Analyse Numérique

Différentiation & Intégration Numérique

Préparé par:

Bouiche Hachemi Boumertit Sofiane Seddar Moussa

Copyright – 2011

Page 2: Différentiation & Intégration Numérique

Introduction

L’intégration et la différentiation sont très utiles pour résoudre une grande quantité de

problèmes scientifiques. Beaucoup de ces problèmes sont résolus par des solutions

analytiques mais certains ne peuvent être résolus que par des techniques différentiations ou

d’intégration numérique. De plus, il est souvent nécessaire d’utiliser des données pour estimer

les taux de variation. On doit alors estimer la dérivée.

Page 3: Différentiation & Intégration Numérique

I. Différentiation numérique:

Une fonction f (x) continûment dérivable est connue par quelques-uns de ses points de

colocation. Comment fait-on pour évaluer la dérivée première f ′(x) et/ou les dérivées d’ordre

supérieur ? Ce besoin de différentiation numérique s’exprime dans de nombreux domaines.

Exemple :

La tension aux bornes d’un condensateur qui se décharge est mesurée à des intervalles

réguliers, donnant une suite de valeurs . Pour estimer le courant de

décharge , il faut dériver une fonction dont on ne connaît que les points de colocation.

Comment procéder ?

La solution consiste ici à faire passer par les points de colocation un polynôme

d’interpolation, puis à dériver celui-ci le nombre de fois nécessaire. On peut ainsi estimer la

dérivée aux points de colocation ou entre deux.

I.1. Estimation de la dérivée première :

Le cas le plus simple est celui où il n’y a que deux points de colocation : et

( , .Par ces points passe la droite d’équation

L’estimation de la dérivée première équivaut donc au coefficient directeur de la droite

Notons qu’elle prend la même valeur en tout point de l’intervalle [ ]. Par ailleurs, la

dérivée seconde et toutes les dérivées supérieures sont nulles.

I.2. Estimation de l’erreur : Pour savoir quelle confiance accorder à l’expression

ci-dessus, il faut connaître l’erreur. Du chapitre précédent, nous tirons :

Supposons dorénavant que les abscisses des points de colocation sont régulièrement réparties,

et appelons ,écartement ou pas entre deux abscisses voisines.

On peut alors montrer que

L’erreur varie donc comme . On dira qu’elle est d’ordre n et on écrira

fréquemment de façon abrégée .

Page 4: Différentiation & Intégration Numérique

Avec deux points de colocation, l’expression de la dérivée première d’ordre 1 peut s’écrire de

deux façons différentes. Soit on estime la pente de la droite qui passe par le point de

colocation suivant (différence avant), soit on prend la pente de la droite

passant par le point qui précède (différence arrière).

Avec trois points de colocation, le polynôme d’interpolation devient une parabole. A partir de

cette dernière, on peut évaluer la dérivée première en chacun des trois points

Pour les différences d’ordre 2, l’erreur varie asymptotiquement comme alors que pour les

différences d’ordre un, elle varie comme h. Pour une fonction f suffisamment lisse et pour un

petit pas h donné, la différence d’ordre 2 donnera généralement une erreur plus petite.

Trois raisons nous poussent à préférer la différence centrée d’ordre 2 :

1. D’abord, son terme d’erreur est en et non en (h)

2. Un calcul plus détaillé montre ensuite que parmi les trois estimateurs d’ordre 2,c’est la

différence centrée qui possède en moyenne l’erreur la plus petite.

3. Enfin, et c’est là un point crucial : la différence centrée d’ordre 2 ne nécessite que la

connaissance de deux points de colocation. En effet, la valeur du point en lequel on

estime la dérivée n’entre pas en jeu. Le coût en calcul est donc identique à celui d’une

différence d’ordre 1, pour un résultat meilleur.

Page 5: Différentiation & Intégration Numérique

Fig.1. Illustration des dérivées avant et arrière d’ordre 1, et de la dérivée centrée d’ordre 2

au point d’abscisse x = .

Exemple : L’estimation de la dérivée de f (x) = 1/x en x = 2 par différentes méthodes donne

les résultats ci-dessous. On constate que pour h suffisamment petit, réduire le pas d’un facteur

10 revient à diminuer l’erreur d’un facteur 10 pour la méthode d’ordre 1 et d’un facteur 100

pour la méthode de d’ordre 2. En revanche, pour des grands pas h, la méthode d’ordre 1 est

plus proche de la réalité. La différence centrée d’ordre 2 est donc plus intéressante, à

condition que le pas soit suffisamment petit, et pour autant que la fonction f à dériver soit

suffisamment continue

Page 6: Différentiation & Intégration Numérique

I.3. Estimation de la dérivée seconde

La procédure reste la même pour les dérivées secondes, sauf que le polynôme d’interpolation

doit être dérivé deux fois. Comme ce polynôme doit être au minimum de degré 2 (sinon sa

dérivée seconde est nulle), on en déduit qu’il faut au minimum trois points de colocation.

Pour trois points de colocation, on obtient les expressions

A titre de comparaison, la différence centrée d’ordre 4 s’écrit

I.4. Dériver dans la pratique

Si f (x) est donnée par un tableau de valeurs

Si la fonction à dériver est spécifiée par un ensemble de points de colocation (son expression

analytique n’est pas connue) alors le pas est imposé. Le seul degré de liberté dont on dispose

reste le degré du polynôme d’interpolation utilisé pour évaluer la dérivée.

Page 7: Différentiation & Intégration Numérique

Augmenter le degré du polynôme peut sembler intéressant, mais nous avons vu que les

polynômes d’interpolation de degré supérieur à 3 sont rarement recommandables. Par ailleurs,

un tel calcul nécessitera davantage d’opérations de calcul.

Si f (x) est donnée par son expression analytique

La situation est fort différente lorsque l’expression analytique de la fonction à dériver est

connue. En effet les points de colocation peuvent alors être choisis librement et on peut

prendre un pas h aussi petit que souhaité.

On pourrait penser qu’il vaut mieux choisir un pas h très petit pour augmenter la précision du

calcul. C’est souvent vrai. Toutefois, lorsque h devient trop petit, le résultat est entaché par

des erreurs d’arrondi. En effet, suivant le type de fonction à dériver, il arrivera un moment où

l’écart f (x +h)− f (x) sera inférieur à la précision du calculateur. Le résultat sera alors erroné.

Il existe donc une valeur optimale du pas qui dépendra de la fonction f (x) à dériver et de la

précision du calculateur. Pour une calculette de poche, la valeur relative du pas se situera

typiquement entre h/x = et h/x = . Pour un calcul en double précision, le pas relatif

pourra parfois descendre jusqu’à h/x = .

Fig.2. Dérivation de la fonction f (x) = sin(x) avec un léger bruit additif (à droite) et sans

bruit additif (à gauche).

Page 8: Différentiation & Intégration Numérique

La rangée de haut représente la fonction f (x) avec ses points de colocation. La rangée de bas

représente la fonction différenciée, avec la dérivée avant d’ordre 1, la dérivée arrière d’ordre 1

(trait fin) et la dérivée centrée d’ordre 2 (trait épais).

Pour résumer, il est conseillé de

A titre d’exemple, un programme de calcul simplifié de la dérivée par différence centrée

s’écrit en Scilab :

Pour les dérivées d’ordre 1 et 2, les expressions les plus intéressantes sont les

différences centrées d’ordre 2

En général, plus le terme d’erreur est d’ordre élevé, plus le résultat tendra à

être précis. Mais ceci n’est pas toujours vrai lorsque les données sont affectées de

bruit. De fait, les dérivées d’ordre supérieur et les expressions d’ordre supérieur à 2

sont rarement utilisées

function [dydx] = derivee (y,h)

% y : vecteur de valeurs a deriver

% h : pas de derivation

% dydx : difference centree de y(x) ( vecteur colonne )

y=input('introduisez le vecteur y')

h=input('introduisez la valeur de h')

y = y (:);

n = length (y);

dydx = zeros(n ,1);

dydx (1) = y(2) -y (1);

dydx(n) = y(n)-y(n -1);

dydx (2:n -1) = (y (3: n)-y (1:n -2)) / 2;

dydx = dydx / h;

plot(dydx),grid on

Page 9: Différentiation & Intégration Numérique

où [y] est un vecteur d’ordonnées obtenues pour des abscisses espacées de h. Voici la même

fonction, écrite sous une forme plus compacte :

Résultats et représentation graphique du programme, avec :

y=[1 -2 8 4 2 -3] ;

h=0.5 ;

function [dydx] = derivee(y,h)

y=input('Introduisez le vecteur [y]: ')%y : vecteur de valeurs a deriver h=input('Introduisez le pas [h]: ')%h : pas de derivation %dydx : difference centree de y(x) ( vecteur colonne ) n=length(y) y = y (:); % met y en vecteur colonne dydx = [y(2)-y(1);(y(3: n)-y(1:n-2))/2;y(n)-y(n -1)]/ h; plot(dydx);grid on

n =

6

dydx =

-6

7

6

-6

-7

-10

Page 10: Différentiation & Intégration Numérique

II. Intégration numérique

II.1. La méthode des rectangles (point milieu)

Cette formule est obtenue en remplaçant f par une constante ‘égale’ à la valeur de f au milieu

de [a, b] (voir Fig.3, à gauche), ce qui donne :

Le poids est donc = (b – a) et le nœud = (a + b)/2. Si f ([a, b]), l’erreur de

quadrature est :

.

Fig.3. La formule du point milieu (à gauche) ; la formule composite du point milieu (à

droite).

En effet, le développement de Taylor au second ordre de f en c = (a+b)/2 s’´ecrit :

D’ou l’on déduit (2) en intégrant sur et en utilisant le théorème de la moyenne. On en

déduit que (1) est exacte pour les constantes et les fonctions affines (car dans les deux cas f(ξ)

= 0 pour tout ξ ). Le degré d’exactitude de la formule du point milieu est donc égal à

1. Il faut noter que si la longueur de l’intervalle n’est pas suffisamment petite, l’erreur

de quadrature (2) peut être assez importante. On retrouve cet inconvénient dans toutes les

formules d’intégration numérique présentées dans les prochaines sections.

Supposons maintenant qu’on approche l’intégrale I(f) en remplaçant f par son interpolation

polynomiale composite de degré 0 sur , construite sur m sous-intervalles de largeur

H = , avec m ≥ 1 (voir Fig.3, `a droite). En introduisant les nœuds de quadrature

, on obtient la formule composite du point

milieu :

Page 11: Différentiation & Intégration Numérique

Si l’erreur de quadrature est donnée par :

Ou On déduit de (4) que (3) a un degré d’exactitude égal à 1; on peut montrer (4)

en utilisant (2) et la linéarité de l’intégration. En effet, pour – et

La dernière égalité est une conséquence du théorème suivant, qu’on applique en posant

et = 1 pour – .

Ou Même dans ce cas, on a un degré d’exactitude égal à 1. On remarque que si la

longueur des intervalles H n’est pas suffisamment petite, l’erreur de quadrature peut être assez

grande. On retrouve cet inconvénient aussi pour les deux méthodes d’intégration numérique

présentées ci-dessous.

Le code script de la méthode des rectangles :

clear all,clc

format compact

Iexact=4.006994;

a=0;b=2;

fprintf('\n Méthode des rectangles \n');

fprintf('\n n\t \t I\t Pourc. erreur relat.\n');

fprintf('---------------------------------------------\n');

n=1;

v=[];

for k=1:24

n=2*n;

h=(b-a)/n;

i=1:n+1;

x=a+(i-1)*h;

f=sqrt(1+exp(x));

dim=length(x);

y=f;

if size(f)==1

y=diag(ones(dim))*y;

end

Page 12: Différentiation & Intégration Numérique

I=h*sum(y);

V=[v I];

erreur=abs(Iexact-I)/Iexact;

fprintf('%d\t %10.5f\t %10.8f\n',n,I,erreur);

plot(v);grid on

end

Resultats obtenus:

Méthode des rectangles

n I Pourc. erreur relat.

---------------------------------------------

2 6.23888 0.55699883

4 5.10384 0.27373225

8 4.55062 0.13566939

16 4.27761 0.06753522

32 4.14200 0.03369274

64 4.07442 0.01682767

128 4.04069 0.00840918

256 4.02384 0.00420345

512 4.01541 0.00210146

1024 4.01120 0.00105068

2048 4.00910 0.00052535

4096 4.00805 0.00026270

8192 4.00752 0.00013138

16384 4.00726 0.00006572

32768 4.00713 0.00003289

65536 4.00706 0.00001647

131072 4.00703 0.00000826

262144 4.00701 0.00000416

524288 4.00700 0.00000211

1048576 4.00700 0.00000108

2097152 4.00700 0.00000057

4194304 4.00700 0.00000031

8388608 4.00699 0.00000018

16777216 4.00699 0.00000012

D’apres ces resultants, on voit que la valeur converge à n=16777216, avec une erreur :

erreur=0.00000012.

L’allure des résultats est représentée dans la figure suivante :

Page 13: Différentiation & Intégration Numérique

Fig.4. Méthode des rectangles.

II.2. La méthode du trapèze

Cette formule est obtenue en remplaçant f par , son polynôme d’interpolation de Lagrange

de degré 1 aux nœuds et (voir Fig.4, `a gauche). Les nœuds de la formule de

quadrature sont alors , et ses poids

Si l’erreur de quadrature est donnée par :

Ou ξ est un point de l’intervalle d’intégration.

Page 14: Différentiation & Intégration Numérique

Fig.5. Formules du trapèze.

En effet, d’après l’expression de l’erreur d’interpolation, on a :

Comme , le théorème de la moyenne donne :

Pour un d’ou (6). La formule du trapèze a donc un degré d’exactitude égal à 1,

comme celle du point milieu.

Pour obtenir la formule du trapèze composite, on procède comme dans le cas ou : on

remplace par son polynôme composite de Lagrange de degré 1 sur m sous-

intervalles, avec . En introduisant les nœuds de quadrature , pour

, on obtient :

Ou . Chaque terme dans (7) apparaît deux fois, excepté le premier et le

dernier. La formule peut donc s’écrire :

Comme on l’a fait pour (4), on peut montrer que l’erreur de quadrature associée à (8) s’écrit,

si

Page 15: Différentiation & Intégration Numérique

Ou Le degré d’exactitude est à nouveau égal à 1.

Le code script de la méthode du trapèze :

clear all,clc

Iexact=4.006994;

a=0;b=2;

fprintf('\n Méthode Trapézoïdale \n');

fprintf('\n n\t \t I\t Pourc. erreur relat.\n');

fprintf('---------------------------------------------\n');

n=1;

v=[];

for k=1:15

n=2*n;

h=(b-a)/n;

i=1:n+1;

x=a+(i-1)*h;

f=sqrt(1+exp(x));

I=(sum(f)-(f(1)+f(length(f)))/2)*h;

v=[v I];

erreur=abs(Iexact-I)/Iexact;

fprintf('%d\t %10.5f\t %10.8f\n',n,I,erreur);

plot(v);grid on

end

Resultats obtenus:

Méthode Trapézoïdale

n I Pourc. erreur relat.

---------------------------------------------

2 4.08358 0.01911429

4 4.02619 0.00478998

8 4.01180 0.00119825

16 4.00819 0.00029965

32 4.00729 0.00007496

64 4.00707 0.00001878

128 4.00701 0.00000474

256 4.00700 0.00000123

512 4.00700 0.00000035

1024 4.00699 0.00000013

2048 4.00699 0.00000007

4096 4.00699 0.00000006

8192 4.00699 0.00000006

16384 4.00699 0.00000006

32768 4.00699 0.00000006

Page 16: Différentiation & Intégration Numérique

D’apres ces resultants, on voit que la valeur converge à n=32768, avec une erreur :

erreur=0.00000006.

L’allure des résultats est représentée dans la figure suivante :

Fig.6. Méthode du trapèze.

II.3. La méthode de Cavalieri-Simpson

La formule de Cavalieri-Simpson peut être obtenue en remplaçant par son

polynôme d’interpolation de degré 2 aux nœuds (voir Fig.

4, à droite). Les poids sont donnés par , et la

formule s’écrit :

On peut montrer que, si l’erreur de quadrature est :

Page 17: Différentiation & Intégration Numérique

Fig.5. Formules Cavalieri-Simpson.

Ou . On en d´eduit que la formule (9) a un degré d’exactitude égal à 3.

En remplaçant f par son polynôme composite de degré 2 sur on obtient la formule

composite correspondant à (9). On introduit les nœuds de quadrature

et on pose , avec . On a alors :

Ou . Si , l’erreur de quadrature associée à

(11) est :

Ou ; le degré d’exactitude de la formule est 3.

Le code script de la méthode Cavalieri-Simpson :

clear all,clc

Iexact=4.006994;

a=0;b=2;

fprintf('\n Méthode de Simpson \n');

fprintf('\n n\t \t I\t Pourc. erreur relat.\n');

fprintf('---------------------------------------------\n');

n=1;

v=[];

for k=1:10

n=2*n;

h=(b-a)/n;

i=1:n+1;

x=a+(i-1)*h;

f=sqrt(1+exp(x));

I=h/3*(f(1)+4*sum(f(2:2:n))+f(n+1));

if n>2

Page 18: Différentiation & Intégration Numérique

I=I+h/3*2*sum(f(3:2:n));

end

v=[v I];

erreur=abs(Iexact-I)/Iexact;

fprintf('%d\t %10.5f\t %10.8f\n',n,I,erreur);

plot(v);grid on

end

Resultats obtenus:

Méthode de Simpson

n I Pourc. erreur relat.

---------------------------------------------

2 4.00791 0.00022935

4 4.00705 0.00001521

8 4.00700 0.00000101

16 4.00699 0.00000012

32 4.00699 0.00000006

64 4.00699 0.00000006

128 4.00699 0.00000006

256 4.00699 0.00000006

512 4.00699 0.00000006

1024 4.00699 0.00000006

D’apres ces resultants, on voit que la valeur converge à n=1024, avec une erreur :

erreur=0.00000006.

L’allure des résultats est représentée dans la figure suivante :

Fig.7. Méthode de Cavalieri-Simpson.

Page 19: Différentiation & Intégration Numérique

Conclusion

D’après l’étude effectuée dans notre travail, les résultats obtenus durant nos manipulations, on

a constaté que la différentiation détermine la vitesse à laquelle une courbe change en un

certain point de l’équation et cela revient à calculer la dérivée y’. Tandis que l’intégration

nous mène à calculer l’aire (la surface sous la courbe et cela revient à calculer l’intégrale de

f(x), d’après les trois méthodes étudiées (Rectangles, Trapèze et Simpson), On voit bien que

l'erreur absolue obtenue par la méthode de Simpson est beaucoup plus faible que celles

obtenues par les deux autres. Ceci confirme la règle: plus l'ordre de la méthode est grand, plus

la précision est bonne.

Page 20: Différentiation & Intégration Numérique

Références

Cours d’Analyse Numérique.

Applied Numerical Methods Using MATLAB.

Méthodes Numériques «Algorithmes, analyse et application ».

Numerical Methods in Engineering with MATLAB.