PROGRAMMATION SCIENTIFIQUE EN C

Slides:



Advertisements
Présentations similaires
Bratec Martin ..
Advertisements

NOTIFICATION ÉLECTRONIQUE
Fragilité : une notion fragile ?
SEMINAIRE DU 10 AVRIL 2010 programmation du futur Hôtel de Ville
Phono-sémantique différentielle des monosyllabes italiens
MAGGIO 1967 BOLOGNA - CERVIA ANOMALIES DU SOMMEIL CHEZ L'HOMME
droit + pub = ? vincent gautrais professeur agrégé – avocat
Transcription de la présentation:

PROGRAMMATION SCIENTIFIQUE EN C

Résolution de système d’équations non-linéaires (racines d’équations) Méthode de Newton-Raphson Convergence de la méthode Méthode de la sécante Travail pratique 2 b)

Méthodes de Newton-Raphson Cette méthode converge plus rapidement que la méthode de bissection La méthode de Newton est basée sur l’utilisation de la portion linéaire de la série de Taylor

Méthodes de Newton-Raphson Nous avons une racine quand f(x) = 0, alors

Méthodes de Newton-Raphson Nous pouvons alors estimer une nouvelle valeur de la racine (x1) à partir d’une estimation initiale x0. Nous pouvons alors raffiner l’estimation de la valeur de la racine (x1) de façon itérative

Méthodes de Newton-Raphson Si f(x) est linéaire nous obtenons la solution au premier essai Si f(x) est non linéaire, la série de Taylor est seulement valide pour de petits x Les termes non linéaires tronqués de la série de Taylor influence la précision de la solution

Méthodes de Newton-Raphson À partir d’une estimation initiale d’une racine x0 nous calculons une nouvelle estimation x1 et ce itérativement jusqu’à l’obtention de la solution La nouvelle estimation xi+1 est toujours estimée à partir de la dernière estimation xi.

Méthodes de Newton-Raphson

Méthode de Newton-Raphson Algorithme de Newton NEWTON_RAPHSON(float x0, int nbiterMAX, float delta, float eps) v = f(x0) nbiter = 0 imprimer nbiter,x0,v deltax1x0 = MAXFLOAT TANT QUE nbiter<nbiterMAX ET deltax1x0 > delta ET |v| > eps FAIRE x1 = x0-v/f’(x0) v = f(x1) imprimer nbiter, x1,v deltax1x0 = x1- x0 x0 = x1 nbiter = nbiter + 1 FIN TANT QUE

Convergence de la méthode Dans certains cas l’algorithme de Newton ne converge pas f ’(xi) -> 0

Convergence de la méthode Dans certains cas l’algorithme de Newton ne converge pas f (xi) / f’(xi) = -f (xi+1) / f’(xi+1)

Convergence de la méthode Dans certains cas l’algorithme de Newton ne converge pas f (xi) / f’(xi) = -f (xi+1) / f’(xi+1)

Convergence de la méthode Dans certains cas l’algorithme de Newton ne converge pas (ou converge lentement) f’(xi) >>> f(xi)

Méthode de la sécante La seule différence avec la méthode de Newton-Raphson réside dans le calcul numérique de la dérivée f’(x) Une nouvelle estimation de la racine xi+1 est déduite à partir des valeurs de la fonction f(xi) et f(xi-1) et des estimations précédentes des racines xi et xi-1.

Méthode de la sécante La valeur de la pente f’(x) est alors donnée par La nouvelle estimation de la racine est donnée par

Méthode de la sécante

Méthode de la sécante Algorithme de la sécante SECANTE(float x0, float x1, int nbiterMAX, float delta, float eps) u = f(x0) v = f(x1) nbiter = 0 imprimer nbiter,x0,u nbiter++ imprimer nbiter,x1,v deltax1x0 = MAXFLOAT TANT QUE nbiter<nbiterMAX ET deltax1x0 > delta ET |v| > eps FAIRE SI |u| < |v| ALORS Permuter x0 et x1 , u et v FIN SI

Méthode de la sécante Algorithme de la sécante TANT QUE nbiter<nbiterMAX ET deltax1x0 > delta ET |v| > eps FAIRE SI |u| < |v| ALORS /* POUR ÉVITER LA DIVERGENCE */ Permuter x0 et x1 , u et v FIN SI s = (x1-x0)/(v-u) /* = 1/f ’(x1) */ x0 = x1 u = v x1 = x0-v*s v = f(x1) imprimer nbiter, x1,v deltax1x0 = x1- x0 nbiter = nbiter + 1 FIN TANT QUE

Travail pratique 2 b Utilisation des méthodes de Newton et de la sécante