Approximations de Pi: Formule de Viète

Description

Bonjour,

La Formule (ou Produit) de Viète:
Pi = 2 * 2/sqrt(2) * 2/sqrt(2+sqrt(2)) * 2/sqrt(2+sqrt(2+sqrt(2)) * ...
date du début du 17e siècle.
Elle est assez rapide, puisqu'il ne faut que 24 itérations pour approcher pi en double précision.
Par contre, à chaque pas, il faut calculer une racine carrée.

Cet article fait partie de la série Approximations de Pi.
Voir également: Formule de Viète pour le calcul de pi.

La programmation est simple:
double Viete_A(int n) { // classique
  double q=0.0, pi=2.0;
  for (int i=0; i<n; ++i) {
    q = sqrt(2.0+q);
    pi *= 2.0/q;
  }
  return pi;
}

double Viete_B(int n) { // concentré
  double q=0.0, pi=2.0;
  for (int i=0; i<n; ++i) pi *= 2.0/(q=sqrt(2.0+q));
  return pi;
}

Ces deux fonctions sont "équivalentes".

Le Zip contient le seul fichier source Viete.cpp dont voici l'Output:
Viete_A: pi = 2 * 2/sqrt(2) * 2/sqrt(2+sqrt(2)) * 2/sqrt(2+sqrt(2+sqrt(2)) *...
  n= 4: pi=3.13654849054594
  n= 8: pi=3.14157294036709
  n=12: pi=3.14159257658487
  n=16: pi=3.14159265328899
  n=20: pi=3.14159265358862
  n=24: pi=3.14159265358979
precis: pi=3.14159265358979

Viete_B: pi = 2 * 2/sqrt(2) * 2/sqrt(2+sqrt(2)) * 2/sqrt(2+sqrt(2+sqrt(2)) *...
  n= 4: pi=3.13654849054594
  n= 8: pi=3.14157294036709
  n=12: pi=3.14159257658487
  n=16: pi=3.14159265328899
  n=20: pi=3.14159265358862
  n=24: pi=3.14159265358979
precis: pi=3.14159265358979


Bonne lecture ...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.