TP2 – Équations non-linéaires – Éléments de correction

Programmons la méthode de Newton pour une fonction F, de différentielle dF supposée calculable explicitement.

Remarques. La programmation précédente se limite au cas monodimensionnel (formule d'itération avec / et utilisation de la valeur absolue pour l'incrément tol). Les itérés sont stockés successivement avec la commande append dans une liste listx.

Testons la méthode sur l’exemple monodimensionnel $F_1(x) = e^x - e$, et illustrons graphiquement la vitesse de convergence.

Remarques. La représentation en échelle log-log de $e_{n+1}$ en fonction de $e_n$ se prête bien à la comparaison avec la droite de pente 2 qui témoigne de la convergence à l'ordre 2. Il y a une saturation sur l'erreur machine (qui peut apparaître ou ne pas apparaître selon les cas – tout dépend des propriétés des points fixes de l'itération en arithmétique approchée qui ne sont pas nécessairement ceux d'un théorème mathématique).

Application à la résolution d'un problème

Détermination approchée du paramètre $\lambda\in[0,10]$ tel que $\int_0^1 \sin(\lambda e^{x^2})dx = 1/2$.

Il s'agit de résoudre $F(\lambda)=1/2$ avec $F(\lambda)=\int_0^1 \sin(\lambda e^{x^2})dx*$.
On a en particulier $F\in\mathcal{C}^1([0,10])$ avec $F'(\lambda)=\int_0^1 e^{x^2}\cos(\lambda e^{x^2})dx$.
La méthode de Newton appliquée à ce problème prend la forme : $$ \lambda_{n+1} = \lambda_n - F(\lambda_n)/F'(\lambda_n).$$ Dans cette itération, nous pouvons calculer les intégrales qui interviennent de façon approchée par une quadrature maison ou par la fonction scipy.integrate.quad.

Une alternative est de considérer la méthode de Newton, appliquée à une approximation de $F$: $$ \lambda_{n+1} = \lambda_n - F_N(\lambda_n)/F'_N(\lambda_n), $$ avec par exemple $F_N(\lambda_n)$ l'approximation obtenue par la méthode des rectangles à gauche.

Variante de la méthode du programme pour le cas de systèmes d'équations

Représentation graphique des solutions

Problème aux limites non-linéaire