Методы безусловной оптимизации
Задания для контрольной работы №1 по дисциплине “Оптимальное управление”
Содержание
Одномерная оптимизация 2
Многомерная безусловная оптимизация 10
Список литературы:
1. Марьясин О.Ю., Цыганков М.П. Оптимальное управление. Часть 1. Задачи конечномерной оптимизации. Учебное пособие / Ярославль. – Изд-во ЯГТУ, 2011. – 171 с.
2. Марьясин О.Ю. Практикум по оптимизации и оптимальному управлению. Учебное пособие / Ярославль. – Изд-во ЯГТУ, 2016. – 196 с.
3. Аттетков А.В., Галкин С.В., Зарубин В.С. Методы оптимизации: Учеб. для ВУЗов / Под ред. В.С. Зарубина, А.П. Крищенко. – М.: Изд-во МГТУ им. Н.Э.Баумана, 2003. – 440 с. (Серия: Математика в техническом университете, том XIV)
4. Пантелеев А.В. Методы оптимизации в примерах и задачах: Учебное пособие / А.В.Пантелеев, Т.А.Летова. – М.: Высш. Шк., 2005. – 544 с.
5. Васильков Ю.В., Василькова Н.Н. Компьютерные технологии вычислений в математическом моделировании. – М.: Финансы и статистика, 2002. – 256 с.
Одномерная оптимизация
Задания по изучению методов одномерной оптимизации
1.1) Используя необходимые и достаточные условия найти аналитическим способом минимум функции, заданной в таблице 1.1.
Таблица 1.1 – Варианты заданий к/р для функции одномерного поиска
№ | Оптимизируемая функция f(x) | Диапазон поиска |
1.2) По таблице 1.2 определить численный метод, заданный по фамилии студента и последней цифре зачетной книжки. Изучить принцип поиска минимума данным численным методом (по литературе) и найти минимум функции, заданной в таблице 1.1, численным способом с точностью ширины интервала не более 0,05.
В контрольной работе должен быть представлен график функции, таблицы с результатами исследований поиска (например, в программе Excel), где должны быть отражены границы и длины интервалов на каждой итерации, а также на границы и дины новых участков должны быть отмечены на графике (см. пример оформления на стр. 4-7).
1.3) Используя пакет оптимизации Optimization Toolbox программы MATLAB найти минимум функции, заданной в таблице 1.1 (см. стр. 8-9).
Сравнить полученные результаты точки минимума, найденные аналитическим, численным и программным методом.
Таблица 1.2 – Распределение методов одномерной оптимизации
Первая буква фамилии студента | |||||||||
Последняя цифра зачетной книжки | А - В | Г - Е | Ж - Й | К - Н | О - Р | С - У | Ф - Ц | Ч - Щ | Э - Я |
Номера методов, указанные в таблице 1.2:
1) метод равномерного поиска;
2) метод половинного деления;
3) метод золотого сечения;
4) метод чисел Фибоначчи;
5) метод параболической аппроксимации;
6) метод хорд (с использованием производных);
7) метод касательных (Ньютона).
Пример поиска минимума одномерной функции численным методом
Используем метод деления пополам. Его алгоритм заключается в следующем.
Решение задачи поиска минимума одномерной функции при помощи программы MATLAB
Optimization Toolbox (пакет оптимизации) – это библиотека функций, расширяющих возможности системы MATLAB по численным методам и предназначенная для решения задач оптимизации и систем нелинейных уравнений. Поддерживает основные методы оптимизации функций многих переменных.
В Optimization Toolbox пакета программ MATLAB для решения задач одномерной нелинейной оптимизации с ограничениями вида x 1 < x <x 2 используется функция fminbnd. Алгоритм поиска базируется на методе золотого сечения и квадратичной интерполяции.
Запись функции:
x = fminbnd(fun,x1,x2)
x = fminbnd(fun,x1,x2,options)
[x,fval] = fminbnd(…)
[x,fval,exitflag] = fminbnd(…)
[x,fval,exitflag,output] = fminbnd(…)
Аргументы функции:
1. fun – целевая функция должна быть задана либо с помощью функции inline, либо как m -файл.
2. options – опции:
2.1. Display – уровень отображения: 'off' – вывод информации отсутствует, 'iter' – вывод информации на каждой итерации, 'final' - вывод только итоговой информации;
2.2. MaxFunEval – максимальное число вычислений функции;
2.3. MaxIter – максимальное допустимое число итераций;
2.4. Tolx – допуск останова вычислений по величине изменений x;
2.5. TolFun – допуск останова вычислений по величине изменений функции.
Возвращаемые параметры:
1. x – решение задачи;
2. fval – значение целевой функции в точке минимума;
3. exitflag – информация о характере завершения вычислений. Если эта величина положительная, то вычисления завершились нахождением решения x, если она равна нулю, то останов произошел в результате выполнения предельного числа итераций, если данная величина отрицательна, то решение не найдено;
4. output – информация о результатах оптимизации:
4.1. output.iterations – число выполненных итерации;
4.2. output.funcCount – число вычислений функции;
4.3. output.algorithm – используемый алгоритм.
Порядок работы
1.3.1 Поиск минимума функции, заданной в командной строке inline
Рассмотрим поиск минимума функции, являющейся элементарной, например f(x) = sin(x).
1. Ввести переменную options=optimset('Display','iter').
2. Задать диапазон изменения переменной x на интервале [π/2, 5π/2].
3. Получить значения функции y=sin(x) на заданном интервале.
4. С помощью команды plot(x,y) построить график функции y=sin(x) одной переменной и визуально найти минимум функции.
5. Решить задачу одномерной оптимизации c использованием функции [x,fval,exitflag,output] = fminbnd(‘sin’,pi/2,5*pi/2,options).
6. Проанализировать результаты решения. Отметить используемый алгоритм поиска, который будет отображен на экране в ходе вычислений.
1.3.2 Поиск минимума функции, заданной как m -файл.
Рассмотрим поиск минимума функции y=(x-2)2 - 1 на интервале [0,5], которая не является элементарной.
1. Задать диапазон изменения переменной x на интервале [0, 5].
2. Получить значения функции y=(x-2)2 - 1 на заданном интервале.
3. С помощью команды plot(x,y) построить график функции y=(x-2)2 -1 одной переменной и визуально найти минимум функции.
4. Представить данную функцию в виде m-файла:
function f = myfun(x)
f = (x – 2)^2 – 1;
сохранить функцию в файл myfun.m.
5. Вычислить функцию в точке x=0, используя команду myfun(0).
6. Используя функцию
[x,fval,exitflag,output] = fminbnd(‘myfun’,0,5,options).
7. Проанализировать результаты решения и сравнить с результатами, найденными аналитическим и численным способами.