Matlab Tirage Au Sort De La Simulation
Je dois écrire le code Matlab qui simule jetant une pièce de monnaie de 150 fois. Je dois compter combien de fois la pièce atterrit sur la tête et créer un vecteur qui donne à l'exécution d'un pourcentage de la tête.
Puis-je faire un tableau du nombre d'essais, aléatoire "flips", et les pourcentages de têtes. Je suppose aléatoire "flips" signifie à pile ou face pour cet essai.
J'ai aussi à la création d'une ligne graphique, avec des essais sur l'axe des x et les probabilités (en pourcentage) sur l'axe des ordonnées. Je suis en supposant que les pourcentages sont seulement de la part de l'obtention de têtes.
Désolé si ce post a été long. Je figure en donnant les détails maintenant rendre plus facile pour voir ce que j'essayais de faire avec le code. Je n'ai pas créer la table ou de la parcelle et parce que je ne suis même pas sûr de savoir comment code pour le problème réel.
NUM_TRIALS = 150;
trials = 1:NUM_TRIALS;
heads = 0;
t = rand(NUM_TRIALS,1);
percent_h = zeros(size(t));
for i = trials
if (t(i) < 0.5)
heads = heads + 1;
percent_h = heads./trials;
end
end
flips = t;
disp('Number of Trials, Random flips, Heads Percentage')
disp([trials', flips, percent_h'])
plot(trials,percent_h)
title('Trial Number vs. Percent Heads')
xlabel('Trial number')
ylabel('Percent Heads')
OriginalL'auteur user1772959 | 2012-12-14
Vous devez vous connecter pour publier un commentaire.
Votre code est en fait assez proche pour répondre à votre question, mais il y a quelques questions que je vois.
t
par l'actuel numéro d'essai.percent_h
devraient être indexés en conséquence. Ce doit être pré-alloué.z
est censé représenter...plot
.xlabel
donnera une étiquette de l'axe des x,ylabel
l'axe des y.title
va donner un nom à la parcelle.i
, pas de procès.Donc, votre code devrait ressembler à quelque chose comme ça. Il y a un bon nombre de façons de le simplifier, mais je vais conserver votre code autant que possible.
Vous devriez diviser par moi, pas de procès
J'ai essayé et je suis encore en train valeurs étranges. En divisant par je je reçois ce message d'erreur "??? Erreur à l'aide de ==> horzcat CHAT arguments dimensions ne sont pas compatibles." Je pense que la probabilité de calcul est bon parce que les valeurs look converger à 0,5, mais le graphique est toujours hyperbolique.
Comment était-il bizarre? Je l'ai juste testé maintenant, il est exactement comme je m'attends...
Je vais poster mon exact. ont peut-être changé quelque chose qui est en train de lancer. Je vais modifier l'OP avec le nouveau code.
OriginalL'auteur PearsonArtPhoto
Vous pouvez réellement résoudre ce plus simplement en profitant de quelques autres fonctions MATLAB, comme signalé par @PearsonArtPhoto. Tout d'abord, vous pouvez utiliser RANDI pour générer de la pièce, jette comme une tête. Ensuite, vous pouvez utiliser CUMSUM pour obtenir le nombre total de têtes. En divisant cet élément sage par
1:n
vous donne le cumul de la fraction de tête.OriginalL'auteur Edric