Bases de Python (bases-python.html) Présentation de NumPy (bases-numpy.html) Tr
Bases de Python (bases-python.html) Présentation de NumPy (bases-numpy.html) Tracé de courbes (introduction-courbes.html) Tableaux et calcul matriciel (tableaux-numpy.html) Visualisation et animation (visualisation.html) Classes et objets (classes-et-objets.html) Fiches pratiques (fiches-pratiques.html) Mettre en forme des chaînes de caractères en Python (print-format.html) Dérivée d’une fonction en Python (derivee-fonction.html) Intégration numérique (integration-numerique.html) Méthodes des rectangles et des trapèzes (integration-rectangle-trapeze.html) Intégration par la méthode de Simpson Interpolation par un polynôme de degré 2 Intégration des polynômes de Lagrange Formule de Simpson Formule de Simpson composite Transformation de Fourier (fft-fourier.html) Introduction à Qt5 et PyQt5 (interface-graphique.html) Annexes (annexes.html) Bibliographie (bibliographie.html) Intégration par la méthode de Simpson Il existe de nombreuses méthodes pour réaliser une intégration numérique. Nous allons considérer la méthode de Simpson. Ceux qui souhaiteraient aller plus loin peuvent consulter par exemple Pratique de la simulation numérique de Bijan Mohammadi et Jacques Hervé Saïac, Dunod (2003). La méthode de Simpson permet le calcul approché d’une intégrale avec la formule suivante : Dans cette formule, on peut se demander d’où viennent les coefficients et (qui apparaît sous la forme de ). C’est ce que nous allons voir de façon détaillée maintenant. ∫ b a f(x)dx ≈b −a 6 [f(a) + 4f ( a + b 2 ) + f(b)] 1 6 2 3 4 6 Pour obtenir la formule de Simpson, on va réaliser une interpolation avec un polynôme de degré 2. Un polynôme étant une fonction très facile à intégrer, on approche l’intégrale de la fonction sur l’intervalle , par l’intégrale du polynôme sur ce même intervalle. Interpolation par un polynôme de degré 2 Une interpolation qui passe par 3 points peut être réalisée grâce à un polynôme de degré 2. Dans le cas de la méthode de Simpson, le polynôme va prendre les mêmes valeurs que aux points d’abscisses , et . La technique utilisée pour déterminer le polynôme est basée sur les polynômes de Lagrange, on parle d”interpolation lagrangienne. Les polynômes de Lagrange de degré 2 ont pour caractéristique de prendre la valeur 1 pour une seule des 3 abscisses et la valeur 0 pour les 2 autres. On définit ainsi 3 polynômes : qui prend pour valeur 1 en et 0 en et . qui prend pour valeur 1 en et 0 en et . qui prend pour valeur 1 en et 0 en et . Visualisation des polynômes de Lagrange from pylab import * a = 0 b = 8 m = (a+b)/2 x = linspace(a, b, 101) l0 = (x-m)/(a-m)*(x-b)/(a-b) l1 = (x-a)/(m-a)*(x-b)/(m-b) l2 = (x-a)/(b-a)*(x-m)/(b-m) plot([a,m,b],zeros(3),"s") # position des valeurs 0 plot([a,m,b],ones(3), "o") # position des valeurs 1 plot(x,l0, label="l0") plot(x,l1, label="l1") plot(x,l2, label="l2") title("Polynomes de Lagrange") xlim(-1,9) ylim(-1,2) text(a,-0.1,"(a,0)",ha="center",va="top") text(m,-0.1,"(m,0)",ha="center",va="top") text(b,-0.1,"(b,0)",ha="center",va="top") text(a,1.05,"(a,1)",ha="center",va="bottom") text(m,1.05,"(m,1)",ha="center",va="bottom") text(b,1.05,"(b,1)",ha="center",va="bottom") legend() grid() show() (Source code (./integration/simpson_lagrange.py)) f [a, b] f a b m = (a + b)/2 l0(x) = (x−m)(x−b) (a−m)(a−b) x = a m b l1(x) = (x−a)(x−b) (m−a)(m−b) x = m a b l2(x) = (x−a)(x−m) (b−a)(b−m) x = b a m Le polynôme de degré 2 qui prend les mêmes valeurs que aux points d’abscisses , et peut être écrit sous la forme suivante : Exemple d’interpolation de Lagrange avec un polynôme de degré 2 P f a b m P(x) = f(a) (x −m)(x −b) (a −m)(a −b) + f(m) (x −a)(x −b) (m −a)(m −b) + f(b) (x −a)(x −m) (b −a)(b −m) from pylab import * a = 0 b = 8 m = (a+b)/2 # valeurs de la fonction en a, m, et b ya = 4 ym = 8 yb = -6 x = linspace(a, b, 101) l0 = (x-m)/(a-m)*(x-b)/(a-b) l1 = (x-a)/(m-a)*(x-b)/(m-b) l2 = (x-a)/(b-a)*(x-m)/(b-m) P = ya*l0 + ym*l1 + yb*l2 plot([a,m,b],zeros(3),"s") # position des valeurs 0 plot([a,m,b],[ya,ym,yb], "o") # position des valeurs de f plot(x,P) title("Interpolation de Lagrange") xlim(-1,9) ylim(-8,10) text(a,-0.5,"(a,0)",ha="center",va="top") text(m,-0.5,"(m,0)",ha="center",va="top") text(b,-0.5,"(b,0)",ha="center",va="top") text(a,ya+0.05,"(a,f(a))",ha="right",va="bottom") text(m,ym+0.2,"(m,f(m))",ha="left",va="bottom") text(b,yb-0.4,"(b,f(b))",ha="left",va="top") grid() show() (Source code (./integration/interpolation_lagrange.py)) La courbe rouge représente le polynôme d’interpolation . Intégration des polynômes de Lagrange Un polynôme étant une fonction très facile à intégrer, on approche l’intégrale de la fonction sur l’intervalle , par l’intégrale de sur ce même intervalle. Pour cela, nous allons calculer les intégrales des 3 polynômes de Lagrange. Considérons tout d’abord le calcul de l’intégrale du polynôme de Lagrange . Le calcul de cette intégrale n’est pas immédiat et nous allons détailler une façon de réaliser ce calcul. On va poser , ainsi . Nous faisons ensuite le changement de variable suivant : , ainsi . Pour , on a . De même, pour , on a . car on intègre sur un intervalle symétrique et est une fonction paire et impaire. Ainsi, Au final : P f [a, b] P l2 ∫ b a l2(x)dx = ∫ b a (x −a)(x −m) (b −a)(b −m) dx. k = b−a 2 k = m −a = b −m u = x−m k du = dx k x = a u = −1 x = b u = 1 x−a b−a = (x−m)+(m−a) a−b = x−m b−a + m−a b−a = x−m 2k + k 2k = u 2 + 1 2 = u+1 2 x−m b−m = u ∫b a l2(x)dx = k ∫1 −1 (u+1) 2 udu = k 2 ∫1 −1 (u2 + u)du = k 2 2 ∫1 0 u2du u2 u ∫b a l2(x)dx = k[ u3 3 ] 1 0 = k 3 ∫ b a l2(x)dx = b −a 6 On comprend donc ici l’origine du facteur . On peut obtenir de même : Pour , on a : car on intègre sur un intervalle symétrique et et sont des fonctions paires. Ainsi, Au final : On a donc ici l’origine du facteur . Formule de Simpson En utilisant les résultats des 3 intégrales, on obtient ainsi la simple formule : C’est la formule de Simpson. Formule de Simpson composite Par ailleurs, plus l’intervalle est petit, meilleure est l’approximation de la valeur de l’intégrale. Par conséquent, pour obtenir un résultat correct, on subdivise l’intervalle en un nombre pair de sous- intervalles et on additionne la valeur obtenue sur chaque sous-intervalle. On a ainsi : est le nombre de sous-intervalles de avec pair ; est la longueur de ces sous-intervalles ; pour . Exemple Nous allons illustrer le cas où . On a 5 points : . On applique deux fois la formule de Simpson : une fois pour le sous-intervalle et une fois pour le sous-intervalle . 1 6 ∫ b a l0(x)dx = b −a 6 l1 ∫b a l1(x)dx = ∫b a (x−a)(x−b) (m−a)(m−b) dx x−a m−a = (x−m)+(m−a) m−a = u + 1 x−b m−b = (x−m)+(m−b) m−b = −u + 1 ∫b a l1(x)dx = k ∫1 −1 (u + 1)(−u + 1)du = k ∫1 −1 (1 −u2)du = 2k ∫1 0 (1 −u2)du 1 u2 ∫b a l1(x)dx = 2k[u −u3 3 ] 1 0 = 2k 2 3 ∫ b a l1(x)dx = 2 3 (b −a) 2 3 ∫ b a f(x)dx ≈∫ b a P(x)dx = b −a 6 [f(a) + 4f ( a + b 2 ) + f(b)] [a, b] n [a, b] n h = (b −a)/n xi = a + ih i = 0, 1, … , n −1, n ∫ b a f(x)dx ≈h 3 [f(x0) + 2 n/2−1 ∑ j=1 f(x2j) + 4 n/2 ∑ j=1 f(x2j−1) + f(xn)] n = 4 x0, x1, x2, x3, x4 [x0, x2] [x2, x4] b Haut de page Licence CC BY-NC-SA 4.0 (https://creativecommons.org/licenses/by-nc-sa/4.0/deed.fr) 2021, David Cassagne. Créé le 15 oct 2012. Mis à jour le 11 sept. 2021. Created using Sphinx (http://sphinx-doc.org/) 4.0.1. Or , donc au final : Ceci est bien conforme à la formule de Simpson composite énoncée ci-dessus. Exercice Faire un programme d’intégration numérique qui utilise la formule de Simpson composite. ∫ b a f(x)dx ≈x2 −x0 6 [f(x0) + 4f(x1) + f(x2)] + x4 −x2 6 [f(x2) + 4f(x3) + f(x4)] x2 −x0 = x4 −x2 = 2h ∫ b a f(x)dx ≈h 3 [f(x0) + 4f(x1) + 2f(x2) + 4f(x3) + f(x4)] uploads/s3/ integration-par-la-methode-de-simpson-cours-python.pdf
Documents similaires










-
41
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 10, 2021
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.3951MB