Algorithme de la Méthode de Newton en Langage C :
Dans l’exemple ci-dessous nous cherchons la racine de l’équation Ln(x) = 0 dans l’intervalle ]0, +∞[ avec x0 comme valeur initiale choisie par l’utilisateur.
Dans l’exemple ci-dessous nous cherchons la racine de l’équation Ln(x) = 0 dans l’intervalle ]0, +∞[ avec x0 comme valeur initiale choisie par l’utilisateur.
#include <stdio.h> #include <stdlib.h> #include<math.h> #define EPS 1.0e-15 // Précision voulue #define N 1000 // Nombre maximal d'itérations double f(double x) { return log(x); //Ln(x) comme test } double df(double x) { return 1.0/x; // Dérivée de Ln(x) } voidmain() { double x0; // Valeur Initiale double *x; // tableau des valeurs Xi x = (double *)calloc(N,sizeof(double)); printf("entrer la valeur initiale X0: \n"); scanf("%lf",&x0);//L'utilisateur choisi une valeur de départ x[0] = x0; for(int i=0;i<N;i++) { x[i+1] = x[i] - f(x[i])/df(x[i]); // Calcul des X[i+1] selon Newton if( fabs(x[i+1] - x[i]) <=EPS) // On test l'inégalité { printf("NBRE D'ITERATIONS = %d\t X=%18.16g\n",i,x[i+1]); exit(0); } } delete [] x;// On libère la mémoire à la fin des calculs } |
Aucun commentaire:
Enregistrer un commentaire