Générer n nombres pseudo-aléatoires en matlab
ozagi
Messages postés
24
Statut
Membre
-
ozagi Messages postés 24 Statut Membre -
ozagi Messages postés 24 Statut Membre -
Bonjour,
je dois créer une fonction matlab permettant de générer n nombres pseudo-aléatoires en appliquant une congruence linéaire avec les paramètres a,c, m et x0
la forme général de es générateurs est
X(k+1) = (a X(k) + c) mod m
quelqu'un peut m'aider de faire ça, merci d'avance
je dois créer une fonction matlab permettant de générer n nombres pseudo-aléatoires en appliquant une congruence linéaire avec les paramètres a,c, m et x0
la forme général de es générateurs est
X(k+1) = (a X(k) + c) mod m
quelqu'un peut m'aider de faire ça, merci d'avance
1 réponse
-
Bonjour,
Tu peux faire quelque chose comme suit :
X = zeros(n,1);
X(1,1) = x0
for k = 2 : n
X(k+1,1) = mod(a*X(k,1) + c,m )
end
Tu aura un vecteur colonne contenant les valeurs de X.
Mais je sais pas si j'ai bien saisi la question.
Ca à l'air d'être un piège. ^^
Bonne journée-
-
Bonjour,
Le zeros(n,1) initialise le vecteur.
X est alors un vecteur colonne de n lignes contenant des 0.
On peut ensuite le remplir avec les valeurs calculées par la suite.
Si n est connu, ca permet d'optimiser un peu le code.
Pour de petites valeurs de n, on ne voit pas la différence.
Pour de grandes valeurs de n, le résultat est plus que visible (temps de calcul).
Bonne journée -
-
-
Excusez moi, je suis débutant en matlab et j'ai écrit ce code pour la mm exercice
function X=Exercice2_Question3(a,c,m, X0,n)
X= zeros(n,1);
X(1,1)=X0;
for k=2:n
X(k+1,1)=mod(a*X(k,1)+c,m);
end;
et après j'ai essayé d'exécuter ce code et le logiciel de matlab m'affiche
>> Exercice2_Question3(123456789,65539,0,2^31,1200)
??? Undefined function or method 'Exercice2_Question3' for
input arguments of type 'double'.
merci d'avance
-