1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    octobre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 21
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2014
    Messages : 1
    Points : 2
    Points
    2

    Par défaut Marche aléatoire en dimension 2, résultats complètement faux

    Bonjour,

    Voici ce qu'on me demande de faire. On considère une suite An de sous-ensembles de Z² qui croît selon la règle suivante : à l'étape n, une particule est lancée à l'origine et se déplace jusqu'à ce qu'elle sorte de An par un point X. Elle se déplace suivant une marche aléatoire simple : soit au Nord, au Sud, à l'Est ou à l'Ouest avec une probabilité 1/4.
    On commence avec A1 = {(0,0)}. On note A(n+1) = An union X.

    Pour être plus claire, à l'étape 1, la particule se promène dans A1 = {(0,0)}.
    - Si elle sort de A1 par le point (0,1) (Nord), alors A2 = {(0,0),(0,1)}.
    - Si elle sort de A1 par le point (0,-1) (Sud), alors A2 = {(0,0),(0,-1)}.
    - Si elle sort de A1 par le point (1,0) (Est), alors A2 = {(0,0),(1,0)}.
    - Si elle sort de A1 par le point (-1,0) (Ouest), alors A2 = {(0,0),(-1,0)}.

    On cherche à représenter graphiquement An pour n grand.
    Lorsque n est grand, la forme limite de An est censée être un "rond". Voici un exemple de A(1000) :
    Nom : 1494766702-a1000-en-dimension-2.png
Affichages : 31
Taille : 78,4 Ko

    Voici mon code, j'avais cru comprendre que la particule se déplaçait uniquement sur les axes abscisses ou ordonnées...
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    function y=croissZ2(n)
    A0=[0 0]
    B0=[0 0]
    i=1;j=1
    while (i+j)<n
    e=2*rand()-1
    f=2*rand()-1
    if ((e<0) & (f<0))
    A0=[[(A0(1,1)-1),0];A0];
    i=i+1
    elseif ((e<0) & (f>0))
    A0=[A0;[(A0(i,1)+1),0]];
    i=i+1
    elseif ((e>0) & (f<0))
    B0=[[0,(B0(1,2)-1)];B0];
    j=j+1
    else
    B0=[B0;[0,(B0(j,2)+1)]];
    j=j+1
    end
     
    end
    y=[A0;B0]
    plot2d(y)
    endfunction
     
    disp(croissZ2(1000))
    Comme vous le voyez, les résultats sont complètement faux.
    Sauf qu'étant débutante, je ne vois pas du tout comment faire pour que An soit un cercle quand n est grand... Que faut-il changer dans mon code (vous allez me répondre "tout" xD) ? Je ne vois vraiment pas. Ça fait 3 jours que je bosse dessus, je serais très reconnaissante à la personne qui voudra bien m'aider... Bonne journée.

  2. #2
    Membre chevronné
    Homme Profil pro
    Inscrit en
    mai 2008
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 1 575
    Points : 2 061
    Points
    2 061

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. nfdump me retourne des résultats complétement faux
    Par supcomingenieur dans le forum Réseau
    Réponses: 0
    Dernier message: 21/06/2013, 18h23
  2. Intercorrelation, recherche d'image, problème de dimension du résultat
    Par Feriaman dans le forum Traitement d'images
    Réponses: 8
    Dernier message: 22/04/2009, 20h09
  3. Réponses: 0
    Dernier message: 22/04/2009, 14h27
  4. Programme multi processus qui marche aléatoirement
    Par Anonymouse dans le forum Linux
    Réponses: 1
    Dernier message: 13/10/2007, 20h56
  5. Réponses: 2
    Dernier message: 13/12/2006, 13h33

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