FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Calcul de PI à l'aide des formules de développement en série Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Calcul de PI à l'aide des formules de développement en série Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Calcul de PI à l'aide des formules de développement en série Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Calcul de PI à l'aide des formules de développement en série Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Calcul de PI à l'aide des formules de développement en série Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Calcul de PI à l'aide des formules de développement en série Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Calcul de PI à l'aide des formules de développement en série Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Calcul de PI à l'aide des formules de développement en série Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Calcul de PI à l'aide des formules de développement en série Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Calcul de PI à l'aide des formules de développement en série Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Calcul de PI à l'aide des formules de développement en série Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Calcul de PI à l'aide des formules de développement en série Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Calcul de PI à l'aide des formules de développement en série Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Calcul de PI à l'aide des formules de développement en série Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Calcul de PI à l'aide des formules de développement en série Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

 

 Calcul de PI à l'aide des formules de développement en série

Aller en bas 
4 participants
AuteurMessage
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Calcul de PI à l'aide des formules de développement en série Empty
MessageSujet: Calcul de PI à l'aide des formules de développement en série   Calcul de PI à l'aide des formules de développement en série EmptyDim 26 Avr 2020 - 0:08

Salut tout le monde.

A tous ceux qui n’ont plus beaucoup d’idées pour programmer.
A tous ceux qui suivent le forum sans se manifester.
A tous ceux qui hésitent à nous faire partager leurs codes sous prétexte qu’ils ne sont pas intéressants.
A tous ceux qui sont au confinement volontaire ou imposé (vous n’êtes pas obligés de confiner aussi vos codes ou simplement vos avis et vos commentaires)
A tous ceux qui seront intéressés pour relever le challenge
A Jack également pour nous exhiber sa façon de coder
Enfin, à toux ceux qui veulent réanimer le forum

Je vous propose le challenge suivant :
Calcul de PI par des formules basées sur un développement en série.

Ci-après un « squelette » de code dans lequel les formules des calculs sont données dans les lignes REM avant chaque FNC.
Il s’agit de compléter l’une (ou toutes) des FNC.
Ma contribution est le codage de la Formule basée sur les moyennes arithmétique et géométrique , celle de Salamin-Brent.

Etes-vous prêts à relever le challenge ?

Voici le code-squelette

Code:

rem ============================================================================
rem    Calcul de PI par des formules basées sur un développement en série.
rem ============================================================================
rem Si vous accepter de relever le challenge,
rem Veuillez complétez le code de l’une ou des 7 FNC suivantes en mettant vos
rem pseudos en REM au debut
rem ============================================================================
dim quelqueChose

font_name 0,"fixedsys" : font_bold 0
' ...
' ...
' etc
  
print "PI = " + str$(Pi_Salamin_Brent()) + " <--- Formule Salamin-Brent"
print "PI = " + str$(pi) + " <--- Panoramic"

end
rem ============================================================================
' Formule de Leonhard Euler (1707-1783)
' PI² = 6 * (1 + 1/2² + 1/3² + 1/4² + 1/5² ......)
FNC Pi_Euler()
    ' ....
    ' ....
    ' ....
    result quelqueChose
END_FNC
rem ============================================================================
' Développement en série de arctg x avec x = 1
' (W.Leibniz 1646-1716 ou James Gregory 1638- 1675)
' pi = 4 * (1 - 1/3 + 1/5 - 1/7 + 1/9 ......)
FNC Pi_AtnX_1()
     ' ....
     ' ....
     ' ....
     result quelqueChose
END_FNC
rem ============================================================================
' Développement en série de arctg x avec x = sqr(3) / 3 (Euler)
' pi = 2 * sqr(3) * (1 - 1/3 * 1/3¹  + 1/5 * 1/3² - 1/7 * 1/3³ + ...)
FNC Pi_AtnX_SQR3()
    ' ...
    ' ...
    ' ...
    result quelqueChose
END_FNC
rem ============================================================================
' Formule de John Machin (1685-1751) à partir de arctg 1/5 - arctg 1/239
' pi = 16 * (1/5^1 - 1/3 * 1/5^3 + 1/5 * 1/5^5 - 1/7 * 5^7 + ...)
'     - 4 * (1/239^1 - 1/3 * 1/239^3 + 1/5 * 1/239^5 - 1/7 * 1/239^7 + ...)
FNC Pi_Machin()
    ' ...
    ' ...
    ' ...
    result quelqueChose
END_FNC
rem ============================================================================
' Formule de John Wallis (1616-1703)
' pi = 2 * (2/1 * 2/3 * 4/3 * 4/5 * 6/5 * 6/7 * ...)
FNC Pi_Wallis()
    ' ...
    ' ...
    ' ...
    result quelqueChose
END_FNC
rem ============================================================================
' Formule de François Viète  (1540-1603)
' 2/pi = sqr(1/2) * sqr(1/2 + 1/2 * sqr(1/2)) * ...
FNC Pi_Viete()
    ' ...
    ' ...
    ' ...
    result quelqueChose
END_FNC
rem ============================================================================
' Formule de Brouncker (1620-1684)
' 4/pi = 1+1²/(2+3²/(2+5²/(2+7²/.....)))
FNC Pi_Brouncker()
    ' ...
    ' ...
    ' ...
    result quelqueChose
END_FNC
rem ============================================================================
' Formule basée sur les moyennes arithmétique et géométrique.
' Formule découverte par Eugène Salamin et Richard Brent en 1976
' a0 = 1 : b0 = 1/sqr(2)
' a(n+1) = (a(n)+ b(n)) / 2 : b(n+1) = sqr(a(n) * b(n))
' Un = 4*a²(n) / (1 - 2 * somme(2^i * (a²(i) - b²(i)))) ; i de 1 = n
' n ---> infini ; Un ---> pi
' ------------------------------------------------------------------------------
' Papydall
FNC Pi_Salamin_Brent()
    dim_local s_carre, puissance2,a,b,an,bn,Un,u,epsilon
    epsilon = 1E-6
    s_carre = 0 : puissance2 = 1 : an = 1 : bn = 1/sqr(2)
    u = 1 : Un = 0
    while not(abs(u-un) < epsilon)
       a = an : b = bn : u = Un
       an = (a+b)/2 : bn = sqr(a*b)
       puissance2 = puissance2 * 2
       s_carre = s_carre + puissance2 * (an*an - bn*bn)
       Un = 4*an*an / (1-2*s_carre)
    end_while
    result Un
END_FNC
rem ============================================================================

REM : même si vous n'êtes pas prêts pour coder, vous pouvez toujours réagir, question de déclencher un échange d'idées et de rompre le silence qui règne sur le forum.
Et si personne ne se manifestera pas, je compléterais moi-même mon code Crying or Very sad
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Calcul de PI à l'aide des formules de développement en série Empty
MessageSujet: Re: Calcul de PI à l'aide des formules de développement en série   Calcul de PI à l'aide des formules de développement en série EmptyDim 26 Avr 2020 - 14:42

Bonjour à tous !

John Wallis pour moi : certes imprécis mais simple pour un dimanche  lol!

Code:

Résultat au bout de 5000 itérations:

Bon dimanche à tous !
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Calcul de PI à l'aide des formules de développement en série Empty
MessageSujet: Re: Calcul de PI à l'aide des formules de développement en série   Calcul de PI à l'aide des formules de développement en série EmptyDim 26 Avr 2020 - 15:18

Bonjour tout le monde.
@Marc
Merci pour ta participation.
J’adore ta façon de nommer les identificateurs, c’est original et plein d’humour, merci. king
Seulement, (il y a toujours un seulement avec Papydall ), le résultat n’est correct qu’à … seulement trois pauvres décimales  Sad
PI = 3.14190682856194
PI = 3.14159265358979 d’après Panoramic.

Peut mieux faire ! scratch
Merci quand même.

A+
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Calcul de PI à l'aide des formules de développement en série Empty
MessageSujet: Re: Calcul de PI à l'aide des formules de développement en série   Calcul de PI à l'aide des formules de développement en série EmptyDim 26 Avr 2020 - 18:17

Eh m'sieur, c'n'est pas ma faute, c'est d'la faute à John !
C'est sa progression qui est trop lente ! lol!


Au risque de me ramasser encore un "peut mieux faire", j'ose une nouvelle approche. C'est comme ça qu'on progresse...
Nouveau calcul pour la suite de Wallis John :

Code:
PRINT Pi_Wallis(5000)
PRINT Pi_Wallis(10000)
PRINT Pi_Wallis(50000)
PRINT Pi_Wallis(100000)
END

FNC Pi_Wallis(n)
    DIM_LOCAL i,x
    x = 1
    FOR i = 2 to n STEP 2
        x = x*(i/(i-1))*(i/(i+1))
    NEXT i
    RESULT x*2
END_FNC

Ce qui donne : Calcul de PI à l'aide des formules de développement en série 1_bmp49

En augmentant n, la précision sera meilleure mais le temps de calcul sera long, très long...
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Calcul de PI à l'aide des formules de développement en série Empty
MessageSujet: Re: Calcul de PI à l'aide des formules de développement en série   Calcul de PI à l'aide des formules de développement en série EmptyLun 27 Avr 2020 - 1:15

Marc a écrit:

C'est sa progression qui est trop lente !

Tu as parfaitement raison et bravo d’avoir tenté de relever le challenge.
Jusqu’à nouvel ordre, tu es le champion, à moins qu’un Silverman ou autre Jean comme jean_debord, Jean Claude, Jean le Martien, Jean JL35, Jean Jacques etc, décide(nt) de te détronner.

Voici mon cadeau à toi
Code:

rem ============================================================================
rem            Calcul de Pi par la méthode d’Archimède
rem ============================================================================

print str$(Pi_Archimede()) + " <--- Méthode d'Archimède"
print str$(pi) + " <--- Panoramic"
end
rem ============================================================================
' La méthode d’Archimède conduit aux relations de récurence suivantes :
' c <--- sqr((1+c) / 2)
' s <--- s / c
' avec les valeurs initiales C = 0 et S = 2

FNC Pi_Archimede()
    dim_local c,s,t,i
    c = 0 : s = 2
    ' il suffit de 24 itérations pour atteindre 14 décimales justes
    for i = 1 to 24
        c = sqr((1+c)/2) : s = s/c
    next i
    result s
END_FNC
rem ============================================================================

Apprécier la vitesse : l'affichage est instantané !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Calcul de PI à l'aide des formules de développement en série Empty
MessageSujet: Re: Calcul de PI à l'aide des formules de développement en série   Calcul de PI à l'aide des formules de développement en série EmptyLun 27 Avr 2020 - 2:11

WAOU !
Trois itérations seulement pour obtenir 13 décimales exactes de PI (la dernière étant arrondie)
Qui dit mieux ?

Code:

rem ============================================================================
rem                    Calcul de pi par la méthode de Gauss
rem ============================================================================
rem La méthode algorithmique classique est basée sur une étude de Gauss relative
rem à la moyenne arithmético-géométrique de deux nombres.
rem Au lieu d’utiliser une suite infinie, le calcul s’effectue en boucle.
rem Chaque boucle (itération) permet de doubler la quantité de décimales.
rem Après seulement 3 itérations on obtient déjà 13 décimales exactes,
rem la dernière est arrondie.
rem ============================================================================
print : print
print " pi = " + str$(Pi_Gauss()) + "    <--- par la méthode de Gauss"
print " pi = " + str$(pi) + "  <---- Panoramic"

end
rem ============================================================================
FNC Pi_Gauss()
    dim_local a,b,c,p,x,y,i
    a = 1 : x = 1 : b = 1/sqr(2) : c = 1/4 : ' valeurs initiales
    for i = 1 to 3 : ' 3 itérations suffisent pour obtenir 13 décimales exactes
        y = a
        a =(a+b) / 2
        b =  sqr(b*y)
        c = c - x*(a-y)*(a-y)
        x = 2*x
        p = (a+b) * (a+b) / (4*c)
    next i
    result p
END_FNC
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Ouf_ca_passe




Nombre de messages : 285
Age : 76
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

Calcul de PI à l'aide des formules de développement en série Empty
MessageSujet: Ma contribution   Calcul de PI à l'aide des formules de développement en série EmptyLun 27 Avr 2020 - 7:13

Ma réponse est 22/7.

J’aime bien aussi la proposition de

Madhava of Sangamagrama (Inde)
https://pi.ac3j.fr/mot-cle/pi/

Sinon

mateo.over-blog.org/article-un-petit-poeme-pour-retenir-le-nombre-pi-43330552.html

Seul, le premier vers est juste (Après, bonjour les dégâts !)

and

Happy day to everybody :

Depuis, des défenseurs de τ ont créé le Tau day au 28 juin (6/28) en concurrence avec le Pi day du 14 mars (3/14)9
(source:wikipedia)

Ci-après, utilisation bien pratique de la corde à 13 noeuds (qu’on peut aussi lester d’un plomb).
https://xavier.hubaut.info/coursmath/var/13noeuds.htm
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Calcul de PI à l'aide des formules de développement en série Empty
MessageSujet: Re: Calcul de PI à l'aide des formules de développement en série   Calcul de PI à l'aide des formules de développement en série EmptyLun 27 Avr 2020 - 9:55

Code basé sur la formule de Leonhard Euler:
Code:

rem ============================================================================
rem    Calcul de PI par des formules basées sur un développement en série.
rem ============================================================================

font_name 0,"fixedsys" : font_bold 0

print "PI = " + str$(Pi_Euler()) + " <--- Formule Leonhard Euler"
print "PI = " + str$(pi) + " <--- Panoramic"

end
rem ============================================================================
' Formule de Leonhard Euler (1707-1783)
' PI² = 6 * (1 + 1/2² + 1/3² + 1/4² + 1/5² ......)
FNC Pi_Euler()
 dim_local i,pi2,k
  '
  pi2=0
  for i=1 to 1000
      pi2=pi2+(1/power(i,2))
  next i
  pi2=pi2*6
  k=sqr(pi2)
  '
  result k
END_FNC
rem ============================================================================
ça ne progresse pas vite! Sad
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Calcul de PI à l'aide des formules de développement en série Empty
MessageSujet: Re: Calcul de PI à l'aide des formules de développement en série   Calcul de PI à l'aide des formules de développement en série EmptyMar 28 Avr 2020 - 3:43

Merci Silverman pour ta participation.
C’est vrai que la convergence est lente.
J’ai testé une grande quantité de formules d’approximation de Pi.
Je n’ai pas rencontré une méthode meilleure que celle de la moyenne arithmético-géométrique de deux nombres que j’ai postée ci-haut.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Calcul de PI à l'aide des formules de développement en série Empty
MessageSujet: Re: Calcul de PI à l'aide des formules de développement en série   Calcul de PI à l'aide des formules de développement en série Empty

Revenir en haut Aller en bas
 
Calcul de PI à l'aide des formules de développement en série
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Calcul d’angle ALIAS Question de calcul de moyenne : RESOLU
» a laide pour codé
» Scripts en formules dynamiques
» Reprise du développement
» Les programmes de papydall

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: