Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration...

28
Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1 / 28

Transcript of Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration...

Page 1: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Informatique - CN2Intégration numérique

D.Malka

MPSI 2018-2019

D.Malka Informatique - CN2 MPSI 2018-2019 1 / 28

Page 2: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Sommaire

Sommaire

1 Position du problème

2 Méthode des rectangles

3 Méthode des trapèzes

4 Fonction prédéfinie du module scipy.integrate

D.Malka Informatique - CN2 MPSI 2018-2019 2 / 28

Page 3: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Position du problème

Sommaire

1 Position du problème

2 Méthode des rectangles

3 Méthode des trapèzes

4 Fonction prédéfinie du module scipy.integrate

D.Malka Informatique - CN2 MPSI 2018-2019 3 / 28

Page 4: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Position du problème Pourquoi une intégration numérique?

Intégration d’une fonction sur un intervalle

Le but de ce chapitre est d’aborder le calcul numérique de l’intégrale d’une fonction fsur un domaine fini délimité par ses bornes a et b :∫ b

af (x)dx

Pourquoi une intégration numérique?I calcul analytique fastidieuxI expression exacte coûteuseI l’intégrale n’admet pas d’expression analytique

Exemple d’intégrale non exprimable analytiquement

Erf(x) =2√π

=∫ x

0e−u2

du

D.Malka Informatique - CN2 MPSI 2018-2019 4 / 28

Page 5: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Position du problème Principe d’une intégration numérique

Principe d’une intégration numérique

Il existe différentes méthodes d’intégration numériques (Newton-Cotes,Legendre-Gauss, Monte-Carlo. . .). Nous nous intéressons à deux avatars de laméthode de Newton-Cotes composite : la méthode des rectangles et la méthode destrapèzes.

Principe de la méthode de Newton-Cotes composites

Soit J =∫ b

a f (x)dx .On calcule une valeur approchée J̃ de J en remplaçant la fonction f par uneapproximation f̃ puis on intègre cette fonction :

J ≈ J̃∫ b

af̃ (x)dx

D.Malka Informatique - CN2 MPSI 2018-2019 5 / 28

Page 6: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des rectangles

Sommaire

1 Position du problème

2 Méthode des rectangles

3 Méthode des trapèzes

4 Fonction prédéfinie du module scipy.integrate

D.Malka Informatique - CN2 MPSI 2018-2019 6 / 28

Page 7: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des rectangles Principe

Principe de la méthode des rectangles

On décompose l’intervalle [a,b] en N intervalles Ik de longueur h : [a,a + h],[a + h,a + 2h], . . ., [a + kh,a + (k + 1)h], . . . [b−h,b].

Évidemment : Nh = b−a soit h =b−a

N.

h est appelé le pas d’intégration de l’algorithme.

Sur chaque intervalle Ik = [a + kh,a + (k + 1)h], on approche la fonction f par la fonctionf̃k : x → f (xk ) où xk = a + kh.

D.Malka Informatique - CN2 MPSI 2018-2019 7 / 28

Page 8: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des rectangles Principe

Principe de la méthode des rectangles

Géométriquement :

f(x)

xxk

f(xk)Aire Ai=f(xk)(xk+1-xk)

xk+1a b

Cf

hOn approche l’aire sous la courbe représentative de f par la somme des aires desrectangles de hauteur f (xk ) et de largeur (xk+1− xk ).

D.Malka Informatique - CN2 MPSI 2018-2019 8 / 28

Page 9: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des rectangles Principe

Principe de la méthode des rectangles

Analytiquement, sur l’intervalle [a,b], on obtient :

J =∫ b

af (x)dx =

N−1

∑k=0

∫ xk+1

xk

f (x)dx

⇒ J̃ =N−1

∑k=0

∫ xk+1

xk

f̃k (x)dx

⇔ J̃ =N−1

∑k=0

∫ xk+1

xk

f (xk )dx

⇔ J̃ =N−1

∑k=0

f (xk )(xk+1− xk )

avec xk = a + kh et xk+1 = a + (k + 1)h :

J̃ =N−1

∑k=0

f (xk )h avec xk = a + kh

D.Malka Informatique - CN2 MPSI 2018-2019 9 / 28

Page 10: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des rectangles Implémentation

Implémentation en Python

� �1 def rect_integ(f,a,b,n):2 """3 Approximate the integral of function f over [a,b] using the

rectangle method.4 h=(b-a)/n is the integration step.5 """6 h=(b-a)/n7 J=08 for k in range(n):9 J=J+f(a+k*h)*h

10 return J� �

D.Malka Informatique - CN2 MPSI 2018-2019 10 / 28

Page 11: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des rectangles Implémentation

Essai

Essai sur J =∫ 1

0 4√

(1− x2)dx = π.

CODE PYTHON

In [1]: rect_integ(lambda x:4*sqrt(1-x**2),0,1,10)# h=0.1Out[1]: 3.30451832625

In [2]: rect_integ(lambda x:4*sqrt(1-x**2),0,1,10000)# h=0.0001Out[2]: 3.14179147761

L’erreur e = |J̃− J| semble diminuer avec la valeur du pas h.

D.Malka Informatique - CN2 MPSI 2018-2019 11 / 28

Page 12: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des rectangles Majoration de l’erreur

Majoration de l’erreur

Erreur sur l’intégrale calculée

Soit e = |J̃− J| l’erreur sur le calcul de l’intégrale J sur [a,b].

e <12

Sup[a,b]|f ′(ξ)|h

L’erreur commise au pire sur J est de l’ordre du pas d’intégration h.

La méthode des rectangles est une méthode d’ordre 1.

D.Malka Informatique - CN2 MPSI 2018-2019 12 / 28

Page 13: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des rectangles Majoration de l’erreur

Majoration de l’erreur

Preuve - Erreur d’intégration sur Ik = [xk ,xk+1].

I Soit ek =∫ xk+1

xkf (xk )− f (x)dx l’erreur d’intégration sur Ik = [xk ,xk+1].

I En supposant f C 1 sur [a,b] donc sur Ik , d’après le théorème des accroissementsfinis :

∀x ∈ Ik ,∃ξ ∈ Ik tel que f (x) = f ′(ξ)(x− xk ) d’où :

I ek =∫ xk+1

xkf ′(ξ)(x− xk )dx

I ⇒ |ek | = |∫ xk+1

xkf ′(ξ)(x− xk )dx |

I ⇒ |ek | ≤∫ xk+1

xk|f ′(ξ)(x− xk )|dx

I ⇒ |ek | ≤ SupIk |f′(ξ)|

∫ xk+1xk|(x− xk )|dx

I ⇔ |ek | ≤ SupIk |f′(ξ)| (xk+1− xk )2

2

I ⇔ |ek | ≤ SupIk |f′(ξ)|h

2

2

D.Malka Informatique - CN2 MPSI 2018-2019 13 / 28

Page 14: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des rectangles Majoration de l’erreur

Majoration de l’erreur

Preuve - Erreur d’intégration sur I = [a,b].

I Soit e = |J̃− J| l’erreur d’intégration sur Ik = [a,b].I e = ∑

N−1k=0 ek

I ⇒ |e| = |∑N−1k=0 |ek |

I Or, on a montré que : |ek | ≤ SupIk |f′(ξ)|h

2

2donc :

I e ≤ ∑N−1k=0 SupIk |f

′(ξ)|h2

2

I ⇒ e ≤ ∑N−1k=0 Sup[a,b]|f ′(ξ)|h

2

2

I e ≤ NSup[a,b]|f ′(ξ)|h2

2

I Or N =(b−a)

h, d’où :

I e ≤ Sup[a,b]|f ′(ξ)| (b−a)2

h

Au pire, l’erreur commise sur J̃ est de l’ordre du pas d’intégration h.D.Malka Informatique - CN2 MPSI 2018-2019 14 / 28

Page 15: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des rectangles Complexité (vs efficacité)

Complexité (vs efficacité)

� �1 def rect_integ(f,a,b,n):2 """3 Approximate the integral of function f over [a,b] using the

rectangle method.4 h=(b-a)/n is the integration step.5 """6 h=(b-a)/n7 J=08 for k in range(n):9 J=J+f(a+k*h)*h

10 return J� �Unité de mesure : appel de la fonction f .

Complexité linéaire avec n : O(n) = O

(1h

).

Compromis efficacité/précision : quand h↗, la précision augmente mais le nombre decalculs également.

D.Malka Informatique - CN2 MPSI 2018-2019 15 / 28

Page 16: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des trapèzes

Sommaire

1 Position du problème

2 Méthode des rectangles

3 Méthode des trapèzes

4 Fonction prédéfinie du module scipy.integrate

D.Malka Informatique - CN2 MPSI 2018-2019 16 / 28

Page 17: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des trapèzes Principe

Principe de la méthode des trapèzes

On procède de manière analogue à la méthode des rectangles.

On décompose l’intervalle [a,b] en N intervalles Ik de longueur h : [a,a + h],[a + h,a + 2h], . . ., [a + kh,a + (k + 1)h], . . . [b−h,b].

Évidemment : Nh = b−a soit h =b−a

N.

h est appelé le pas d’intégration de l’algorithme.

C’est le choix de la fonction f̃k approchant f sur Ik = [a+kh,a+(k +1)h] qui est différent :

f̃k : x → f (xk+1)− f (xk )xk+1− xk

(x− xk ) + f (xk ) avec xk = a + kh

D.Malka Informatique - CN2 MPSI 2018-2019 17 / 28

Page 18: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des trapèzes Principe

Principe de la méthode des trapèzes

Géométriquement :

f(x)

xxk

f(xk)

Aire Ak=f(xk)(xk+1-xk)+1/2(f(xk+1)-f(xk))(xk+1-xk)=1/2(f(xk+1)+f(xk))(xk+1-xk)

x k+1

f(xk+1)

xOn approche l’aire sous la courbe représentative de f par la somme des aires destrapèzes de largeur (xk+1− xk ).

D.Malka Informatique - CN2 MPSI 2018-2019 18 / 28

Page 19: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des trapèzes Principe

Principe de la méthode des trapèzes

Analytiquement, sur l’intervalle [a,b], on obtient :

J =∫ b

af (x)dx =

N−1

∑k=0

∫ xk+1

xk

f (x)dx

⇒ J̃ =N−1

∑k=0

∫ xk+1

xk

f̃k (x)dx

En intégrant f̃k (x) ou plus simplement en évaluant géométriquement l’aire sous lesegment de droite, on obtient :

⇔ J̃ =N−1

∑k=0

12

(f (xk+1) + f (xk ))(xk+1− xk )

avec xk = a + kh et xk+1 = a + (k + 1)h :

J̃ =12

N−1

∑k=0

(f (a + (k + 1)h) + f (a + kh))h

D.Malka Informatique - CN2 MPSI 2018-2019 19 / 28

Page 20: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des trapèzes Implémentation

Implémentation en Python

� �1 def trap_integ(f,a,b,n):2 """3 Approximate the integral of function f over [a,b] using the

trapezoidal method.4 h=(b-a)/n is the integration step.5 """6 h=(b-a)/n7 J=08 for k in range(n):9 J=J+(f(a+(k+1)*h)+f(a+k*h))*h

10 J=1/2*J11 return J� �

D.Malka Informatique - CN2 MPSI 2018-2019 20 / 28

Page 21: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des trapèzes Implémentation

Essai

Essai sur J =∫ 1

0 4√

(1− x2)dx = π.

CODE PYTHON

In [3]: trap_integ(lambda x:4*sqrt(1-x**2),0,1,10)# h=0.1Out[3]: 3.14057361483

In [4]: trap_integ(lambda x:4*sqrt(1-x**2),0,1,10000)# h=0.0001Out[4]: 3.14159147761

L’erreur e = |J̃− J| semble diminuer avec la valeur du pas h.

D.Malka Informatique - CN2 MPSI 2018-2019 21 / 28

Page 22: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des trapèzes Majoration de l’erreur

Majoration de l’erreur

Erreur sur l’intégrale calculée

Soit e = |J̃− J| l’erreur sur le calcul de l’intégrale J sur [a,b].

e ≤ 112

Sup[a,b]|f ′′(ξ)|h2

L’erreur commise au pire sur l’évaluation de J est de l’ordre du carré du pasd’intégration h.

La méthode des trapèzes est une méthode d’ordre 2.

D.Malka Informatique - CN2 MPSI 2018-2019 22 / 28

Page 23: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des trapèzes Majoration de l’erreur

Majoration de l’erreur

Théorème de Taylor-LagrangeSoit f une fonction définie sur un intervalle [u,v ] de R telle que :I ∀ entier naturel k ≤ n, f (n) existe et est continue sur [u,v ] ;I ∀ entier naturel k ≤ n, f (n+1) existe sur ]u,v [.

Alors, ∃ξ ∈ [u,v ] tel que :

f (u) = f (v ) + f ′(u)(v−u) +12

f ′′(u)(v−u)2 + · · ·+ 1n!

f (n)(u)(v−u)n +f (n+1)(ξ)(n + 1)!

(v−u)n+1

D.Malka Informatique - CN2 MPSI 2018-2019 23 / 28

Page 24: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des trapèzes Majoration de l’erreur

Majoration de l’erreur

Preuve - Erreur d’intégration sur Ik = [xk ,xk+1].

I Soit ek =∫ xk+1

xk

12

(f (xk+1− f (xk )))(xk+1− xk )− f (x)dx l’erreur d’intégration sur

Ik = [xk ,xk+1].I On suppose f C 2 sur [a,b] donc sur Ik quelque soit k .I En utilisant le développement de Taylor-Lagrange à l’ordre 2 sur [xk ,x ], x ≤ xk+1 :

f (x) = f (xk ) + f ′(xk )(x− xk ) +12

f ′′(ξ)(x− xk )2

I Après intégration et majoration, il vient :

|ek | ≤1

12SupIk |f

′′(ξ)|h3

I Puis, on applique l’inégalité triangulaire à e = ∑N−1k=0 ek :

|e| ≤N−1

∑k=0|ek |

I Ce qui donne : |e| ≤ 112

Sup[a,b]|f ′′(ξ)|h2

D.Malka Informatique - CN2 MPSI 2018-2019 24 / 28

Page 25: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des trapèzes Complexité (vs efficacité)

Complexité (vs efficacité)

� �1 def trap_integ(f,a,b,n):2 """3 Approximate the integral of function f over [a,b] using the

trapezoidal method.4 h=(b-a)/n is the integration step.5 """6 h=(b-a)/n7 J=08 for k in range(n):9 J=J+(f(a+(k+1)*h)+f(a+k*h))*h

10 J=1/2*J11 return J� �Unité de mesure : appel de la fonction f .

Complexité linéaire avec n : O(n) = O

(1h

).

Compromis efficacité/précision : quand h↗, la précision augmente mais le nombre decalculs également.

D.Malka Informatique - CN2 MPSI 2018-2019 25 / 28

Page 26: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Méthode des trapèzes Méthode des trapèzes vs méthode des rectangles

Méthode des trapèzes vs méthode des rectangles

Essai sur J =∫ 1

0 4√

(1− x2)dx = π.

CODE PYTHON

In [5]: rect_integ(lambda x:4*sqrt(1-x**2),0,1,10)# h=0.1Out[5]: 3.30451832625

In [6]: trap_integ(lambda x:4*sqrt(1-x**2),0,1,10)# h=0.1Out[6]: 3.14057361483

Méthode Complexité Erreur

Rectangles O

(1h

)∼ h

Trapèzes O

(1h

)∼ h2

A complexité égale, la méthode des trapèzes fournit une approximation de l’intégralenettement plus précise. En pratique, on préfère utiliser une méthode d’approximationd’ordre supérieur plutôt que diminuer le pas.

D.Malka Informatique - CN2 MPSI 2018-2019 26 / 28

Page 27: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Fonction prédéfinie du module scipy.integrate

Sommaire

1 Position du problème

2 Méthode des rectangles

3 Méthode des trapèzes

4 Fonction prédéfinie du module scipy.integrate

D.Malka Informatique - CN2 MPSI 2018-2019 27 / 28

Page 28: Informatique - CN2 - Intégration numérique · 2019-03-08 · Informatique - CN2 Intégration numérique D.Malka MPSI 2018-2019 D.Malka Informatique - CN2 MPSI 2018-2019 1/28

Fonction prédéfinie du module scipy.integrate

Fonctions prédéfinies du module scipy.integrate

Fonction quad. Utilise un algorithme à pas adaptatif écrit en langage FORTRAN.

Essai sur J =∫ 1

0 4√

(1− x2)dx = π.

CODE PYTHON

In [7]: trap_integ(lambda x:4*sqrt(1-x**2),0,1,1e8)# h=1e-8Out[7]: 3.14159265355

In [8]: scipy.integrate.quad(lambda x:4*sqrt(1-x**2),0,1)# h variableOut[8]: (3.1415926535897922, 3.533564552071766e-10)

On constate aussi que quad est nettement plus rapide que trap_integ !

En pratique, on utilisera les fonctions prédéfinies du module scipy.integrate plutôtque des fonctions implémentées par nos soins.

D.Malka Informatique - CN2 MPSI 2018-2019 28 / 28