Mi función llamada DicePlot, simula a la rodadura 10 dados 5000 veces. En la función, se calcula la suma de los valores de los 10 dados de cada rollo, que será un 1 × 5000 vector, y la trama de la frecuencia relativa histograma con los bordes de las bandejas de ser seleccionado en la misma manera en que cada bin en el histograma debe representar un valor posible de la suma de los dados.

La media y la desviación estándar se calcula de la 1 × 5000 sumas de dados los valores y la función de densidad de probabilidad de la distribución normal (con la media y la desviación estándar que se calcula a) en la parte superior de la frecuencia relativa histograma se representa.

Tengo todo hecho, pero estoy confundido en la forma de representar la función de densidad de probabilidad. cualquier ayuda es muy apreciada. gracias!

de referencia el gráfico se supone que se parecen!Cómo graficar una función de densidad de probabilidad en un histograma?

function DicePlot ( throw_num, die_num )

throw_num=5000
die_num= 10

  throws = rand ( throw_num, die_num );

  throws = ceil ( 6 * throws );

  for i = die_num : die_num*6
    j = find ( score == i );
    y(i-die_num+1) = length ( j ) / throw_num;
  end 

  bar ( x, y )

  xlabel ( 'Score' )
  ylabel ( 'Estimated Probability' )


  score_ave = sum ( score(1:throw_num) ) / throw_num;
  score_var = var ( score );



  return
end

1 Comentario

  1. 2

    He añadido el código de mi respuesta a tu pregunta anterior para trazar una escala de Gauss pdf en la parte superior de su histograma. Las dos principales adiciones son como sigue: 1) el Uso hold on y hold off para obtener el histograma y el diagrama en la misma figura. 2) la Escala de la salida de normpdf el tamaño adecuado por lo que está en la misma escala que el histograma.

    Otra cosa, yo no puedo ayudar pero aviso que no han incorporado las sugerencias de mi respuesta anterior en su función. La razón para esto? Yo ciertamente no +1 a tu pregunta, al menos puedo ver la evidencia de que hemos incorporado las sugerencias que hemos tenido en el pasado en su trabajo! Y ahora te has ido y me hizo sonar como uno de mis profesores de secundaria! 🙂

    %#Define the parameters
    NumDice = 2;
    NumFace = 6;
    NumRoll = 500;
    
    %#Generate the rolls and obtain the sum of the rolls
    AllRoll = randi(NumFace, NumRoll, NumDice);
    SumRoll = sum(AllRoll, 2);
    
    %#Determine the bins for the histogram
    Bins = (NumDice:NumFace * NumDice)';
    
    %#Build the histogram
    hist(SumRoll, Bins);
    title(sprintf('Histogram generated from %d rolls of %d %d-sided dice', NumRoll, NumDice, NumFace));
    xlabel(sprintf('Sum of %d dice', NumDice));
    ylabel('Count');
    hold on
    
    %#Obtain the mean and standard deviation of the data
    Mu = mean(SumRoll);
    Sigma = sqrt(var(SumRoll));
    
    %#Obtain the Gaussian function using 4 standard deviations on either side of Mu
    LB = Mu - 4 * Sigma; UB = Mu + 4 * Sigma;
    Partition = (LB:(UB - LB) / 100:UB)';
    GaussianData = normpdf(Partition, Mu, Sigma);
    
    %#Scale the Gaussian data so the size matches that of the histogram
    GaussianData = NumRoll * GaussianData;
    
    %Plot the Gaussian data
    plot(Partition, GaussianData, '-r');
    hold off

    ps, si usted no sabe a priori que el histograma debe Gaussiano (porque de un teorema central del límite), entonces también se puede utilizar ksdensity de la caja de herramientas estadísticas para obtener empírica de la densidad usando un kernel de la función.

Dejar respuesta

Please enter your comment!
Please enter your name here