Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
В.М. Лутковский, С.М. Мельников
Р е ц е н з е н т кандидат физико-математических наук, доцент В.А.Фираго Рекомендовано Ученым советом факультета радиофизики и электроники 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 Параметры функций
Таблица 1.2 Коэффициенты систем линейных уравнений
Лабораторная работа № 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; Просмотров: 455; Нарушение авторского права страницы