Travaux pratiques, semaine 3
#include <math.h> double exponentielle (double x, double epsilon) { int n; double s = 1, u = 1; for (n = 1; fabs (u) > epsilon; n++) { u = u * x / n; s = s + u; } return s; }
Comparer les résultats fournis par cette fonction, pour x < 0 et "grand" en valeur absolue, à ceux fournis en ajoutant, au début du corps de la fonction, la ligne :
if (x < 0) return 1 / exponentielle (-x, epsilon);Utiliser la fonction exp de la bibliothèque standard mathématique, pour obtenir la valeur "exacte" (écrire une fonction main qui affiche les valeurs des trois fonctions).
void main (void) { double q, e; for (e = 1e-10 ; e > 1e-18 ; e = e /10 ) { q = 1 + e; q = q - 1; q = q / e; printf("%g %g\n", e, q); } }
|
Expliquer les résultats produits par le programme suivant :
void main (void) { int i; double x = 1; for (i = 1 ; i < 20 ; i++ ) { x = 5 * ( 4 * (x - 1 / 5.0) - 3); printf("%g\n", x); } }
|
#include <math.h> double cosinus (double x, double epsilon) { int n; double u = ...; double s = ...; for (n = ... ; fabs(u) > epsilon ; n = ...) { u = ... s = ... } return s; }
Ecrire la fonction main pour comparer les résultats avec ceux obtenus par la fonction cos de la bibliothèque mathématique standard.
|
|