ВУЗ: Московский технический университет связи и информатики
Категория: Учебное пособие
Дисциплина: Программирование
Добавлен: 23.10.2018
Просмотров: 6241
Скачиваний: 74
СОДЕРЖАНИЕ
Раздел 1. Основы работы с математическим пакетом Matlab
Тема 1.1. Элементы рабочей среды Matlab
1.1.1.Элементы рабочей среды Matlab и простейшие вычисления
1.1.2. Основные объекты системы Matlab
1.1.3. Лабораторная работа по теме «Элементы рабочей среды Matlab и простейшие вычисления»
1.2.2. Построение графиков и визуализация вычислений в системе MatLab
1.2.3. Лабораторная работа по теме
«Векторы, матрицы и построение графиков
1.2.4. Контрольные вопросы по теме
Тема 1.3. Средства Matlab для создания и описания m-файлов
Пример 1.3.5-1. Даны n чисел . Требуется вычислить их сумму: где
1.3.6. Лабораторная работа по теме
«Средства алгоритмизации и программирования
1.3.7. Контрольные вопросы по теме
Раздел 2. Технология решения вычислительных задач средствами MatLab
Тема 2.1. Решение нелинейных уравнений
2.1.2. Лабораторная работа по теме
«Технология решения нелинейных уравнений средствами пакета MatLab»
1. Вопросы, подлежащие изучению
2.1.3. Контрольные вопросы по теме
Тема 2.2. Технология аппроксимации интерполяции функций в среде пакета MatLab
Рис. 2.2.1-5. Вычисление функции в точке х=0.58
Рис. 2.2.2-7. Графики интерполирующих функций
Тема 2.4. Технология решения обыкновенных дифференциальных уравнений
Рис. 2.4.1-2. Решение ОДУ методом Рунге-Кутты четвертого порядка
1. Вопросы, подлежащие изучению
Тема 2.5. Технология решения задач одномерной оптимизации
2.5.2. Лабораторная работа по теме
«Технология решения задач одномерной оптимизации»
1. Вопросы, подлежащие изучению
3. Варианты индивидуальных заданий
2.5.3. Контрольные вопросы по теме
Тема 2.6. Технология решения задач многомерной оптимизации
2.4.2. Лабораторная работа по теме
«Технология решения обыкновенных
дифференциальных уравнений средствами MatLab»
1. Вопросы, подлежащие изучению
-
Нахождение символьного выражения производной от функции с использованием функции diff().
-
Вычисление числовых значений производных в точках.
-
Функции Matlab, предназначенные для решения ОДУ (ode23(), ode45()).
-
Вывод результатов решения ОДУ в виде таблицы.
-
Получение графического решения ОДУ.
2. Общее задание
-
Изучите материал Темы 2.4 (п. 2.4.1).
-
Выберите индивидуальный вариант задания из табл. 2.4.2-1.
-
Найдите символьное выражение производной от функции f(x) и вычислите значение производной от функции f(x) в произвольной точке с.
-
Найдите решение ОДУ на отрезке [a;b] с шагом h с использованием функций ode23() и ode45().
-
Создайте матрицу решений, записав в первый столбец аргумент, во второй и третий - решение, полученное с использованием функций ode23() и ode45(), а в четвертый столбец – погрешность метода (модуль разности решений ОДУ с использованием функций ode23() и ode45()).
-
Выведите полученную таблицу по столбцам.
-
Постройте графики полученных решений ОДУ в одном шаблоне.
-
Сохраните текст рабочего окна на внешнем носителе.
-
Представьте результаты работы преподавателю, ответьте на поставленные вопросы.
-
Выполните команду clear all.
-
Оформите отчет по выполненной работе.
-
Варианты индивидуальных заданий
Таблица 2.4.2-1
-
№
f(x)
ОДУ
Начальные условия
b
h
1
0,5
0,5
2
1.2
3
0.4
4
1
0,5
5
0.4
0,2
6
1
7
0.2
0,2
8
0.5
0,25
9
0,25
10
0,5
11
0,3
0,15
12
0,5
0,25
13
0,5
0.5
14
0,5
15
0,5
16
0,5
17
2
0,5
18
0,5
19
0,5
20
0,25
21
22
0,5
23
1,5
0,5
24
1.4
25
0,5
26
0,5
27
0,5
28
1,4
0,2
29
1,4
0,2
30
2
0.5
-
Содержание отчета
-
В форме комментариев:
-
Название лабораторной работы
-
ФИО студента, номер группы
-
№ варианта
-
Индивидуальное задание
-
Протокол вычислений (сессии) в окне Command Window, снабженный необходимыми комментариями.
2.4.3. Контрольные вопросы по теме
-
Какие начальные условия должны быть заданы в соответствии с задачей Коши при решении ОДУ средствами системы Matlab?
-
Какие численные методы реализованы в функциях Matlab ode23() и ode45()?
-
Что является входными параметрами функций ode23() и ode45()?
-
В какой форме должны быть записаны функции ОДУ при использовании ode23() и ode45()?
-
Можно ли задать при решении ОДУ средствами Matlab требуемую точность вычислений?
-
Что представляет собой решение ОДУ второго порядка при использовании функций ode23() и ode45()?
-
Почему при решении ОДУ старших порядков необходимо использовать векторную функцию?
Тема 2.5. Технология решения задач одномерной оптимизации
2.5.1. Решение задач одномерной оптимизации функций
2.5.2. Лабораторная работа по теме «Технология решения задач
одномерной оптимизации»
2.5.3. Контрольные вопросы по теме
2.5.1. Решение задач одномерной оптимизации
При решении задачи поиска экстремума (максимума или минимума) функции y=f(x) одной переменной выделяют задачи поиска локального и глобального экстремума. При этом задача нахождения максимума целевой функции сводится к задаче нахождения минимума путем замены функции f(x) на -f(x), поэтому в дальнейшем будем говорить только о поиске минимума функции, то есть такого x*[a, b], при котором f(x*) = minf(x).
Интервал, на котором локализован единственный минимум, называется отрезком неопределенности.
Необходимым условием существования экстремума дифференцируемой функции f(x) является выполнение равенства f(х) = 0. Точка х, удовлетворяющая данному условию, называется точкой стационарности. Достаточным условием существования минимума в точке стационарности является выполнение неравенства f(х)>0, а максимума - f(х)<0.
Задача одномерной оптимизации имеет единственное решение в том случае, если функция f(x) на отрезке [a;b] имеет только один экстремум. Тогда говорят, что функция унимодальна на отрезке [a;b].
Достаточными условиями унимодальной функции на отрезке [a;b] являются:
- для дифференцируемой функции f(x) ее производная f(х) - неубывающая;
- для дважды дифференцируемой функции f(x) выполняется неравенство f(х)0.
Для решения задачи одномерной оптимизации с заданной степенью точности используются методы: дихотомии, золотого сечения, средней точки и многие другие [1]. При этом суть методов одномерного поиска заключается в том, что на каждой итерации интервал неопределенности уменьшается и стягивается к точке минимума. Уменьшение отрезка происходит до тех пор, пока на некоторой n-й итерации отрезок неопределенности bn;an не станет соизмеримым с заданной погрешностью , то есть будет выполняться условие |bn-an| <. Тогда за точку минимума можно принять любую точку, принадлежащую этому отрезку, в частности, его середину.
В MatLab поиск локального минимума осуществляет функция fminbnd(), имеющая следующий формат:
[x, y] = fminbnd(name, a, b), где:
name – имя функции, вычисляющей значение f(x);
a, b – границы интервала, на котором осуществляется поиск минимума;
x, y – координаты точки минимума на заданном интервале.
Чтобы с использованием функции Matlab fminbnd() вычислить локальный максимум, необходимо взять целевую функцию с противоположным знаком.
Пример 2.5.1-1. Найти локальный минимум функции .
Решение задачи начнем с построения графика (рис. 2.5.1-1 и 2.5.1-2). Определим отрезок, содержащий точку минимума, исходя из вида графика функции. Если это возможно, то на этом отрезке следует провести полное исследование функции на унимодальность: от функции получить и первую, и вторую производные и показать, что должна быть неубывающей, а .
Рис. 2.5.1-1. Построение графика функции f(x)
Рис. 2.5.9-2. График функции f(x)
Из графика следует, что на отрезках [-4;-3] и [3;5] имеются локальные минимумы. Исследуем функцию и поведение производных, например, на отрезке [3;5].
Для вычисления производных используем функцию Matlab diff(), имеющую следующий формат: diff(f, x, n). В качестве параметров этой функции используется:
-
F – дифференцируемая функция;
-
x – аргумент функции (переменная дифференцирования);
-
n – порядок производной.
Получение значений функции и производных на выбранном отрезке приведено на рис. 2.5.1-3.
Рис. 2.5.1-3. Исследование функции f(x) на отрезке [3;5]
Из полученной таблицы значений функции и производных видно, что на отрезке [3;5] существует единственный минимум. Найдем координаты этого минимума с использованием функции Matlab fminbnd() (рис. 2.5.1-4).
Рис. 2.5.1-4. Нахождение координат точки минимума функции f(x)
2.5.2. Лабораторная работа по теме
«Технология решения задач одномерной оптимизации»
1. Вопросы, подлежащие изучению
-
Условие унимодальности функции на отрезке.
-
Получение таблиц значений функции и ее производных с использованием средств пакета Matlab.
-
Технология использования встроенной функции пакета Matlab – fminbnd().
2. Общее задание
-
Изучите материал Темы 2.5 (п. 2.5.1).
-
Выберите индивидуальное задание из табл. 2.5.2-1.
-
Постройте график функции f(x), выберите отрезок, содержащий минимум.
-
Проверьте на выбранном отрезке условие унимодальности функции, получив таблицу значений первой или второй производной.
-
Найдите координаты точки минимума f(x) с использованием встроенной функции Matlab fminbnd().
-
Сохраните текст рабочего окна на внешнем носителе.
-
Представьте результаты работы преподавателю, ответьте на поставленные вопросы.
-
Выполните команду clear all.
-
Оформите отчет по выполненной работе.
3. Варианты индивидуальных заданий
Таблица 2.5.2-1
№ |
f(x) |
№ |
f(x) |
1 |
16 |
||
2 |
17 |
||
3 |
18 |
||
4 |
19 |
||
5 |
20 |
||
6 |
21 |
||
7 |
22 |
||
8 |
23 |
||
9 |
24 |
||
10 |
25 |
||
11 |
26 |
||
12 |
27 |
||
13 |
28 |
||
14 |
29 |
||
15 |
30 |
-
Содержание отчета
-
В форме комментариев:
-
Название лабораторной работы
-
ФИО студента, номер группы
-
№ варианта
-
Индивидуальное задание
-
Протокол вычислений (сессии) в окне Command Window.
2.5.3. Контрольные вопросы по теме
-
Понятия локального и глобального минимума функции.
-
Можно ли средствами Matlab вычислить глобальный минимум заданной функции?
-
Какие функции необходимо использовать перед поиском локального минимума?
-
Какая функция Matlab позволяет получить символьные выражения для производных от функции?
-
Назначение функции diff(f, x, n) и ее параметров.
-
Функция fminbnd(name, a, b) и назначение ее параметров.
-
Можно ли с использованием функции вычислить локальный максимум?