Моделирование датчиков случайных чисел с заданным законом распределения
Проектирование датчика случайных чисел, пригодного для моделирования случайной последовательности с заданным законом распределения. Методы моделирования. Разработка алгоритма и программы датчика. Исследование свойств выработанной им последовательности.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 15.06.2010 |
Размер файла | 124,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Министерство Образования Республики Таджикистан
Таджикский Технический Университет
имени М.С. Осими
Кафедра «АСОИиУ»
Лабораторная работа №1
На тему: Моделирование датчиков случайных чисел с заданным законом распределения
Выполнила:
ст-т. 3-го курса гр. 2202 Б2
Принял: преподаватель кафедры
Ли И.Р.
Душанбе-2010
Лабораторная работа № 2
Моделирование датчиков случайных чисел с заданным законом распределения
I Цель работы
Целью работы является:
1. Практическое освоение методов моделирования случайных чисел с заданным законом распределения
2. Разработка и моделирование на ПЭВМ датчика случайных чисел с конкретным законом распределения
3. Проверка адекватности полученного датчика
II Теоретические сведения
1. Основные методы моделирования случайных последовательностей с заданным законом распределения
При исследовании и моделировании различных сложных систем в условиях действия помех возникает необходимость в использовании датчиков случайных чисел с заданным законом распределения. Исходным материалом для этого является последовательность x1,x2….xn с равномерным законом распределения в интервале [0,1]. Обозначим случайную величину, распределенную равномерно через ж(кси).
Тогда равномерно-распределенные случайные числа будут представлять собой независимые реализации случайной величины ж, которые можно получить с помощью стандартной функции RND (ж)- программно реализованной на ПЭВМ в виде генератора случайных чисел с равномерным законом распределения в интервале [0,1]. Требуется получить последовательность y1,y2,..yn независимых реализаций случайной величины з, распределенных по заданному закону распределения. При этом закон распределения непрерывной случайной величины может быть задан интегральной функцией распределения:
F(y)= P(ksiy) (1)
или плотностью вероятности
f(y)=F'(y) (2)
Функции f(y) и F(y) могут быть заданы графически или аналитически.
Для получения случайной величины з с функцией распределения F(y) из случайной величины ж, равномерно-распределенной в интервале [0,1], используются различные методы. К основным методам моделирования случайных чисел с заданным законом распределения относятся:
- метод обратной функции
- метод отбора или исключения
- метод композиции.
2. Метод обратной функции
Если ж- равномерно-распределенная на интервале [0,1] случайная величина, то искомая случайная величина может быть получена с помощью преобразования:
з=F-1 (ж) (3)
Где F-1 (ж) - обратная функция по отношению к функции распределения F(ж)
F(y)
1
ж
0 з y
Рис 1 Функция распределения F(ж)
Действительно, при таком определении случайной величины з имеем:
P(зy)=P{F-1(ж)y}=P{ ж F(y) }= F(y) (4)
В данной цепочке равенств первое равенство следует из (3), второе из неубывающего характера функций F(ж) и F-1 (ж) и третье из равномерного в интервале [0,1] распределения величин ж.
Таким образом, если задана функция распределения F(y), то для получения случайной последовательности с таким распределением необходимо найти ее обратную функцию.
Для нахождения обратной функции можно использовать два метода: аналитический и графический.
3.Метод отбора или исключения
Данный метод удобнее использовать, если требуемый закон распределения задан плотностью вероятности f(y). В отличии от метода обратной функции метод отбора или исключения для получения одного требуемого случайного числа требует не одного равномерно- распределенного случайного числа, а двух, четырех, шести или более случайных чисел. В этом случае область возможных значений з представляет конечный отрезок (a,b), а плотность вероятности f(y) ограничена сверху значением fmax (Рис.7). Тогда область значений з* и ж* можно ограничить ступенчатой кривой:
0, если y<a
g(y)= fmax, если a y b (25)
0, если y>b
Затем берутся с помощью генератора случайных чисел (RND(ж)) два равномерно-распределенных числа ж1 и ж2 , по которым определяются равномерные на интервале [a,b] независимые величины:
з '=a + (b-a)*ж1
ж'=fmax* ж2 (26)
Где a,b - границы возможных значений случайной величины з,
fmax- максимальное значение функции f(y) (Рис.7)
f(y) g(y)
fmax
f(y)
ж
a з ' b
Рис.7 Заданная плотность вероятности
Если ж' f (з ') , то з ' принимается в качестве очередной реализации случайной величины з. В противном случае з ' отбрасывается и берется следующая пара равномерно- распределенных случайных чисел ж1 и ж2 . Такая процедура повторяется до тех пор, пока мы не получим требуемого количества случайных чисел с заданной плотностью вероятности.
4. Метод композиции
Метод композиции основывается на представлении плотности вероятности fз (x) по формуле полной вероятности:
fз (x)= (27)
Где H(z)=P(жz)- интегральная функция распределения случайной величины ж;
P(x/z )- условная плотность вероятности.
Переходя к дискретной форме, интеграл заменяется на сумму и тогда получаем
fз (x)=Pj*fj (x) (28)
где Pj=1 (29)
fj (x) -условная плотность вероятности
Таким образом, для любой заданной плотности вероятности ее фигура единичной площади, ограниченной осью x и кривой fз(x), разбивается на произвольное число простых не пересекающихся частей gj (i=1,k),с площадями Pj (j=1,k), (Рис.8)
Рис.8Разбивка плотности вероятности на отдельном участке
fз(x)
g1 (Р1)
g2 (Р2) g3 (Р3)
x
g1 (Р1)
x
Рис. 9 Условные плотности
вероятности
g2 (Р2)
x
g3 (Р3)
x
Условные плотности вероятности имеют вид (Рис.9)
Для полученных условных плотностей вероятности одним из предыдущих методов определяются случайные последовательности, которые в сумме дадут требуемую случайную последовательность с заданной плотностью вероятности.
5. Оценка закона распределения
Для полученной случайной последовательности y1, y2,…,yn с заданным законом распределения необходимо провести оценку соответствия заданного закона распределения, который реализует смоделированный датчик случайных чисел. Поэтому для последовательности y1, y2,…,yn строится статистическая функция распределения
F* (y) (Рис. 10). На этом же графике строится интегральная функция распределения F(y) для заданного закона распределения и производится сопоставление F*(y) и F(y). Согласие закона проверяется по критерию Колмогорова. Для этого вычисляется статистика:
Ди=maxF*(y) - F(y) (30)
Для конечных решений и распределения статистики Ди получены пороговые значения в форме таблиц (Таблица 1.). По этой таблице для заданных объемов последовательности и и значению статистики Ди определяется уровень значимости .
Если гипотеза верна то статистика Ди* имеет в пределе при n распределение Колмогорова и квантили уровня P= (1-2) близки к 1. Это значит, что полученный генератор случайных чисел вырабатывает последовательность с заданным законом распределения. Если значения статистики Ди не попадают в пороговые значения, то такой генератор не годится для пользования.
F(y)
F(y) 1
F*(y)
0.5 Dn {
y
y1 y2 y3 y4 …….yn-1 yn
Рис.10Оценка распределения
III Содержание исследования
Исследование, проводимое в данной работе, заключается в получении программного датчика случайных чисел, пригодного для моделирования случайной последовательности с заданным законом распределения. При этом необходимо разработать алгоритм и программу датчика, а затем исследовать свойства выработанной им последовательности. При проведении исследований необходимо:
1.По двадцати числам (n=20) выведенным на печать построить статистическую функцию распределения F*(y)(рис.10) На этом же графике построить интегральную функцию распределения F(y) для заданного преподавателем закона распределения. Сопоставив значения F*(y)и F(y), вычислить статистику Ди (30).
2. Составить блок- схему и программу для ПЭВМ, в которой следует предусмотреть построение статистического ряда и вычисление статистики Ди по критерию Колмогорова.
3.По таблице пороговых значений статистики Ди произвести оценку распределения.
4. Для полученной последовательности произвести оценку математического ожидания, дисперсии, среднеквадратического отклонения.
Блок- схема генератора
Интерфейс программы:
Листинг программы:
Private Sub Command1_Click()
Dim n As Integer
Dim p1, p2 As Integer
Dim Y() As Variant, X As Double
p1 = 0: p2 = 0: m = 0: d = 0
List1.Clear
Randomize
X = 0.5
n = Val(Text1.Text)
ReDim Y(n) As Variant
For i = 1 To n
X = Rnd(X)
List1.AddItem ("x(" + Str(i) + ")=" + Str(X))
If X < 0.7 Then
p1 = p1 + 1
Y(i) = 2
m = m + Y(i)
List1.AddItem ("y(" + Str(i) + ")=" + Str(Y(i)))
Else
p2 = p2 + 1
Y(i) = 10 * X - 5
m = m + Y(i)
List1.AddItem ("y(" + Str(i) + ")=" + Str(Y(i)))
End If
Next i
List1.AddItem ("кол. точек с вер-ю 0.7: p1=" + Str(p1))
List1.AddItem ("кол. точек с вер-ю 0.3: p2=" + Str(p2))
List1.AddItem ("ВЕРОЯТНОСТИ:")
List1.AddItem (" 0.4<=x<0.7 --- 0" + Str(p1 / n))
List1.AddItem (" 0.7<=x<=1 --- 0" + Str(p2 / n))
m = m / n
List1.AddItem ("мат ожидание = " + Str(m))
For i = 1 To n
d = d + (Y(i) - m) ^ 2
Next i
d = d / (n - 1)
b = Sqr(d)
List1.AddItem ("диссперсия = " + Str(d))
List1.AddItem ("сререднекв откл = " + Str(b))
'построение интегральной функции
Picture1.Scale (-2, 11)-(11, -2)
Picture1.Line (0, -2)-(0, 11)
Picture1.Line (-2, 0)-(11, 0)
Picture1.PSet (-1, 11)
Picture1.Print ("f(x)")
Picture1.PSet (10.5, -0.3)
Picture1.Print ("x")
Picture1.PSet (-0.7, 4)
Picture1.Print ("0.4")
Picture1.PSet (-0.7, 7)
Picture1.Print ("0.7")
Picture1.PSet (-0.7, 10)
Picture1.Print ("1")
Picture1.PSet (2, -0.3)
Picture1.Print ("2")
Picture1.PSet (5, -0.3)
Picture1.Print ("5")
For i = 0 To 11 Step 0.001
If i < 2 Then
l = 4
Else
If i < 5 Then
l = (0.1 * i + 0.5) * 10
Else
l = 10
End If
End If
Picture1.PSet (i, l)
Next i
Picture1.Line (2, 4)-(2, 7)
'построение обратной функции
Picture2.Scale (-2, 11)-(11, -2)
Picture2.Line (0, -2)-(0, 11)
Picture2.Line (-2, 0)-(11, 0)
Picture2.PSet (-1, 11)
Picture2.Print ("x")
Picture2.PSet (10.5, -0.3)
Picture2.Print ("f(x)")
Picture2.PSet (-0.7, 2)
Picture2.Print ("2")
Picture2.PSet (-0.7, 5)
Picture2.Print ("5")
Picture2.PSet (4, -0.3)
Picture2.Print ("0.4")
Picture2.PSet (7, -0.3)
Picture2.Print ("0.7")
Picture2.PSet (10, -0.3)
Picture2.Print ("1")
For i = 4 To 10 Step 0.001
If i < 7 Then
l = 2
Else
l = i - 5
End If
Picture2.PSet (i, l), vbRed
Next i
Picture2.Line (4, 0)-(4, 2), vbRed
Picture2.Line (10, 5)-(10, 11), vbRed
End Sub
Подобные документы
Применение случайных чисел в моделировании, выборке, численном анализе, программировании и принятии решений. Понятие равномерного распределения вероятности. Способы получения последовательности. Правила выбора модуля. Критерий Колмогорова-Смирнова.
курсовая работа [1,3 M], добавлен 17.03.2011Формирование устойчивой последовательности псевдослучайных чисел с использованием метода "середины квадрата". Разработка программы для определения среднего значения чисел, среднего значения квадратов чисел и дисперсии для последовательности из 20 чисел.
лабораторная работа [1,4 M], добавлен 21.01.2015Структура и функции генератора случайных чисел. Методы предельного уменьшения ошибки второго рода. Усиление шумового сигнала. Его дискретизация по времени и аналого-цифровое преобразование. Формирование случайной последовательности и ее корреляция.
курсовая работа [299,4 K], добавлен 11.12.2014Способы получения случайных чисел в программировании и их использование для решения ряда задач. Принцип действия и тестирование работы генератора случайных чисел в Borland C++, его преимущества. Генерация одномерной и двумерной случайной величины.
лабораторная работа [105,4 K], добавлен 06.07.2009Анализ способов построения генераторов случайных чисел для криптографических задач. Анализ генератора случайных чисел на основе магнитометров. Анализ статистических свойств двоичных последовательностей, полученных путем квантования данных магнитометра.
дипломная работа [2,5 M], добавлен 06.05.2018Применение метода имитационного моделирования с использованием генератора случайных чисел для расчета статистически достоверных переменных. Создание программы на языке GPSS. Результаты моделирования диспетчерского пункта по управлению транспортом.
курсовая работа [399,9 K], добавлен 28.02.2013Выбор метода моделирования дифференциальной стохастической системы и постановка задачи. Построение численной модели дифференциальной стохастической системы. Результаты моделирования. Текст программы. Проверка датчика случайных.
курсовая работа [429,6 K], добавлен 22.06.2007Написание программы для генерации случайных чисел, в которой реализуются возможности генерации абсолютно случайных чисел. Приложение на языке С/С++. Описание узла, содержащего данные; функций и методов работы; чтения данных из памяти и вывода их на экран.
курсовая работа [172,4 K], добавлен 23.05.2012Характеристика графического языка UML. Моделирование случайной величины с заданным законом распределения. Мультипликативный конгруэнтный метод Лемера. Диаграмма вариантов использования для ресторана. Операции классов, их взаимодействие и подчиненность.
курсовая работа [663,1 K], добавлен 05.01.2016Характеристика вероятностного алгоритма и особенности его использования. Принцип работы и назначение генератора случайных чисел, сущность псевдослучайных чисел. Рассмотрение и реализация метода середины квадрата, разработка алгоритма и его кодирование.
курсовая работа [50,3 K], добавлен 18.09.2009