Calcul intégral - Méthode des rectangles - Méthode d'Euler

Calcul d'intégrales par la méthode des rectangles

[Principe]

On veut calculer $\displaystyle\int_a^b f(t)\ dt$.

Pour cela, on divise le segment [a,b] en n parties égales définissant ainsi une suite $x_0=a < x_1 < \dots <x_n=b$.

Alors $\displaystyle p=\frac{b-a}{n}\ ;\ \int_a^b f(t)\ dt\simeq p\sum_{k=0}^{n-1} f(a+kp)$.

[Python]

Écrire le programme qui prend en paramètres f,a,b et n

L'algorithme revient à calculer une somme avec l'indice k variant de 0 à  n-1

[Amélioration]

Il existe d'autres méthodes : méthode des trapèzes, méthode de Simpson donnant de bien meilleurs résultats et se basant également sur des sommes coefficientées des $f(a+kp)$.

Voir les formules sur le net

Méthode d'Euler

[Principe]

La méthode d'Euler permet d'obtenir une valeur approchée de l'image  d'une fonction en un point (valeur de $F(b)$) lorsque la fonction elle-même n'est pas connue explicitement, mais en connaissant sa valeur en un autre point ($F(a)$) et sa dérivée ($F'(a)$ ou une équation différentielle d'ordre 1 permettant de calculer cette dérivée $F'(a)$ connaissant $a$ et $F(a)$). C'est une méthode numérique élémentaire de résolution d'équations différentielles du premier ordre, de la forme

 $ \forall x\in I$, intervalle de $R$, $ F'(x)=u(x,F(x))$,  $u$ une fonction réelle à deux variables.

Concrètement la méthode d'Euler repose sur trois idées idées :

  • si on connaît $a$ et $F(a)$, on peut calculer $F'(a)=u(a,F(a))$.
  • En confondant la courbe avec sa tangente, on peut obtenir une valeur approchée $F(\beta)\simeq F(\alpha) + (\beta-\alpha)F '(\alpha)$ (approximation affine de la fonction).
  • La réitération du procédé précédent : $F(b)$ s'obtient en $n$ pas :$(x_0=a,y_0=F(a)) \to (x_1,y_1)\to (x_2,y_2)\to\dots (x_n=b,y_n=F(b)$, chaque $y_i$ étant calculé en utilisant la formule précédente.

Au final, on obtient deux suites $i\in[0,n]$ : $pas=\dfrac {b-a}{n}$

  •  $\displaystyle x_i = a + i.pas\qquad ; \qquad y_0=F(a)$ et $y_{i+1} = y_i + (x_{i+1}-x_i)F'(x_i)= y_i + pas.u(x_i, y_i).$

[Python]

Cela revient à calculer deux suites les $(x_i)$ et les $(y_i)$ définies par récurrence et à renvoyer la valeur $y_n$.

[Amélioration]

Si on conservait les différentes valeurs de x et de y donc la fonction précédente renvoie les listes $x$ et $y$, on pourrait tracer une courbe approximant la courbe représentative de F

[Amélioration]

La résolution de l'équation permettant le calcul de $f'(a)$ peut être difficile mais Python offre des fonctions de résolution d'équation ...mais ceci est une autre histoire

 

Ajouter un commentaire

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Saisir les caractères affichés dans l'image.