Calcul de pi selon une série d'euler

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 874 fois - Téléchargée 18 fois

Contenu du snippet

Voici l'implémentation VB.NET de l'algorithme permettant de calculer pi grâce à la série d'Euler suivante :

http://scalion.free.fr/formpi.gif

Source / Exemple :


Sub Main()

        ' Algorithme basé sur une série d'Euler
        Console.Out.WriteLine("Approximation de pi basée sur une série d'Euler")
        Dim cApproximation As Decimal, cPrecision As UShort, cProduits() As Decimal
        Console.Out.WriteLine("Précision requise ?") : cPrecision = Console.In.ReadLine
        ReDim cProduits(0 To cPrecision) ' Tableau de produits
        For i As UInteger = 1 To cPrecision ' Balayage des produits
            Dim cA As Decimal = 1, cB As Decimal = 1 ' Initialisation des facteurs du produit courrant
            For a As UInteger = 1 To i
                cA *= a ' Calcul du premier facteur (numérateur)
            Next a
            For b As UInteger = 3 To (i * 2) + 1 Step 2
                cB *= b ' Calcul du second factuer (dénominateur)
            Next b
            cProduits(i) = cA / cB ' Calcul du produit (division des facteurs)
        Next i
        For j As UInteger = 1 To cPrecision
            cApproximation += cProduits(j) ' Somme cumulée de tous les produits
        Next
        cApproximation *= 2 ' Facteur commun (constant : 2)
        Dim cChaine As String = cApproximation.ToString
        cChaine = "3" & Mid(cChaine, 2, cChaine.Length - 1) ' Transformation du premier digit (constant : 3)
        Console.Out.WriteLine("Approximation de pi sur " & cPrecision & " facteurs : " & cChaine)
        Console.In.ReadLine()

    End Sub

Conclusion :


Le code est commenté mais voici une courte explication :
1) On déclare les variables et on demande à l'utilisateur la précision qu'il souhaite (le nombre de produits).
2) La boucle i balaye les produits un à un.
3) Les boucles a et b calculent respectivement le numérateur et le dénominateur de chaque produit (les facteurs).
4) La boucle j additionne le tout.
5) On multiplie par le facteur commun constant (2).
6) On remplace le premier digit par le 3 entier.

Remarque : Entrez une précision d'environ 15 pour obtenir une valeur "reconnaissable" de pi. Notons également que cet algorithme n'est pas du tout optimisé pour le calcul de pi et que je le poste à simple titre de curiosité mathématique !

En espérant vous intéresser,
Cordialement, Léo.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
38
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
30 juin 2010

Effectivement c'est une série intéressante, merci je ne la connaissais pas. Voici l'article français (section "Série alternée") http://fr.wikipedia.org/wiki/Formule_de_Leibniz
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Il existe aussi une autre série, si ça intéresse, qui s'y rapporte :

Pi = 4(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13 - 1/15 ...)

Juste pour la culture générale ... série de Gregory-Leibniz (ou formule de Leibniz) :
http://en.wikipedia.org/wiki/Leibniz_formula_for_pi (que en anglais, la version française n'a pas encore été écrite il semblerait)

Cordialement, Bacterius !
Messages postés
38
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
30 juin 2010

Ah oui, effectivement 0+2=2 => 2!!=1 c'est cela ? Puisque la double factorielle ne fait le produit que des entiers impairs (ou je me trompe ^^).

Merci pour ces infos, si j'ai le temps j'implémenterai d'autres algorithmes de calcul de pi (le simplissime algorithme utilisant la méthode de Monte-Carlo), peut-être que vous m'apprendrez encore autre chose en math !
Messages postés
15
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
5 septembre 2010

Pas tout à fait :
i=1 plutôt que i=0 sinon, c'est nikel :)
Messages postés
38
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
30 juin 2010

D'accord. Et merci pour ces explications !

Donc, si j'ai bien compris, cette approximation de Pi s'écrirait comme ceci ?
http://img132.imageshack.us/img132/1064/sommationdeuler.png
(J'ai fait ça avec paint, LaTeX est trop long à télécharger !!)

Merci encore !
Afficher les 11 commentaires

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.