Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа1_МС.doc
Скачиваний:
10
Добавлен:
08.02.2015
Размер:
6.67 Mб
Скачать

Проверка качества генератора

Проверка качества построенного генератора происходит после генерации выборки заданного объем и размещения ее в ячейках таблицы Excel. Проверка происходит путем:

1)Оценки допустимости отклонения среднего значения СВ от М(х), которое можно подсчитать для некоторого условного значенияM(x) = 12 поt-критерию Стьюдента:

где

Проверяемые гипотезы:

H0:

Значение tкр(=0.05,=n-1) можно найти в статистических таблицах или вызвать соответствующее значение функцииfx= СТЬЮДРАСПОБР в ячейкуExcel(см. ниже).

Если выполнено условие t<=tкр, то принимается гипотезаHo. В противном случае -H1, что потребует повторить генерацию выборки.

2)Оценки допустимости различия D(x) иSx.

3)Оценки допустимости отклонения экспериментальных от теоретических частот попадания СВ в заданные интервалы по 2– критерию:

Проверяемые гипотезы:

Ho:=Т

H1:Т

Значение 2кр(0.05,=k-1) можно найти в статистических таблицах или вызвать значение соответствующей функцииfx=Х2ОБР в ячейкуExcel.

Если выполнено условие , то принимается гипотезаHo. В противном случаеH1, что потребует повторить генерацию выборки и в случае неудачи проверить расчетные формулы.

4.Программная реализация

В практическую часть работы входит:

1)Создание средствами Excelтаблицы-шаблона по предлагаемому ниже образцу (файлgen) для ввода исходных данных и вывода результатов проверки допустимости отклонения параметров экспериментального распределения от параметров теоретического (Лист1).

2)Разработка по предлагаемому образцу макроса средствами VBAдляExcelдля генерации СВ с использованием предварительно полученных формул по типу вышеизложенного примера поВашему варианту выполнения работы.

3)Размещение генерируемых СВ в отдельной таблице (Лист2 “Генератор”) для возможности использования этих данных при анализе.

4)Представление результатов анализа в виде диаграммы экспериментальных и теоретических частот (Лист3 “Гистограмма”).

Следуя п.1, рассмотрим предлагаемый образец таблицы (рис.1). В левом верхнем углу листа следует поместить исходные данные, сопровождаемые текстовыми пояснениями. В ячейку R3C5 в качестве математического ожидания следует ввести некоторое произвольно выбранное для построения генератора значение, например, 12 (в реальной подпрограмме генератора это будет параметрpsвызова функции). В ячейкеR4C5 следует разместить минимально допустимое по расчету значение числа реализацийn. ЯчейкаR5C5 содержит произвольно выбираемое число разбиений для моделирования СВтолько методом УМ, обычно в пределах 10…25. В ячейкуR6C5 следует поместить число интервалов разбиения для анализа качества генератора, обычно в пределах 10…20, независимо от принятого метода моделирования.

Следующий блок (в рядах с 9 по 12 ) содержит рассчитанные теоретические характеристики моделируемого распределения и соответствующие экспериментальные данные. Так в ячейке R10C5 содержится полученная ранее формула для расчета правой границы распределенияачерез значениеps,справедливая только для данного типа графика функции распределения.Формула записывается через относительный адрес ячейки, откуда берутся данные для расчета. В данном случаеfx= (3/2)*R[-7}C. Это означает, что в качестве второго сомножителя следует взять число, содержащееся в ячейке на 7 рядов выше в той же колонке С по отношению к ячейкеR10C5, т.е. значениеpj. В ячейкуR11C5 значение М(х) передается по ссылке на ячейкуR3C5. ДисперсияD(x) в ячейкеR12C5 вычисляется по формулеp2s/8 со ссылкой на ту же ячейку. Экспериментальные данные в ячейках (10,6), (10,8), (11,6) и (12,6) являются результатом анализа выборки программой макроса, с которой мы познакомимся позже.

Рис.1.Начало таблицы для ввода исходных данных и анализа частот (Лист1).

Рис.2.Окончание таблицы (Лист1) с результатами анализа генератора

В следующем блоке в рядах R14…..R32 на рис.1 размещается таблица экспериментальных и теоретических частот попадания смоделированной СВ в интервалы равной ширины. Экспериментальные границы интервалов пересчитываются каждый раз программой макроса с учетом реальных минимального и максимального значений СВ для данной выборки, которая будет рассмотрена позднее. Теоретические частоты подсчитаны по приведенной в данном описании формуле также программой макроса. В ячейкахR32C5 иR32C7 содержатся формулы для суммы соответствующих столбцов.

На рисунке 2 приведена часть листа1 с анализом результатов реализации программного генератора СВ, которая демонстрирует очевидные удобства использования электронных таблиц для разработки генератора.

Рис.3. Фрагмент таблицы анализа генератора.

Как видно из рис.3, в ячейке R42C3 содержится известная формула для вычисленияt-критерия, записанная в относительных адресах используемых ячеек.

Рис.4.Тот же фрагмент таблицы с другой выделенной ячейкой.

Как видно из рис.4, в ячейке R42C8 содержится значение стандартной обратной функции распределения Стьюдента при уровне значимости= 0.05 и степени свободы=n– 1, предоставляемое по запросу средойExcel, гдеR[-38]C[-3] относительный адрес ячейки, содержащей число реализаций СВn.

Рис.5. Тот же фрагмент с выделенной ячейкой проверки условия t<tкр.

Как видно из рис.5, в ячейке R43C2 содержится логическое отношения, в зависимости от результата выполнения которого формируется различный текст заключения. Ввиду не тривиальности операции, приведем полный текст формулы:

fx=ЕСЛИ(R[-1]C[1]<R[-1]C[6];”t<t-кр.табл, следовательно, принимается гипотеза Но”;”t>tкр.табл., следовательно, принимается гипотеза Н1”)

Рис.6. Результаты проверки допустимости отклонения экспериментальных от теоретических частот попадания моделируемой СВ в заданные интервалы.

На рис.6 в ячейке R50C3 содержится вычисленное макросом значение2-критерия по данным выборки (макрос будет описан позже). В ячейкеR50C8 содержится соответствующее критическое значение того же критерия, полученное путем вызова стандартной функции ХИ2ОБР для уровня значимости=0.05 и степени свободы=k– 1.R[-44]C[-3] - относительный адрес числа интервалов разбиенияk.

В ячейке R51C2 содержится условное выражение:

=ЕСЛИ(R[-1]C[1]<R[-1]C[6];"Х-2 кр < Х-2 кр.табл, следовательно, принимается гипотеза Н0";"Х-2 кр >R[-16]C[11] Х-2 кр.табл, следовательно, принимается гипотеза Н1")

В зависимости от выполнения условии печатается тот или иной текст заключения о сходимости частот.

Окончательный вывод формируется с помощью текстового шаблона (см. рис.6), в который вставляются либо слова “соответствует ” и “может”, либо слова “не соответствует” и “не может”, в зависимости от результатов сравнения 2и2кртабл по выражениям:

=ЕСЛИ(R[-4]C[-7]<R[-4]C[-2];"соответствует";"не соответствует"

=ЕСЛИ(R[-5]C[-5]<R[-5]C;"может";"не может")

2)Согласно п.2 раздела “Программная реализация” следующей задачей является создание макроса на VBA, запускаемого от элемента управленияActiveX.

Вначале встроим элемент управления в виде кнопки на Лист1 и разместим на ней надпись ”Генерировать” вместо надписи по умолчанию CommandButton. Для этого в главном меню выберем Вид\Панели инструментов\Элементы управления. Появится панель элементов управления, на которой следует установить “Режим конструктора”. Кликнуть на пиктограмме с изображением кнопки и затем на свободном месте Листа1. Появится изображение кнопки с надписьюCommandButton. Далее следует нажать кнопку “Свойства” на панели элементов управления. Появится панель установки значений свойств, на которой следует установить курсор на свойствеCaption(Название элемента управления) и в соседнем справа поле заменить предлагаемое название на слово “Генерировать”, которое и должно появиться на кнопке.

Шрифт и размер надписи можно поменять свойством Font.

Далее следует отжать кнопку режима конструктора на панели элементов управления и дважды щелкнуть на внедренной кнопке “Генерировать”. Откроется редактор VBAсо следующим текстом – заготовкой макроса:

Private Sub CommandButton1_Click()

…………

End Sub

После заголовка следует поместить текст макроса, в данном случае для генерации линейно-возрастающего графика функции распределения универсальным методом:

Dim Psi(15) As Integer

n = Worksheets("Лист1").Cells(4, 5).Value

p = Worksheets("Лист1").Cells(3, 5).Value

k = Worksheets("Лист1").Cells(6, 5).Value

q = Worksheets("Лист1").Cells(5, 5).Value

a = (3 / 2) * p

For r = 1 To n

n = r

Randomize

gamma = Rnd(1)

j = Int(1 + q * gamma)

gamma = Rnd(1)

x = (a * (Sqr((j - 1) / q))) + (((a * (Sqr(j / q))) - (a * (Sqr((j - 1) / q)))) * gamma)

Worksheets("ГЕНЕРАТОР").Cells(2 + r, 1).Value = n

Worksheets("ГЕНЕРАТОР").Cells(2 + r, 2).Value = j

Worksheets("ГЕНЕРАТОР").Cells(2 + r, 3).Value = x

Next r

В начале вышеприведенного фрагмента устанавливается, из каких ячеек брать значения исходных данных для присвоения их переменным n,p,k,q,a. Затем в цикле заполняются 3 столбца на листе “Генератор”: 1-й столбец – значением порядкового номера реализации, 2-й - случайным номером интервала попаданияj, 3-й – значением х СВ с заданным законом распределения. Сдвиг на 2 строки вниз объясняется предварительно созданными на листе “Генератор” заголовками столбцов (рис.7)..

Рис.7. Фрагмент листа “Генератор”

Ниже приведен следующий фрагмент макроса, в котором вычисляются математическое ожидание и дисперсия моделируемой СВ.

Sum = 0

For i = 1 To n

Sum = Sum + (Worksheets("ГЕНЕРАТОР").Cells(2 + i, 3).Value)

Next i

Mat = Sum / n

Worksheets("Лист1").Cells(11, 6).Value = Mat

Sum1 = 0

For i = 1 To n

Sum1 = Sum1 + ((Worksheets(“ГЕНЕРАТОР").Cells(2 + i, 3).Value) - Mat) ^ 2

Next i

Disp = Sum1 / (n - 1)

Worksheets("Лист1").Cells(12, 6).Value = Disp

Далее определяются минимальное и максимальное значения в выборке СВ (MinиMax), ширина интервалаDeltaдля анализа экспериментальных частот, и заполняется таблица интервалов на листе 1.

Min = Worksheets("ГЕНЕРАТОР").Cells(3, 3).Value

For i = 1 To n

If (Worksheets("ГЕНЕРАТОР").Cells(2 + i, 3).Value) <= Min Then

Min = Worksheets("ГЕНЕРАТОР").Cells(2 + i, 3).Value

End If

Next i

Worksheets("Лист1").Cells(10, 6).Value = Min

Max = Worksheets("ГЕНЕРАТОР").Cells(3, 3).Value

For i = 1 To n

If (Worksheets("ГЕНЕРАТОР").Cells(2 + i, 3).Value) >= Max Then

Max = Worksheets("ГЕНЕРАТОР").Cells(2 + i, 3).Value

End If

Next i

Worksheets("Лист1").Cells(10, 8).Value = Max

Delta = (Max - Min) / k

For w = 1 To k

Worksheets("Лист1").Cells(16 + w, 1).Value = w

Worksheets("Лист1").Cells(16 + w, 2).Value = Min + ((w - 1) * Delta)

Worksheets("Лист1").Cells(16 + w, 3).Value = Delta + Min + ((w - 1) * Delta)

Next w

Заполненную таблицу интервалов можно видеть на рис.1.

Теоретические частоты PsiTподсчитываются в цикле по выведенной ранее формуле:

k = Worksheets("Лист1").Cells(6, 5).Value

For i = 1 To k

PsiT = (n / (k * k)) * ((2 * i) - 1)

Worksheets("Лист1").Cells(16 + i, 5).Value = PsiT

Next i

Ниже дан фрагмент программы для определения экспериментальных частот попадания СВ в интервалы равной ширины с ранее вычисленными границами:

For i = 1 To k

For h = 1 To n

If((Worksheets("ГЕНЕРАТОР").Cells(2 + h, 3).Value) >= (Worksheets("Лист1").Cells(16 + i, 2).Value)) And ((Worksheets("ГЕНЕРАТОР").Cells(2 + h, 3).Value) <= (Worksheets("Лист1").Cells(16 + i, 3).Value)) Then

Psi(i) = Psi(i) + 1

End If

Next h

Worksheets("Ëèñò1").Cells(16 + i, 7).Value = Psi(i)

Next i

Заключительный фрагмент касается расчета критерия 2 Пирсона, помещаемого в ячейкуR50C3 на листе 1:

Pearson = 0

For b = 1 To k

Pearson = Pearson + (((Worksheets("Лист1").Cells(16 + b, 7).Value) - (Worksheets("Лист1").Cells(16 + b, 5).Value)) ^ 2) / (Worksheets("Лист1").Cells(16 + b, 5).Value)

Next b

Worksheets("Лист1").Cells(50, 3).Value = Pearson

End Sub

Заключительной 4-й стадией программной реализации является построение для наглядности гистограммы экспериментальных и теоретических частот попадания СВ в заданные интервалы равной ширины.

Диаграмма строится на отдельном листе, поэтому, в случае нехватки 3-х стандартных листов, сначала нужно добавить новый лист к книге. Для этого следует кликнуть правой кнопкой на названии одного из “старых” листов, например, на Лист1, и в меню выбрать “Добавить”. Появится Лист4, название которого следует изменить на “Гистограмма”. Перейти на лист1 и на панели инструментов нажать кнопку “Мастер диаграмм”, и далее следовать его советам (4 шага). 1)Указать тип диаграммы “Гистограмма”; 2)На появившейся панели установить переключатель на “столбцах”, щелкнуть мышкой в окне “Диапазон” и выделить при нажатой кнопке Ctrlдва столбца экспериментальных и теоретических частот на Листе1. Появится гистограмма без надписей вдоль осей и названия. Лишний 3-й ряд следует удалить 3)На этом этапе появится панель, где будет предложено сделать подписи по осям и дать название гистограмме; 4)На этом заключительном шаге будет предложено указать место размещения гистограммы, нажать “Готово”.Вид полученной гистограммы показан на рис. 8.

Рис.8. Гистограмма распределения теоретических (ряд1) и экспериментальных (ряд 2)

частот попадания СВ в заданные интервалы для одной из выборок объемом 500 значений.