Calcul de la racine carrée

Résolu/Fermé
fourways Messages postés 1 Date d'inscription mercredi 9 janvier 2013 Statut Membre Dernière intervention 12 février 2013 - 12 févr. 2013 à 04:57
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 14 févr. 2013 à 02:06
Bonjour,

Soit a un nombre réel positif. La racine carré b = sqrt (a) de a est l'unique nombre réel positif qui véri?e b^2 = a. On montre en mathématiques que, étant donné un réel positif a, la suite u0 := a; u(n+1) := (un + a/un)/2 converge vers sqrt (a). Le programme suivant a?che les 10 premiers termes de la suite un ainsi que un^2 pour a = 2 :

1 #include<stdio.h>
2 int main(void)
3 {
4 int n;
5 float a=2., un, un1;
6 n = 0; un = a;
7 while (n<10) {
8 un1 = (un + a/un)/2.;
9 n = n+1; un = un1;
10 printf("n=%d, un=%.5f, un^2=%.5f\n", n, un, un*un);
11 }
12 return 0;
13 }

Comment vérifier que un^2 converge bien vers sqrt(2) ?
Qu'est-ce que se passe si on remplace %.5f par %.10f?
On met #define EPSILON 1e-6 au debut pour arrêter le calcul au bon moment.
Comment modifier le programme pour calculer la racine carrée, avec une précision de e(epsilon) , d'un nombre a donné par l'utilisateur? (Si le nombre donné est négatif on a?chera un message d'erreur puis on demandera un nouveau nombre)
Merci.
A voir également:

1 réponse

mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
14 févr. 2013 à 02:06
J'espère que le but de la question n'est pas de faire tes exercices à ta place ?
1