Tp 03 newton secante - analyse numérique avec matlab - téléc

Ce document est un travail pratique (TP) conçu pour les étudiants en deuxième année de Génie Électrique, dans le cadre du cours de Méthodes Numériques à l'Université de Ghardaïa.

Il vise à familiariser les étudiants avec la résolution numérique d'équations non-linéaires et couvre les notions suivantes :

  • L'implémentation des méthodes de Newton-Raphson et de la sécante sous Matlab.
  • La localisation et le calcul des racines d'une fonction donnée.
  • L'utilisation des outils Matlab pour l'analyse numérique.
Tp 03 newton secante - analyse numérique avec matlab - téléc

Méthodes Numériques : Résolution d'Équations Non-Linéaires (Newton – Sécante)

Introduction

Ce guide explore l'implémentation des méthodes numériques de Newton et de la sécante pour trouver les racines d'équations non-linéaires sous Matlab. Ces techniques sont fondamentales en analyse numérique pour résoudre des problèmes où une solution analytique exacte est difficile, voire impossible à obtenir.

Objectif du TP

L'objectif principal est l'implémentation d'un code sous Matlab calculant la racine d'une équation non-linéaire par les méthodes de Newton et de la sécante.

1. Préambule et Analyse de Fonction

Soit la fonction f(x) = 1/x - cos(pi*x/3) - 1, définie sur R*. Cette fonction est non-linéaire et ses racines ne peuvent être trouvées facilement par des méthodes algébriques directes, ce qui justifie l'utilisation de méthodes numériques.

Étapes préliminaires :

  1. Écrire une fonction Matlab qui reçoit un argument x et renvoie la valeur de f(x).
  2. Tracer f(x) avec fplot en appelant la fonction précédente dans un autre script. Cette visualisation est cruciale pour identifier visuellement les intervalles où se situent les racines.
  3. Localiser les trois premières racines positives de l'équation f(x)=0 et choisir des valeurs de départ pour les calculer avec la méthode de Newton, puis la méthode de la sécante. Un bon choix de point de départ est essentiel pour la convergence de ces méthodes.
  4. Trouver ces racines avec la fonction fzero de Matlab, qui est une implémentation robuste de méthodes de recherche de racines.

2. Algorithme de la Méthode de Newton-Raphson et de la Sécante

Ces méthodes itératives permettent de trouver des approximations successives d'une racine. Elles requièrent une ou plusieurs estimations initiales et une fonction (ainsi que sa dérivée pour Newton) pour converger vers la solution.

Supposons que [a, b] est l'intervalle contenant la racine de l'équation f(x)=0 et satisfaisant la condition d'application de la dichotomie f(a) * f(b) < 0. On peut rechercher la racine r avec une précision e (epsilon).

Méthode de Newton-Raphson

La méthode de Newton-Raphson est une technique puissante pour trouver les racines d'une fonction différentiable. Elle utilise la tangente à la courbe de la fonction pour estimer la prochaine approximation de la racine. L'itération de Newton est donnée par la formule :

r_n+1 = r_n - f(r_n) / f'(r_n)

Algorithme :

  1. Lire r0 (estimation initiale) et e (précision).
  2. Initialiser r_prev = r0.
  3. Calculer la première approximation : r_curr = r_prev - f(r_prev) / f'(r_prev).
  4. Tant que |r_curr - r_prev| > e faire :
    1. r_prev = r_curr
    2. r_curr = r_prev - f(r_prev) / f'(r_prev)
  5. Afficher r_curr.

Méthode de la Sécante

La méthode de la sécante est une alternative à la méthode de Newton qui ne nécessite pas le calcul de la dérivée de la fonction. Elle approxime la dérivée en utilisant une droite sécante passant par deux points récents de la fonction. L'itération de la sécante est donnée par la formule :

r_n+1 = r_n - f(r_n) * (r_n - r_n-1) / (f(r_n) - f(r_n-1))

Algorithme :

  1. Lire r0, r1 (deux estimations initiales) et e (précision).
  2. Initialiser r_prev_prev = r0, r_prev = r1.
  3. Calculer la première approximation : r_curr = r_prev - f(r_prev) * (r_prev - r_prev_prev) / (f(r_prev) - f(r_prev_prev)).
  4. Tant que |r_curr - r_prev| > e faire :
    1. r_prev_prev = r_prev
    2. r_prev = r_curr
    3. r_curr = r_prev - f(r_prev) * (r_prev - r_prev_prev) / (f(r_prev) - f(r_prev_prev))
  5. Afficher r_curr.

Application et Implémentation :

  1. Écrire le code Matlab correspondant aux algorithmes précédents pour les méthodes de Newton-Raphson et de la sécante.
  2. Résoudre l'équation f(x)=0 avec les deux codes en partant des valeurs initiales obtenues précédemment, à la cinquième décimale près.

FAQ sur les Méthodes de Résolution d'Équations Non-Linéaires

Qu'est-ce qu'une équation non-linéaire ?

Une équation non-linéaire est une équation dans laquelle la variable inconnue apparaît sous une forme non linéaire, par exemple, dans des termes de puissance supérieure (comme x²), des fonctions trigonométriques (sin(x), cos(x)), exponentielles (e^x), ou logarithmiques (ln(x)). Contrairement aux équations linéaires (ax + b = 0), elles n'ont généralement pas de formule de résolution directe et nécessitent des méthodes itératives pour trouver leurs racines.

Quelle est la différence principale entre la méthode de Newton et la méthode de la sécante ?

La différence fondamentale réside dans l'information requise et la vitesse de convergence. La méthode de Newton-Raphson exige le calcul de la dérivée de la fonction, ce qui peut être complexe ou impossible pour certaines fonctions. En revanche, elle offre une convergence quadratique, ce qui signifie qu'elle converge très rapidement si l'estimation initiale est proche de la racine. La méthode de la sécante ne nécessite pas la dérivée ; elle l'approxime en utilisant deux points précédents de la fonction, ce qui la rend plus simple à implémenter pour des fonctions complexes. Sa convergence est super-linéaire (environ d'ordre 1.618), ce qui est plus lent que Newton mais plus rapide que des méthodes comme la dichotomie.

Pourquoi utiliser Matlab pour résoudre des équations non-linéaires ?

Matlab est un environnement de calcul numérique puissant et polyvalent, idéal pour la résolution d'équations non-linéaires pour plusieurs raisons. Il dispose d'outils et de fonctions mathématiques intégrées robustes (comme fzero), d'une syntaxe intuitive pour l'implémentation d'algorithmes (y compris les boucles et les conditions), et d'excellentes capacités de visualisation graphique. Cela permet aux utilisateurs de prototyper rapidement des algorithmes, de tester différentes conditions initiales et d'analyser visuellement le comportement des fonctions et la convergence des méthodes.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne