IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Probabilités Discussion :

point aleatoire


Sujet :

Probabilités

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Points : 5
    Points
    5
    Par défaut point aleatoire
    Bonjour,
    j ai a vous soumettre une petite question concernant l utilisation des generateurs de nombres aleatoires.
    Est ce que l un d entre vous connait un algorithme qui permet de tirer de facon aleatoire un point a la surface d une sphere.
    Merci
    Ford

  2. #2
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut Re: point aleatoire
    Citation Envoyé par ford_escort
    Bonjour,
    j ai a vous soumettre une petite question concernant l utilisation des generateurs de nombres aleatoires.
    Est ce que l un d entre vous connait un algorithme qui permet de tirer de facon aleatoire un point a la surface d une sphere.
    Tout dépend de la qualité de l'aléa, ou plutôt de la répartition des points, demandée.

    Il est possible de tirer aléatoirement une paire de coordonnées (azimut, élévation) ou (latitude, longitude), mais cela amène un risque de concentration des points dans les zones polaires.

    Il est aussi possible de tirer les coordonnées de points sur une projection de la sphère, sur un plan, un cylindre ou un cône par exemple. Selon la projection retenue, on aura ou non une certaine homogénéïté de la répartition des points ...

    Il y a encore d'autres possibilités et diverses combinaisons ...

    Bon courage.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Points : 5
    Points
    5
    Par défaut point aleatoire
    Ce qu il me fait c une distribution uniforme sur la sphere. C est a dire que tous les points aient la meme distribution de probabilite afin d eviter d avoir trop de point dans les zones polaires
    ford

  4. #4
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Un moyen simple (mais approché) est de tirer un point au hasard dans l'espace et de le projeter sur la sphère.

    En pratique, on peut tirer les points dans un cube englobant la sphère mais les directions correspondant aux sommets du cube sont favorisées... Toutefois si le cube est nettement plus grand que la sphère l'approximation me semble bonne.

    Sinon, il faut choisir la latitude de manière non uniforme, c'est à dire que la proba de la latitude est fonction de la longueur du parallèle associé.

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par FrancisSourd
    En pratique, on peut tirer les points dans un cube englobant la sphère mais les directions correspondant aux sommets du cube sont favorisées... Toutefois si le cube est nettement plus grand que la sphère l'approximation me semble bonne.
    Je ne vois pas en quoi les tailles relatives du cube et de la sphere vont changer quelque chose a la repartition. Si c'etait le cas, projeter sur une petite sphere puis sur la grande aurait un resultat different de projeter directement sur la grande, ce qui evidemment n'est pas le cas.

    Je tirerais des points dans l'espace, eliminerais ceux qui ne sont pas dans la sphere puis rojeterais ceux qui restent sur la sphere.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  6. #6
    Membre averti Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Points : 352
    Points
    352
    Par défaut
    Salut,

    Pourquoi ne pas tirer aleatoirement une coordonnée spherique. de plus je suppose dans ton cas tu connais le rayon de ta sphere donc ca enleve une coordonnée, il ne reste plus qu'a tirer aleatoire Theta et Phi (les deux angles en coordonnées spheriques)

    Puis ensuite tu peux facilement repasser en coordonnées cartesiennes si c'est ce que tu veux.

    XXiemeciel
    XXiemeciel

  7. #7
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par xxiemeciel
    Pourquoi ne pas tirer aleatoirement une coordonnée spherique. de plus je suppose dans ton cas tu connais le rayon de ta sphere donc ca enleve une coordonnée, il ne reste plus qu'a tirer aleatoire Theta et Phi (les deux angles en coordonnées spheriques)
    C'est la premiere proposition, mais c'est tres inhomogene comme repartition.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  8. #8
    Membre averti Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Points : 352
    Points
    352
    Par défaut
    pourquoi est ce inhomogene ? Je ne voit pas tres bien ce qui peut causer ca.

    XXiemeciel
    XXiemeciel

  9. #9
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par xxiemeciel
    pourquoi est ce inhomogene ? Je ne voit pas tres bien ce qui peut causer ca.
    Regarde la densite de meridiens pres du pole par rapport a la densite de meridiens a l'equateur.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  10. #10
    Membre averti Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Points : 352
    Points
    352
    Par défaut
    ok je crois que je comprend, il y a plus de plus de point pour la meme surface au niveau des poles

    XXiemeciel
    XXiemeciel

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    on peut considérer que si on coupe la sphère en 4 on va obtenir quatre surfaces identiques
    on commence par en tirer une au sort
    on choisit une grandeur de la précision désirée si on trace autant de cercles qu'il y a de parties fluentes égales à la grandeur de précision
    on peut calculer une constante de la somme des cercles définis
    on dispose alors de la totalité des possibilités on tire au somme parmi la somme de ces possibilités cela donne

    ceci donne en vb

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Function ssin(nbfrac As Long) As Double
    Dim x As Long
    Dim rep As Single
    Dim rech As Single
    For x = 0 To nbfrac
    rep = rep + 1 - Sin(3.141592654 / 180 * x / nbfrac * 90)
    Next x
    Randomize
    rep = Rnd() * rep
    For x = 0 To nbfrac
    rech = rech + 1 - Sin(3.141592654 / 180 * x / nbfrac * 90)
    If rech > rep Then Exit For
    Next x
    ssin = x * 90 / nbfrac
    End Function

    c'est l'angle en degré par rapport au centre
    il suffit de faire un tirage pour choisir le point sur son cercle
    Elle est pas belle la vie ?

  12. #12
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par FrancisSourd
    Un moyen simple (mais approché) est de tirer un point au hasard dans l'espace et de le projeter sur la sphère.

    En pratique, on peut tirer les points dans un cube englobant la sphère mais les directions correspondant aux sommets du cube sont favorisées... Toutefois si le cube est nettement plus grand que la sphère l'approximation me semble bonne.

    Sinon, il faut choisir la latitude de manière non uniforme, c'est à dire que la proba de la latitude est fonction de la longueur du parallèle associé.
    Je suis assez d'accord avec cette méthode.
    Autre solution pour les latitudes et longitudes, tirer la longitude et la latitude en degrés.

  13. #13
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Miles
    Autre solution pour les latitudes et longitudes, tirer la longitude et la latitude en degrés.
    En quoi cela changera la non-equirepartition?
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  14. #14
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Pour éviter de favoriser les pôles ce qui est le cas dans ce qui a été décrit + haut je propose sans avoir vérifié d'approcher le problème comme suit:
    1. 1er point alléatoire sur la sphère définie par x^2+y^2+z^2 = 1 ( ou R^2)

    2. à partir du point Pn obtenir le point P(n+1) comme suit
    - calculer A = random(pi)
    - prendre le cône d'axe OPn et de 1/2 angle au sommet A. il coupe la shère suivant un cercle
    - prendre une origine alléatoire (ou non ? )sur ce cercle et tourner d'1 angle alléatoire pour fixer P(n+1)


    Ceci devrait revenir à un calcul alléatoire de Phi et Theta mais avec redéfinition (pseudo?) alléatoire de l'axe z à chaque itération du calcul.

  15. #15
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par j.p.mignot
    Pour éviter de favoriser les pôles ce qui est le cas dans ce qui a été décrit + haut
    Je ne vois pas en quoi tirer un point dans l'espace, recommencer tant qu'il est en dehors de la sphere ou que c'est son centre, et ensuite le projeter sur la sphere favorise les poles.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  16. #16
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Citation Envoyé par FrancisSourd
    En pratique, on peut tirer les points dans un cube englobant la sphère mais les directions correspondant aux sommets du cube sont favorisées... Toutefois si le cube est nettement plus grand que la sphère l'approximation me semble bonne.
    Je ne vois pas en quoi les tailles relatives du cube et de la sphere vont changer quelque chose a la repartition. Si c'etait le cas, projeter sur une petite sphere puis sur la grande aurait un resultat different de projeter directement sur la grande, ce qui evidemment n'est pas le cas.

    Je tirerais des points dans l'espace, eliminerais ceux qui ne sont pas dans la sphere puis rojeterais ceux qui restent sur la sphere.
    Effectivement, c'est ce qu'il faut faire!

  17. #17
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    soit s la surface
    si je fais random()*s=x
    je calcule une grandeur aléatoire dépendant de s
    si x>s/2 je suis dans l'hémishére sud sinon dans l'hémisphère nord
    au sud la calotte vaut s-x au nord (s/2) -x
    connaissant la surface de la calotte je peux calculer sa hauteur qui me donne la latitude
    pour la longitude pi*random fait l'affaire
    Elle est pas belle la vie ?

  18. #18
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Citation Envoyé par Miles
    Autre solution pour les latitudes et longitudes, tirer la longitude et la latitude en degrés.
    En quoi cela changera la non-equirepartition?
    Si on tire d'abord la longitude, on ne peut pas tirer la latitude uniformément, ça déséquilibre, comme on l'a tous dit. En fait, si on calcule la probabilité selon la surface, on aimerait se retrouver avec une valeur constante quelque soit la surface. Pour cela, si on paramétrise la sphère en degré pour la latitude et qu'on tire donc selon un arccosinus d'une variable aléatoire de densité de probabilité uniforme, on obtiendra ce qu'on veut, non ?

  19. #19
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Si l'on veut vraiment se donner du mal, il me vient à l'esprit une méthode que l'on pourrait appeler "la méthode de la balle de golf".

    On plaque un maillage homogène sur la sphère (par triangulation, par exemple).

    Il suffit ensuite de tirer une maille au hasard et de placer le point en son centre.

    La précision souhaitée est réglable avec le nombre de mailles plaquées sur la sphère.

    L'analogie avec la balle de golf vient du maillage quasi-homogène de 384 alvéoles qui recouvre celles-ci et améliore leurs performances de vol.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  20. #20
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    on ne peut pas tirer la latitude en degré sans modifier l'égalité
    ce serait dire que la surface au pole est égale à celle à l'équateur
    pour une même différence de latitude si on procéde pour la terre en assimilant la surface à un rectangle on aura pour 1 de largeur au pole
    un carré d'environ 2pi() de surface
    à l'équateur on autait 40000 m2
    Elle est pas belle la vie ?

Discussions similaires

  1. [Débutant] Génération de points aleatoires
    Par adnino dans le forum MATLAB
    Réponses: 2
    Dernier message: 22/04/2014, 15h50
  2. [Débutant] point aleatoire selon gaussienne
    Par gegon dans le forum MATLAB
    Réponses: 7
    Dernier message: 11/02/2013, 11h45
  3. [C#] Affichage aleatoire de points ....!?
    Par christophebmx dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/01/2005, 15h13
  4. compression de données du point de vue algorithmique
    Par GoldenEye dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 26/06/2002, 15h51
  5. savoir si 1 point est a l'intérieur d'un cercle ...
    Par skarladevobsy dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 23/05/2002, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo