Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx54 / ММкурсовая_20111220_231825.docx
Скачиваний:
59
Добавлен:
01.08.2013
Размер:
181.68 Кб
Скачать
  1. Использование пакета Simulink для моделирования случайных чисел.

Рассмотрим моделирование случайной величины в пакете Simulink на примере моделирования простого события.[5]

Пусть имеется событие А, вероятность наступления которого равна РА. Требуется выработать правило, при многократном использовании которого частота появления события стремилась бы к его вероятности. Выберем с помощью датчика случайных чисел, равномерно распределенных в интервале(0,1), некоторое число z и определим вероятность того, что(формула ( )):

()

Для случайной величины z с равномерным распределением справедлива следующая зависимость z < РА.

Таким образом, вероятность попадания случайной величины в интервал (0,РА) равна величине РА. Поэтому если при розыгрыше число z попало в этот интервал, то следует считать, что событие А произошло. Противоположное событие (не А) произойдет с вероятностью (1 – РА) в том случае, если z > = РА.

Вот как это будет выглядеть в Simulink(Error: Reference source not found):

Рисунок 1

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

Осциллограф Scope-строит графики исследуемых сигналов в функции времени. Позволяет наблюдать за изменениями сигналов в процессе моделирования (в данном случае графически изображает числа, создаваемые генератором случайных чисел).

Цифровой дисплей Display-отображает значение сигнала в виде числа (в данном случае отображает результат сравнения в предыдущем блоке Relational operator).

Блок вычисления операции отношения Relational Operator- блок сравнивает текущие значения входных сигналов.

Блок Uniform Random Number генерирует случайные числа (СЧ), равномерно распределенные на интервале [0;1].

  1. Программа в matlab

Как было сказано в первой главе, генераторы случайных чисел подвергают ряду различных тестов, чтобы убедиться в том, что он качественный. В нашей программе мы ограничимся тестами на погрешность математического ожидания, дисперсии и среднеквадратичного отклонения от теоретических значений этих параметров в равномерном распределении. Тестировать будем генератор rand.

Исходный код программы(скрипт):

clear, clc

n=input('Введите размерность выборки случайных чисел: n= ');

kol=input('Введите количество обращений к функции rand:kol=');

m=0.5;

d = 1/12;

for i=1 : kol

x=rand(n,1);

m1=mean(x);

Disp(i) = abs((var(x)- d)/d)*100;

Og(i) = ((m1-m)/m)*100;

Otk(i) = abs((std(x)- sqrt(1/12))/sqrt(1/12))*100;

end

i=1 : kol;

ok1=figure(1);

set(ok1, 'name', 'Проверка качества генератора rand')

plot(i,Og);

str = '\bf\fontsize{11}\fontname{times}График зависимости погрешности математического ожидания от количества обращений к функции rand';

title(str)

xlabel('\bf\fontsize{11}\fontname{times} Количество обращений')

ylabel('\bf\fontsize{11}\fontname{times} Погрешность')

ok2=figure(2);

set(ok2, 'name', 'Проверка качества генератора rand')

plot(i,Disp);

str = '\bf\fontsize{11}\fontname{times}Зависимости погрешности дисперсии от количества обращений к функции rand';

title(str)

xlabel('\bf\fontsize{11}\fontname{times} Количество обращений')

ylabel('\bf\fontsize{11}\fontname{times} Погрешность')

ok3=figure(3);

set(ok3, 'name', 'Проверка качества генератора rand')

plot(i,Otk);

str = '\bf\fontsize{11}\fontname{times}График зависимости погрешности среднеквадратичного отклонения от количества обращений к функции rand';

title(str)

xlabel('\bf\fontsize{11}\fontname{times} Количество обращений')

ylabel('\bf\fontsize{11}\fontname{times} Погрешность')

Результат выполнения(Рисунок 2)

Рисунок 2

Соседние файлы в папке docx54