La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

PROGRAMMATION SCIENTIFIQUE EN C

Présentations similaires


Présentation au sujet: "PROGRAMMATION SCIENTIFIQUE EN C"— Transcription de la présentation:

1 PROGRAMMATION SCIENTIFIQUE EN C

2 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 Méthode de Newton-Raphson (racines de systèmes d’équations non-linéaires)

3 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

4 Rappel: Approximation de fonction par série de Taylor
Le développement en série de Taylor permet de faire l’approximation de fonctions suffisamment différentiables Nous pouvons évaluer la valeur d’une fonction dans le voisinage d’un point de référence par:

5 Rappel: Approximation de fonction par série de Taylor
L’erreur de troncature découlant du développement en série de Taylor avec n termes dérivés est donnée avec sa borne supérieure par

6 Rappel: Approximation de fonction par série de Taylor
Pour la fonction cosinus avec a = 0 et un intervalle des valeurs de h [0,/2] et n=4

7 Rappel: Approximation de fonction par série de Taylor
Pour la fonction cosinus, l’erreur de troncature est bornée par le premier terme de la série omis, cette erreur de troncature est bornée par (n=4)

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

9 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:

10 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

11 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.

12 Méthodes de Newton-Raphson

13 Méthode de Newton-Raphson
Algorithme de Newton-Raphson 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

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

15 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)

16 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)

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

18 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.

19 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

20 Méthode de la sécante

21 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 ……

22 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

23 Exemple de détection de zéros de fonctions
Utilisation des méthodes de Newton et de la sécante

24 Méthode de Newton-Raphson (racines de systèmes d’équations non-linéaires)
Cette méthode consiste à résoudre simultanément le système: f(x, y) = 0 g(x,y) = 0 Si nous devons trouver les 0s de N fonctions de N variables xi, pour i = 1, 2, 3 …. N

25 Méthode de Newton-Raphson (racines de systèmes d’équations non-linéaires)
Si les fonctions Fi sont différentiables au voisinage de x, nous pouvons alors estimer les valeurs de Fi au voisinage de x en utilisant le développement en série de Taylor: Sous forme matricielle: Jij est la matrice Jacobienne

26 Méthode de Newton-Raphson (racines de systèmes d’équations non-linéaires)
Matrice Jacobienne (gradient) Matrice Jacobienne Gradient

27 Méthode de Newton-Raphson (racines de systèmes d’équations non-linéaires)
Si Nous pouvons alors déduire un système d’équations linéaires dont la solution correspond aux termes corrections δx qui poussent chaque fonction plus proche de 0 et ce simultanément: La solution δx permet de mettre à jour le vecteur x

28 Méthode de Newton-Raphson (racines de systèmes d’équations non-linéaires)
Cette approche pourrait aussi être utilisée pour minimiser une fonction En résolvant le système:

29 Méthode de Newton-Raphson (racines de systèmes d’équations non-linéaires)
Posons: Sachant que F(x) peut être approximée au voisinage de x par le développement en série de Taylor: Le terme f’() devient alors: Matrice Hessienne

30 Méthode de Newton-Raphson (racines de systèmes d’équations non-linéaires)
Une matrice Hessienne (Laplacienne) et une matrice dont les termes sont les dérivées partielles d’ordre 2

31 Méthode de Newton-Raphson (racines de systèmes d’équations non-linéaires)
La solution donnant les corrections δx est obtenue en résolvant le système: H(x) δx = –F(x) δx


Télécharger ppt "PROGRAMMATION SCIENTIFIQUE EN C"

Présentations similaires


Annonces Google