Вы находитесь на странице: 1из 6

Fiche

Pratique 3.1


Phase de préparation :


Questions 1 et 2 :

En appliquant le TVI entre les points -1 et 1 on trouve :
𝑓 −1 = −1.52 ∗ 10!!
𝑓 1 = 1.999

Donc il existe un ‘C’ appartenant à l’intervalle [-1,1] tel que f(C)=0.




Question 3.

!
Pour une erreur de l’ordre de 10!! et en appliquant la relation : 2! = ! ! avec n étant le
!
nombre d’itérations et 𝜖! = 1 − −1 = 2 on trouve :
2
𝑛 = 𝑙𝑜𝑔! ~28 𝑖𝑡é𝑟𝑎𝑡𝑖𝑜𝑛𝑠
10!!

Phase de Simulation :

1. Programme de la Bissection :

// Fiche Pratique 4.1


// Phase de Simulation
// Programme de Bissection

#include <stdio.h>
#include <math.h>
double f(double);
double a=-1.;
double b=1.;
double epsilon=0.00000001;
double f(double);
int i=1;

int main(){
FILE *fichier=fopen("Bissection.dat","w");
double c=(a+b)/2.;
while (fabs(f(c))>epsilon) {
if (f(a)*f(c)<0)b=c;
else a=c;
c=(a+b)/2.;
printf("%d\t%lf\t%lf\n",i,c,f(c));
fprintf(fichier,"%d\t%lf\t%lf\n",i,c,f(c));
i++;
}
fclose(fichier);
return 0;

double f(double x){


return cos(x)-x;
}





Le programme s’arrête à 24 itérations alors que la prédiction était de 28 itérations.


2. Méthode de Newton-Raphson :
// Phase de Simulation
// Programme de la méthode de Newton-Raphson

#include <stdio.h>
#include <math.h>
double f(double);
double x=-1.;
double epsilon=0.00000001;
double f(double);
double df(double);
int i=1;

int main(){
FILE *fichier=fopen("NewtonRaphson.dat","w");
while (fabs(f(x)/df(x))>epsilon) {
x=x-(f(x)/df(x));
printf("%d\t%lf\t%lf\n",i,x,f(x));
fprintf(fichier,"%d\t%lf\t%lf\n",i,x,f(x));
i++;
}
fclose(fichier);
return 0;
}

double f(double x){


return cos(x)-x;
}

double df(double x){


return -sin(x)-1;
}




La méthode de Newton-Raphson n’a nécessité pour cette fonction que 7 itérations
comparée au 24 itérations de la méthode de la Bissection.

3. Méthode du point fixe :
L’idée de l’itération du point fixe est de reformuler en premier lieu l’équation 𝑓 𝑥 = 0
en une autre de la forme 𝑔 𝑥 = 𝑥 est donc dans le programme la nouvelle fonction
𝑓(𝑥) devient 𝑓 𝑥 = cos (𝑥).
#include <stdio.h>
#include <math.h>
double g(double);
double x=-1;
double epsilon=0.00000001;
int i=1;

int main(){
FILE *fichier=fopen("PointFixe.dat","w");
while (fabs(f(x)-x)>epsilon) {
x=f(x);
printf("%d\t%lf\t%lf\n",i,x,f(x));
fprintf(fichier,"%d\t%lf\t%lf\n",i,x,f(x));
i++;
}
fclose(fichier);
return 0;
}

double f(double x){


return cos(x);}


Le programme a nécessité 45 itérations pour arriver à la solution de l’équation et se
stabiliser sur la valeur 0.739085.

Вам также может понравиться