begin process at 2012 02 16 13:35:52
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths

 > CALCUL DE PI PAR LA METHODE DE MONTE CARLO

CALCUL DE PI PAR LA METHODE DE MONTE CARLO


 Information sur la source

Note :
6,25 / 10 - par 4 personnes
6,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths Niveau :Débutant Date de création :24/06/2005 Vu / téléchargé :8 061 / 355

Auteur : jeromegel

Ecrire un message privé
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Programme simple pouvant servir à connaître la méthode de Monte Carlo.

Jérôme MEGEL



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture PRODUIT ET SOMME DE MATRICES
Source avec Zip Source avec une capture CALCUL DE NOMBRES PREMIERS PAR CRIBLE D'ERATOSTHENE
Source avec Zip Source avec une capture DÉ ÉLECTRONIQUE OU DÉ VIRTUEL
Source avec Zip Source avec une capture SURVEILLANCE PAR WEBCAM (DÉTECTION DE MOUVEMENT) AVEC ENVOI ...

 Sources de la même categorie

Source avec Zip Source avec une capture CONVERTISSEUR HEXAVIGÉSIMAL par shaeks
Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTOGRAPHIE AFFINE par Tigrou66
Source avec Zip Source avec une capture SCANNER FLEX par lajouad
Source avec Zip EQUATIONSECONDDEGRÉ,MATH,DEGRÉ par shadkitenge
Source avec Zip Source .NET (Dotnet) SOMME DE CHIFFRES CONTENUE DANS UN NOMBRE par alpha5

Commentaires et avis

Commentaire de Gobillot le 24/06/2005 20:09:24

Pour la précision du calcul de Pi c'est pas très intéressant

par contre ça peut servir à tester une fonction congruente
à condition de faire quelques modifications:

- Randomize à mettre une seule fois en début de programme

- un DoEvents dans la boucle de calcul

- optimisation du calcul:
   - puissance de 2 remplaçé par une simple multiplication
   - puissance 0.5 inutile ici

        For i = 1 To nb_tir
            x = Rnd
            y = Rnd
            R = (x * x + y * y)
            If R <= 1 Then tir_inf = tir_inf + 1
            DoEvents
            Next i

pour une boucle complète avec Rnd de Vb (16777216 cas)
    résultat = 3.1415867805481
conclusion:
   test passé avec succès

Commentaire de jeromegel le 25/06/2005 14:47:32

Merci du tuyau c'est vrai que ce n'est pas très interessant mais c'est simplement un exercice de TP que l'on a fait.

Commentaire de ScSami le 25/06/2005 19:02:05

3.1415867805481 !!! Je comprends pas, c'est pas 3,1415926535897 théoriquement !?!?
:-/

Commentaire de Scalpweb le 26/06/2005 17:56:22

Mouai pareil pour moi.

En tout cas décidement, t'es un matheux JEROMEGEL ;-).
@+ tt le monde,
Scalpweb

Commentaire de Gobillot le 26/06/2005 18:43:45

il existe des tas de méthodes pour calculer les décimales de Pi avec précision:

- méthode des polygones
- méthode en arc tangente
- méthode des suites
- PI = 16arctg(1/5) - 4arctg(1/239)
- Pi = sum (1/16^i * (4/(8*i+1) - 2/(8*i+4) - 1/(8*i+5) - 1/(8*i+6)), i=0..infinity)
- et plein d'autres que j'arrive pas à copier ici

il existe aussi aussi des méthodes basées sur le hasard:

- les aiguilles de Buffon:
Le naturaliste français Georges Louis Leclerc comte de Buffon (1707-1788) montra que la probabilité pour qu'une aiguille de longueur L lancée sur un parquet dont les lattes ont une largeur L coupe le bord d'une latte est 2/Pi. Plus généralement, pour une aiguille de longueur a tombant sur des lattes de longueur b la probabilité est (2.a)/(b.Pi) .
i/n = (2*a) / (b*Pi) => Pi = (2*a*n) / (b*i) , où n est le nombre d'aiguilles lancées et i le nombre d'intersections.
La méthode de Buffon repose sur l'hyposthèse que l'espace physique est euclidien, et comme les autres méthodes basée sur le hasard n'a pas une très bonne efficacité : on a calculé que pour obtenir une précision de 1/1000 avec une probabilité de 95% il faudrait lancer environ 9000000 aiguilles. Et de plus on ne sait jamais avec quelle précision on connaît Pi.

- les fléchettes de Monté-Carlo:
Dans cette méthode, il s'agit de calculer stastistiquement la surface d'un disque.
Soit un disque de rayon 1, sa surface vaut Pi*r^2 = Pi*1*1 = Pi, le carré circonscrit à lui une surface S = (2*r)^2 = 2*2 = 4. En considérant que l'on lance des fléchettes de manière totalement aléatoire (sans chercher à viser le centre), le rapport entre le nombre de fléchettes à l'intérieur du disque et celui à l'intérieur du carré est égal au rapport des surfaces.
Sur la figure, il y en a 23 à l'intérieur du disque et 32 à l'intérieur du carré (on ne tient pas compte des fléchettes à l'extérieur du carré) d'où : Pi/4 = 23/32 donc Pi = 4*23/32 = 2,875.
Comme on peut s'en rendre compte cette technique n'est pas très performante comme toutes les techniques sur le hazard, car elles supposent un tirage aléatoire parfait, que l'on ne peut obtenir dans la pratique et qu'il faut lancer un nombre concidérable de fléchettes pour avoir une précision médiocre, et dont on n'est pas sûr à cause du fait que les tirages sont aléatoires.

- et d'autres méthodes

j'espère que ça répond à votre curosité
comme il faut un tirage aléatoire parfait, et un grand nombre de tirages sans être jamais sûr de la précision obtenue.
j'en ai conclu que plutôt d'espèrer calculer pi avec précision avec ces méthodes basées sur les nombres aléatoires, ça peut au contraire servir à tester les fonctions linéaires congruentielles qui permettrent de donner des nombres pas vraiment aléatoires, mais pseudo aléatoires.

- le résultat obtenue par le Rnd de Vb est tout à fait honorable je pense, faut pas espérer avoir plus.
rectifications: pour faire le tour complet avec vb il suffit de boucler 8388608 fois, puisqu'on prend 2 nombres à chaque fois,
inutile de faire de faire plus, puisqu'on retombera toujours sur les mêmes nombres.

- maintenant si vous créer votre propre fonction de tirage de nombres aléatoires, faut lui faire passer des tests, tests plus ou moins compliqués et très longs.
test du poker, test graphique, et plein d'autres
pouquoi pas le test du calcul de pi par la méthode du calcul aléatoire ?

Commentaire de ScSami le 26/06/2005 23:08:10

Waou! Merci pour toutes ces impressionnantes précisions Gobillot!
Respect

Commentaire de mynyroger le 27/06/2005 08:11:44

Vous vous compliquez la vie.

pi = 4 * Atn(1)

et vous avez pi=3.14159265358979

Commentaire de ScSami le 27/06/2005 15:36:46

Oui, et ATN(1), on l'obtient commment ?

Commentaire de ScSami le 27/06/2005 15:39:00

Enfin, je veux dire, sans la fonction du VB ?

Commentaire de Scalpweb le 27/06/2005 21:40:27

héhé pas bête lol
;-)

Vive les maths...

Commentaire de Gobillot le 27/06/2005 22:31:43

pour ScSami >>

on calcule par les séries

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

    Dim i  As Long
    Dim a  As Long
    Dim b  As Long
    Dim x  As Double
    Dim pi As Double
    
    a = 3: x = 1
    For i = 1 To 10000000
        b = a + 2
        x = x - 1 / a + 1 / b
        a = b + 2
        Next
    MsgBox "ATN(1)= " & x
    MsgBox "pi=" & x * 4

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,186 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales