2014-01-28 3 views
1

я иметь переменные х, который подвергается блужданию в соответствии со следующими правилами:моделирования случайной прогулки в MATLAB

x(t+1)=x(t)-1; probability p=0.3 
x(t+1)=x(t)-2; probability q=0.2 
x(t+1)=x(t)+1; probability p=0.5 

а) я должен создать эту переменный, инициализированные в нуле и написать цикл на 100 шагов и который работает 10000 раз, сохраняя каждое окончательное значение в xfinal b) Мне нужно построить распределение вероятности xfinal (гистограмма), выбрав размер и нормализацию бункера !! * я должен сообщить среднее значение и дисперсию xfinal c) i должны воссоздать распределение путем применения центральной предельной теоремы и построить распределение вероятности на одном и том же участке!

справка была бы оценена в рассказе мне, как выбрать размер бункера и нормализовать гистограмму и как попытаться выполнить часть c) Ваша помощь очень ценится !!

p=0.3; 
q=0.2; 
s=0.5; 
numberOfSteps = 100; 
maxCount = 10000; 
for count=1:maxCount 
    x=0; 
    for i = 1:numberOfSteps 
     random = rand(1, 1); 
     if random <=p 
      x=x-1; 
     elseif random<=(p+q) 
      x=x-2; 
     else 
      x=x+1; 
     end 
    end 
    xfinal(count) = x; 
end 
[f,x]=hist(xfinal,30); 
figure(1) 
bar(x,f/sum(f)); 
xlabel('xfinal') 
ylabel('frequency') 
mean = mean(xfinal) 
variance = var(xfinal) 
+0

Благодарю вас, ребята, за вашу предыдущую помощь! теперь я столкнулся с другой проблемой !! когда я запускаю код ниже, линия, которая должна представлять кривую, генерируемую центральной предельной теоремой, намного ниже, чем гистограмма! что я делаю? Это должно произойти? спасибо – user3242545

+0

p = 0.3; q = 0,2; s = 0.5; numberOfSteps = 100; maxCount = 10000; % номер моделирования программы для count = 1: maxCount x = 0; для i = 1: numberOfSteps random = rand (1, 1); если случайный <= p x = x-1; elseif random <= (p + q) x = x-2; else x = x + 1; конец конец xfinal (count) = x; конец [f, x] = hist (xfinal, 30); рисунок (1) bar (x, f/sum (f)); – user3242545

+0

xlabel ('xfinal') ylabel ('frequency') средний (xfinal) variance = var (xfinal); Удержание на % применение центральной предельной теоремы % нахождение среднего Xp = -1; Xq = -2; Xs = 1; mu = Xp. * P + Xq. * Q + Xs. * S; muN = numberOfSteps. * Mu; % нахождение дисперсии sigma = (Xp).^2. * p + (Xq).^2. * q + (Xs).^2. * s; sigmaN = номерOfSteps. * (Сигма- (mu).^2); % построение кривой согласно CLT на предыдущем графике Y = 1/sqrt (2 * pi * (sigmaN)) * exp (- (x- (muN)).^2/(2 * (sigmaN))); plot (x, Y, '- y') – user3242545

ответ

0

Для первого вопроса, проверить помощь для Hist на MathWorks домашней странице

[nelements,centers] = hist(data,nbins);

Вы не выбрали размер BIN, но количество бункеров. nelements дает элементы для каждого бункера, а центр - все центры bin. Так сказать, это было бы то же самое, чтобы позвонить

hist(data,nbins);

в

[nelements,centers] = hist(data,nbins); 
    plot(centers,nelements); 

за исключением того, что представление отличается (линия или ворс). Чтобы нормализовать, просто разделите указатели с суммой (значения)

Для c, здесь i.i.d. переменные на самом деле являются различием, если переменные являются реальными или сложными. Однако для вещественных переменных центральная предельная теорема вкратце говорит вам, что для большого количества выборок распределение ограничивает нормальное распределение. Поэтому, если образцы являются реальными, вы просто усваиваете нормальное распределение, вычисляете среднее значение и дисперсию и считаете это нормальным распределением. Если переменные являются сложными, тогда каждая из переменных будет нормально распределена, что означает, что вместо этого вы будете иметь распределение rayleigh.

+1

Возможно, с помощью 'hist' можно выбрать размер бункера (путем предоставления вектора центров с равномерным интервалом) – nkjt

Смежные вопросы