hautparleur
Messages postés213Date d'inscriptionmercredi 9 janvier 2013StatutMembreDernière intervention13 mai 2016 27 sept. 2014 à 11:50
merci, je vais essayer d'autres formules.
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024127 Modifié par KX le 26/09/2014 à 19:17
Bonjour,
Pour faire ton approximation tu as utilisé la formule de Leibniz, c'est loin d'être la meilleure méthode car tu converges très lentement vers le résultat.
Il existe d'autres méthodes beaucoup plus rapide, par exemple la formule de Brent-Salamin, parfois appelé algorithme de Gauss-Legendre, qui permet de doubler le nombre de décimales exactes à chaque itération (ex: 25 tours → 45 millions de décimales exactes !)
Bien que je ne connaisse pas cette approximation (je la trouve assez étrange mais ce n'est pas mon domaine), voici une méthode plus simple pour appliquer ta formule (évite de s'embêter avec ton objet) :
var pi = 1;// pi, initialement var x = 3;// 4*(1 - 1/x + ...) var iMax = prompt("Combien d'itérations?");// demander à l'utilisateur var i;// itérations déjà éxecutées for(i=0;i<=iMax;i++) { if( i%2 == 0) pi -= (1/x) ; else pi += (1/x) ); x += 2; } pi *= 4;
27 sept. 2014 à 11:50
Modifié par KX le 26/09/2014 à 19:17
Pour faire ton approximation tu as utilisé la formule de Leibniz, c'est loin d'être la meilleure méthode car tu converges très lentement vers le résultat.
Il existe d'autres méthodes beaucoup plus rapide, par exemple la formule de Brent-Salamin, parfois appelé algorithme de Gauss-Legendre, qui permet de doubler le nombre de décimales exactes à chaque itération (ex: 25 tours → 45 millions de décimales exactes !)
Modifié par nagashima le 24/09/2014 à 16:30
Bien que je ne connaisse pas cette approximation (je la trouve assez étrange mais ce n'est pas mon domaine), voici une méthode plus simple pour appliquer ta formule (évite de s'embêter avec ton objet) :
naga