Upload
riva-blanc
View
107
Download
0
Embed Size (px)
Citation preview
PROGRAMMATION SCIENTIFIQUE EN C
PRO-1027
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
01
01 )()(
xxx
xdx
dfxfxf
Méthodes de Newton-Raphson
Nous avons une racine quand f(x) = 0, alors
)('
)(
)('
/
)(
)()()(0
0
001
0
001
0101
xf
xfxx
dx
dfxf
dxdf
xfxx
xxdx
dfxfxf
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
)('
)(1
i
iii xf
xfxx
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
ii
i
ii
ii xx
xf
xx
xfxf
11
)()(0)('
Méthode de Newton-Raphson
Algorithme de NewtonNEWTON_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
1
1)()()('
ii
iii xx
xfxfxf
)()(
)(1
11
ii
iiiii xfxf
xxxfxx
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écanteTANT 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