C'est quoi le problème dans mon programme?

anihak_stid Messages postés 8 Statut Membre -  
anihak_stid Messages postés 8 Statut Membre -
Bonjour,
j'ai un programme qui me donne des variables aleatoires suivant une loi normale par la methode de box muller le problème c'est qu'en resultat il me donne un vecteur de 1 1 1 1 or quand j'essai de verifier j'ai des valeur # 1

2 réponses

  1. Utilisateur anonyme
     
    Hummmm !
    Difficile a dire sans connaitre le programme ?
    0
    1. anihak_stid Messages postés 8 Statut Membre
       
      j'ai posté le programme
      0
  2. anihak_stid Messages postés 8 Statut Membre
     
    clear all
    clc
    %DECLARATIONS

    S=0;
    premier=[];
    mu=[];
    PARAMETRE=[];
    RR=[];
    RRR=[];
    R2=[];
    MODELE=[];
    D=[];
    D1=[];
    moy=[];
    R1=[];
    PM=[];
    PM1=[];
    mu=[];
    a=[];
    boxm=[];

    %BEGIN

    M=100;
    N=100;
    %RDS%**********************************************
    while sum(moy)<=N
    y=0;
    while y==0
    B=round(M*rand(1));
    y=isprime(B);
    end
    B
    %generation des Ri
    for i=1:B
    rs=(i-0.5);
    R=rs/B;
    R1(i)=R;
    end
    R1;
    %Mélanger le vecteur
    for i=1:B
    p1=round(B*rand(1));
    while(p1<i)|(p1>B)
    p1=round(B*rand(1));
    end
    va=R1(p1);
    R1(p1)=R1(i);
    R1(i)=va;
    end
    R1
    G=R1;%contient le dernier vecteur généré
    R2=R2(1:sum(moy));
    R2=[R2,R1];
    moy=[moy length(R1)]
    end
    premiert=moy(1:length(moy)-1); %premiert contient les tous les nomb'res premiers moins le dernier
    R1=G(1:N-sum(premiert));% contient les N- somme(nombre premiers-1) valeurs km
    RR=R2(1:length(R2)-length(G));
    RRR=[RR,R1]
    R3=RRR;

    %Remelanger

    for i=1:N
    p2=round(N*rand(1));

    while(p2<i)|(p2>N)
    p2=round(N*rand(1));
    end
    va1=R3(p2);
    R3(p2)=R3(i);
    R3(i)=va1;
    end
    R3
    %_________--________--_________--_________--_________

    %generation du vecteur des ALEAS Suivant une dist_rademacher
    for i=1:N
    alea=2*round(RRR)-1;
    mu=alea';
    end

    %génération de v.a avec la M.Box_muller (N(0,1))
    m=0; %moyenne
    v=1; %variane
    i=1;
    t=sqrt(v);
    while (i <= N)
    u(i)=RRR(i);
    u(i+1)=R3(i);
    y(i)=sqrt(-2*log(u(i)))*cos(2*pi*u(i+1));
    y(i+1)=sqrt(-2*log(u(i)))*sin(2*pi*u(i+1));
    x(i)=t*y(i)+m;
    x(i+1)=t*y(i+1)+m;
    i=i+2;
    end
    0
    1. Judge_DT Messages postés 27651 Date d'inscription   Statut Modérateur Dernière intervention   10 013
       
      Salut,

      Lorsque tu postes du code sur le forum, veille à bien utiliser les balises de code ;-)

      Bien à toi,
      0
    2. Utilisateur anonyme
       
      Tu doit modifié: PARAMETRE=[];
      0
    3. anihak_stid Messages postés 8 Statut Membre
       
      oui c'est avec matlab c sa le code!!
      0
    4. anihak_stid Messages postés 8 Statut Membre
       
      ah mais ce n'est pas le problème, le problème ce pose au niveau des y(i), j'ai des 1
      0