Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


В.М. Лутковский, С.М. Мельников



 

 

Р е ц е н з е н т

кандидат физико-математических наук, доцент В.А.Фираго

Рекомендовано Ученым советом

факультета радиофизики и электроники

25 февраля 2003 г., протокол № 7

Методические указания к выполнению лабораторных работ по курсу «Математическое моделирование» / В.В. Апанасович, С.В. Гилевский, В.М. Лутковский, С.М. Мельников. – Мн.: БГУ, 2003. – 28 с.

 

Пособие предназначено для студентов факультета радиофизики и электроники.

 

 

УДК

ББК

ã БГУ, 2003


 

 

ВВЕДЕНИЕ

 

Настоящее издание представляет собой руководство к выполнению лабораторного практикума по курсу «Математическое моделирование». Лабораторные работы выполняются в интегрированной вычислительной среде MATLAB. Тематика практикума охватывает алгоритмы программной генерации случайных непрерывных и дискретных распределений, Пуассоновского потока случайных событий, методы тестирования разработанных генераторов, а также посвящены изучению возможностей среды MATLAB и его расширения – Simulink. Приведенные справочные теоретические сведения содержат достаточный объем информации, исключающий необходимость прибегать к другим источникам. Разделы методических указаний, посвященные изучению возможностей среды MATLAB для обработки и визуализации данных, для моделирования типовых радиофизических систем снабжены подробными примерами, облегчающими студентам освоение нового материала. Большой набор заданий с различным уровнем сложности дает возможность при проведении занятий учитывать способности и уровень каждого студента.

Лабораторная работа № 1

Функции системы MATLAB

Цель работы. Изучение основных функций системы MATLAB. Создание новых функций и построение их графиков в среде MATLAB. Решение систем линейных уравнений. Изучение генератора базовой случайной величины.

Краткие сведения. Система MATLAB (MATrixLABoratoty) предназначена для выполнения научных и инженерных расчетов на компьютере. С ее помощью эффективно решаются задачи вычислительной математики, линейной алгебры, математической статистики и математического моделирования (символьная математика, уравнения в частных производных, численное интегрирование, аппроксимация, решение оптимизационных задач). В ее состав входит несколько десятков специализированных пакетов (Toolbox), предназначенных для обработки данных в различных областях науки и техники (системы управления, нечеткие системы, нейронные сети, цифровая обработка сигналов и изображений).

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

Пример построения графика функции на экране монитора

> > x=0: 0.1: 6.28 % вектор значений аргумента 0< x< 6, 28, (шаг 0.1)

> > y=sin(x); % точка с запятой отключает вывод чисел на экран

> > plot(x, y) % построение графика функции

> > title (‘ Function sin(x) ’) % надпись в верхней части экрана

> > xlabel(‘ argument X’) % надпись по оси x

> > ylabel(‘ function Y ’) % надпись по оси y

Программу для системы MATLAB можно написать в любом текстовом редакторе, оформив ее как файл с расширением.m (например, mylab1.m). Имеется два варианта запуска такой программы на языке MATLAB:

· вызовом имени файла из командной строки (например, > > mylab1);

· с помощью команды Run, если файл не был предварительно открыт из окна MATLAB.

Следует помнить, что MATLAB первоначально обращается к каталогу, из которого открыт рабочий M-файл. Использование в качестве рабочих файлов имен функций, зарезервированных в системе MATLAB (sin, log, plot, hist, diff и др.), может нарушить ее нормальную работу. Поэтому не рекомендуется хранить создаваемые M-файлы в каталогах Matlab/Bin и Matlab/Toolbox. Рекомендуется для хранения M-файлов создать собственный рабочий каталог.

Загрузить систему MATLAB можно следующими способами:

· из старт-меню операционной среды Windows;

· двойным щелчком левой кнопки мыши по пиктограмме Matlab;

· из командной строки DOS путем набора имени командного файла “Matlab”, который последовательно загружает Windows, а затем Matlab. После загрузки пакета на экране монитора появляется окно интерпретатора команд. Приглашение интерпретатора для ввода очередной команды имеет вид “> > ”. Примечание: вводимые команды далее указаны курсивом!

Первоначальное знакомство с пакетом Matlab лучше всего начать с набора команды “intro”, которая запускает обучающую программу. Язык интерпретатора команд Matlab прост и легко поддается изучению. С основными возможностями пакета Matlab можно также ознакомиться и по демонстрационным примерам. Для их просмотра необходимо выполнить команду “demo”. По этой команде в окне интерпретатора команд появляется меню, позволяющее выбрать интересующий нас пример. Чтобы прервать выполнение демонстра-ционной программы, нажмите клавиши< Ctrl + C>.

Создание новых файлов. В системе MATLAB различают файлы двух типов: функции и скрипты (сценарии), не имеющие входных и выходных параметров. Скрипт можно определить как набор инструкций интерпретатора MATLAB. Функция имеет входные и выходные параметры. Структура функции поясняется следующим примером.

 

Строка определения функции: function f=fact(n)

H1 строка % FACT Factorial.

Строки комментария % FACT(N) returns the factorial of N

% FACT(N) is PROD(1: N).

Тело функциии f=prod(1: n);

MATLAB отображает Н1 строку при вызове помощи по целой директории или использовании оператора lookfor. Все строки комментария выводятся по команде > > help fact.

Порядок выполнения

1. Запустить пакет на выполнение двойным щелчком по иконке и войти в командное окно. Признаком готовности к работе служит символ > >. Командой “intro” запустить серию слайдов – введение в систему Matlab.

2. Ввести команду “demo”. Посредством выбора различных примеров познакомиться с вычислительными и графическими возможностями пакета Matlab. Обратить внимание на способы генерации векторов и матриц. Все действия (+, –, *, /, ^) выполняются над матрицами. Точка перед *, /, ^ означает действия над их элементами!

3. Получить индивидуальное задание (см. табл. 1.1). Запро-граммировать функцию, заданную полиномом y= axm+ bxm-1 +c. Для этого в командном окне выбрать группу команд File/ New/M-file, открыть блокнот и создать файл myfunc01.m, первая строка которого имеет вид function y= myname(x). При сохранении файла указать имя файла: myname.m, тип файла: Все файлы (*.*).

4. Построить график заданной функции с использованием команды “plot” (см.> > help plot ) на заданном интервале [x1, x2].

5. Озаглавить график функции и оси координат с использованием команд title, xlabel, ylabel (смотри help title и т.д.).

6. С помощью команды > > help изучить функции hist, text, disp, grid, hold on, quad (нахождение определенного интеграла), mean, inv.

7. Получить решение заданной системы линейных уравнений вида Ax = B , A квадратная матрица n ´ n, B вектор размерности n. Примеры индивидуальных заданий приведены в табл. 1.2.

8. Изучить функции генерации случайных чисел rand, randn. Построить гистограммы для выборок из N=100 чисел. Найти математическое ожидание и доверительный интервал для выборочного среднего.

Форма отчета. Формой отчета являются М-файлы, реализующие задания, представленные в разделе “Порядок выполнения”. В строках комментария необходимо указать номер группы и фамилию. Если отчет подготовлен с опозданием, необходимо предоставить подробный протокол выполнения работы в распечатанном виде.

 

Таблица 1.1

Параметры функций

a b=c a b=c a b=c
–0.5
–0.5 –2 –2
–0.5
–0.5 –10 –10
–0.5 –40 –40
–0.5 –20 –20
0.5 –60 –60 0.8

Таблица 1.2

Коэффициенты систем линейных уравнений

Вариант A B Вариант A B Вариант A B
2 1 3 4 5 –1 1 –1 2 3 1 1
2 2 2 4 1 4 2 –2 3 –3 –2 1 -5
4 4 4 8 –1 1 3 1 2 3 2 1
5 1 4 4 –5 2 1 1 2 2 1 2
4 1 1 1 4 1 8 –1 1 –4 3 2 –5
1 2 1 1 2 3 1 1 1 3 2 1
4 –1 2 1 –6 2 3 3 2 4 3 2 1

 

Лабораторная работа № 2

Моделирование непрерывной случайной величины методом обратных функций

Цель работы. Практическое освоение алгоритма программной генерации непрерывной случайной величины и методов статистической проверки разработанного генератора.

Краткие сведения.

Метод обратных функций. Предположим, что случайная величина x определена на конечном или бесконечном интервале [a; b] и имеет на этом интервале плотность распределения f(x) > 0. Пусть

(2.1)

функция распределения случайной величины x. Тогда, если получена реализация z случайной величины a, равномерно распределенной на [0; 1], выборочное значение случайной величины x может быть определено как корень уравнения

F(x) = z. (2.2)

В тех случаях, когда уравнение (2.2) аналитически разрешимо относительно x, получается явная формула x = G(z) для разыгрывания ее выборочного значения x. В других случаях решение (2.2) может быть найдено приближенно или для ее разыгрывания x следует применить другие методы.

Примеры:

· Случайная величена x распределена равномерно на интервале [a; b], т.е. ее функция распределения имеет вид

Для получения алгоритма ее генерации необходимо решить уравнение (x – a)/(b – a) = z, откуда следует x = a + (b – a)z.

· Случайная величина x определена при x> a с плотностью

f(x)= l exp(–l(x–a)).

В этом случае уравнение (2.2) имеет вид 1 – exp(–l(x–a)) = z, откуда получаем x = a – ln(1 – z)/l. Поскольку случайные величины a и (1–a) распределены одинаково, для расчета выборочного значения x обычно применяют формулу x=a – ln(z)/l.

Оценка математического ожидания. Для построения оценки математического ожидания случайной величины h в ячейке памяти компьютера будем накапливать сумму ее независимых выборочных значений, полученных в результате N-кратного моделирования. Оценкой математического ожидания случайной величины h служит выражение

(2.3)

Доверительный интервал для математического ожидания. Интервал [j1; j2] называется доверительным интервалом для параметра a с коэффициентом доверия b, если вероятность P{j1< a< j2}= b. Для математического ожидания m случайной величины h при известной дисперсии sh2 и достаточно большом N (N> 30) доверительный интервал можно приближенно построить следующим образом:

, (2.4)

где yN* – оценка математического ожидания, полученная по формуле (2.3), xb корень уравнения

(2.5)

Соответствующие значения xb приводятся в справочниках по теории вероятности и математической статистике.

Оценка дисперсии. В качестве оценки дисперсии случайной величины h можно использовать выражение

(2.6)

Для определения D* требуются две ячейки в памяти компьютера для накапливания значений и

Критерий согласия c2. Множество возможных значений X случайной величины x (которая может быть как непрерывной, так и дискретной) разбивается на r попарно непересекающихся подмножеств X1, …, Xr, таких, что

P{x Î Xj} = pj > 0 при j = 1, 2, …, r.

Очевидно, p1 + … + pr =P{x Î X}=1. Легко видеть, что если выбрать N независимых значений случайной величины x, то среднее число этих значений, принадлежащих Xj, равно Npj. Пусть число действительно попавших в j-е множество выборочных значений x, получаемых с помощью программного генератора, равно ni. В качестве меры отклонения генерируемого распределения от заданного берется величина

(2.7)

которая при достаточно больших N распределена по закону c2 с r – 1 степенью свободы, плотность ее выражается формулой

(2.8)

Чтобы проверить качество генерируемых чисел необходимо зафиксировать вероятность b (число, близкое к единице). На практике обычно значение равно 0, 95, 0, 99 или 0, 999. Затем по таблицам распределения c2 по величине 1–b и r–1 требуется определить величину c2(r–1, 1–b), являющуюся корнем уравнения

(2.9)

В справочниках по теории вероятности и математической статистике приводятся таблицы значений. Если вычисленное по формуле (2.7) значение c2N удовлетворяет неравенству c2N < c2(r–1, 1–b), то гипотеза о совпадении законов распределения заданной случайной величины и моделируемой программным генератором принимается. Этот вывод, конечно, нельзя считать абсолютным. Если получаемая последовательность удовлетворяет критерию c2, это еще не означает, что она успешно пройдет проверку другими тестами.

В качестве замечания о применении критерия c2 необходимо отметить, что если N заранее ограничено, то нельзя выбирать r слишком большим, так как тогда будут малыми величины Npj и неустойчивыми значения nj. Обычно рекомендуют выбирать Xj так, чтобы минимальные Npj были не меньше чем 20.

Критерий согласия w2. Данный критерий позволяет проверить гипотезы о функции распределения F(x) одномерной непрерывной случайной величины x. Схема использования точно такая же, как схема использования критерия c2: фиксируется доверительная вероятность b, из уравнения

a1(xb)=b (2.10)

находится соответствующее значение xb (таблица функций a1(x) приводится в справочниках по теории вероятности и математической статистике); полученные с помощью программного генератора выборочные значения x1, …, xN располагаются в порядке возрастания; по формуле

(2.11)

вычисляется w2N; если w2N < xb, то гипотеза о совпадении функций распределения генерируемой случайной величины и заданной принимается. Применять критерий можно уже при N > 100.

 

Порядок выполнения

1. Разработать алгоритм моделирования заданной (см. ниже таблицу 2.1) непрерывной случайной величины и программно его реализовать в среде MATLAB.

2. Провести тестовую проверку созданного генератора:

· получить оценку математического ожидания генерируемой случайной величины и сравнить ее с математическим ожиданием заданной;

· построить доверительный интервал для математического ожидания;

· получить оценку дисперсии генерируемой случайной величины и сравнить ее с дисперсией заданной величины;

· проверить гипотезу о соответствии генерируемой случайной величины заданному распределению по критерию c2;

· проверить гипотезу о соответствии генерируемой случайной величины заданному распределению по критерию w2;

· построить графики заданной плотности распределения случайной величины и плотности, полученной по сгенерированной выборке.

 

Форма отчета. М-файлы, реализующие задание.

 

Таблица 2.1


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-03; Просмотров: 419; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.054 с.)
Главная | Случайная страница | Обратная связь