Partage
  • Partager sur Facebook
  • Partager sur Twitter

Découverte/Faux espoir ? PI(X)

PI(x)

    7 octobre 2020 à 5:44:42

    Bonjour,

    Hier, j'ai trouvé en faisant des formules au pif une coïncidence ENORME : les mathématiciens connaîtront la fonction pi(x) définie par le nombre de nombre premier dans l'intervalle [2;x], et beaucoup d'entre eux (font ramanujan) ont tenté d'y donner une formule sans réussir exactement ; on dirait que j'ai trouvé par coincidence.

    Avant de montrer les courbes, juste :

    1) Je suis pas sûr du taout, ça y ressemble Terriblement (au moins les 1000 premières valeurs sont vraies, vraies de vraies (j'ai explosé en voyant ça)

    2) Je n'ai pas fait de programme avec le comptage de nombre premier pour faire genre

    Je vais voir la formule avec mon prof de maths, mais je voulais un avis si il y a des matheux ici, car avoir plusieurs avis aident.



    Screen:

    À gauche, pi (x)

    À droite, ma fonction🤷🏻‍♂️
    Voilà, merci d'avance 😅
    Screen
    • Partager sur Facebook
    • Partager sur Twitter
      7 octobre 2020 à 13:24:40

      On connaît une formule qui approxime le nombre de nombre premiers (\( \dfrac{x}{\ln x}\) ). Tu l'as peut-être retrouvée par hasard ?

      -
      Edité par robun 7 octobre 2020 à 13:27:02

      • Partager sur Facebook
      • Partager sur Twitter
        8 octobre 2020 à 4:55:30

        Voici ce que j'obtiens expérimentalement:
        -
        De 1 à 10: 4, z=0.400000000                                                                                             
        De 1 à 100: 25, z=0.250000000                                                                                           
        De 1 à 1000: 168, z=0.168000000                                                                                         
        De 1 à 10000: 1229, z=0.122900000                                                                                       
        De 1 à 100000: 9592, z=0.095920000                                                                                      
        De 1 à 1000000: 78498, z=0.078498000                                                                                    
        De 1 à 10000000: 664579, z=0.066457900                                                                                  
        De 1 à 100000000: 5761455, z=0.057614550                                                                                
        De 1 à 1000000000: 50847534, z=0.050847534                                                                               
        -
        Voici un lien intéressant:
        http://villemin.gerard.free.fr/Wwwgvmm/Premier/quantiPi.htm
        Tirez en vos propres conclusions.
        PS J'aurais dû écrire  De 2 à ...

        -
        Edité par PierrotLeFou 8 octobre 2020 à 4:58:03

        • Partager sur Facebook
        • Partager sur Twitter

        Le Tout est souvent plus grand que la somme de ses parties.

          8 octobre 2020 à 13:50:22

          robun a écrit:

          On connaît une formule qui approxime le nombre de nombre premiers (\( \dfrac{x}{\ln x}\) ). Tu l'as peut-être retrouvée par hasard ?

          -
          Edité par robun hier à 13:27


          Non, en gros là ce que j'ai affiché c'est >la même< (à l'exactitude) : 

          1) La fonction (\( \dfrac{x}{\ln x}\) ) est une courbe, là si tu regardes sur le screen, à droite et à gauche la courbe a une variation qui la diffère d'une fonction comme cela.

          2) La fonction (\( \dfrac{x}{\ln x}\) ) approxime les valeurs, à un moment, on a l'une qui est différente de l'autre (on est à 14% d'erreur il me semble pour les 1000 premières valeurs si je me souviens bien). Là, ma courbe à littéralement 0% d'erreur, j'ai testé jusqu'à 25000 valeurs. 

          Je ne vais pas directement montrer la fonction qui permettrait d'obtenir cela, mais pour faire simple, c'est la somme des résultats d'une équation avec 2 inconnues (en fonction de l'une d'entre-elles) ; ce serait comme additionner le nombre de valeurs de la fonction z²+c (mandelbrot).

          • Partager sur Facebook
          • Partager sur Twitter
            8 octobre 2020 à 14:35:11

            Salut,

            « je voulais un avis si il y a des matheux ici » et « Je ne vais pas directement montrer la fonction qui permettrait d'obtenir cela », c'est un peu contradictoire. Sur quoi veux-tu des avis dans ce cas ?

            Sinon, plutôt que de la tracer, regarde les différences entre les deux fonctions pour les N premiers entiers naturels et stocke-les dans un tableau. Les valeurs de pi devraient être trouvables de sorte qu'il n'y aura que ta fonction à évaluer (tu mets les pi(n) dans un fichier texte pour ne pas avoir à les calculer). Ça te permettra d'aller à un N beaucoup plus grand que 1000. Même si le résultat est faux pour certains nombres, ça peut être une bonne chose, surtout s'il ne l'est pas pour beaucoup d'entre eux.

            -
            Edité par yo@n97one 8 octobre 2020 à 14:36:50

            • Partager sur Facebook
            • Partager sur Twitter
            Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
              8 octobre 2020 à 17:41:53

              En tout cas, la fonction pi(n) = n / log(n) telle que mentionnée par @robun donne une assez bonne approximation.
              On peut la multiplier par un certain facteur pour que ce soit relativement précis pour la plupart des nombres.
              J'ai repris mes données et j'ai évalué la fonction pi(n) comme suit:
              pi(n) = 1.055 * n / log(n)
              Je donne dans l'ordre, le nombre, la valeur réelle, la valeur calculée, le pourcentage d'erreur.
              -
              10, 4, 4.6, 14.5%                                                                                                       
              100, 25, 22.9, 8.4%                                                                                                     
              1000, 168, 152.7, 9.1%                                                                                                  
              10000, 1229, 1145.5, 6.8%                                                                                               
              100000, 9592, 9163.6, 4.5%                                                                                              
              1000000, 78498, 76363.4, 2.7%                                                                                           
              10000000, 664579, 654543.8, 1.5%                                                                                        
              100000000, 5761455, 5727258.5, 0.6%                                                                                     
              1000000000, 50847534, 50908964.3, 0.1%                                                                                   
              -
              L'erreur est d'autant plus faible que le nombre est grand.
              Voici le programme Python utilisé pour le calculer:
              -
              from math import log
              pi=[
              10, 4, 0.400000000, 
              100, 25, 0.250000000, 
              1000, 168, 0.168000000, 
              10000, 1229, 0.122900000, 
              100000, 9592, 0.095920000, 
              1000000, 78498, 0.078498000, 
              10000000, 664579, 0.066457900, 
              100000000, 5761455, 0.057614550, 
              1000000000, 50847534, 0.050847534
              ]
              f=1.055
              for i in range(0,len(pi),3):
                  x=f*pi[i]/log(pi[i])
                  e=abs(x-pi[i+1])*100/pi[i+1]
                  print(f"{pi[i]}, {pi[i+1]}, {round(x,1)}, {round(e,1)}%")

              -
              Edité par PierrotLeFou 8 octobre 2020 à 19:10:14

              • Partager sur Facebook
              • Partager sur Twitter

              Le Tout est souvent plus grand que la somme de ses parties.

                8 octobre 2020 à 22:03:07

                Bonsoir, effectivement, la fonction 1,055 n / log n est efficace quand n tend vers l'infini, ce weekend je vais travailler sur ma formule pour la rendre explicite (vu que là c'est une somme). Je vais vous envoyer en mp la formule, je l'ai découverte par hasard 🤷🏻‍♂️.

                Merci pour vos retours 😉

                • Partager sur Facebook
                • Partager sur Twitter
                  10 octobre 2020 à 23:53:04

                  Après pas mal de simplifications, je suis remonté à la formule du petit théorème de Fermat... (https://fr.wikipedia.org/wiki/Petit_th%C3%A9or%C3%A8me_de_Fermat).

                  Ma démarche depuis le début était :

                  j'ai x^k + k congru à 0 modulo (k+1), j'en suis arrivé tout à l'heure à x^(k-1) congru à 1 modulo k quand x est non divisible par k. En gros c'est le théorème de Fermat...

                  Bon bah c'était bien tenté :'(....

                  Merci pour votre aide ;)

                  Bonne journay

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Découverte/Faux espoir ? PI(X)

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown