Учебное пособие: Matlab Пособие

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
  1. Содержание отчета

  1. В форме комментариев:

  • Название лабораторной работы

  • ФИО студента, номер группы

  • № варианта

  • Индивидуальное задание

  1. Протокол вычислений (сессии) в окне Command Window, снабженный необходимыми комментариями.


2.4.3. Контрольные вопросы по теме


  1. Какие начальные условия должны быть заданы в соответствии с задачей Коши при решении ОДУ средствами системы Matlab?

  2. Какие численные методы реализованы в функциях Matlab ode23() и ode45()?

  3. Что является входными параметрами функций ode23() и ode45()?

  4. В какой форме должны быть записаны функции ОДУ при использовании ode23() и ode45()?

  5. Можно ли задать при решении ОДУ средствами Matlab требуемую точность вычислений?

  6. Что представляет собой решение ОДУ второго порядка при использовании функций ode23() и ode45()?

  7. Почему при решении ОДУ старших порядков необходимо использовать векторную функцию?

Тема 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. Вопросы, подлежащие изучению

  1. Условие унимодальности функции на отрезке.

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

  3. Технология использования встроенной функции пакета Matlab – fminbnd().

2. Общее задание

  1. Изучите материал Темы 2.5 (п. 2.5.1).

  2. Выберите индивидуальное задание из табл. 2.5.2-1.

  3. Постройте график функции f(x), выберите отрезок, содержащий минимум.

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

  5. Найдите координаты точки минимума f(x) с использованием встроенной функции Matlab fminbnd().

  6. Сохраните текст рабочего окна на внешнем носителе.

  7. Представьте результаты работы преподавателю, ответьте на поставленные вопросы.

  8. Выполните команду clear all.

  9. Оформите отчет по выполненной работе.

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

  1. Содержание отчета

  1. В форме комментариев:

  • Название лабораторной работы

  • ФИО студента, номер группы

  • № варианта

  • Индивидуальное задание

  1. Протокол вычислений (сессии) в окне Command Window.

2.5.3. Контрольные вопросы по теме

  1. Понятия локального и глобального минимума функции.

  2. Можно ли средствами Matlab вычислить глобальный минимум заданной функции?

  3. Какие функции необходимо использовать перед поиском локального минимума?

  4. Какая функция Matlab позволяет получить символьные выражения для производных от функции?

  5. Назначение функции diff(f, x, n) и ее параметров.

  6. Функция fminbnd(name, a, b) и назначение ее параметров.

  7. Можно ли с использованием функции вычислить локальный максимум?

Тема 2.6. Технология решения задач многомерной оптимизации

2.6.1. Решение задач многомерной оптимизации функций

2.6.2. Лабораторная работа по теме «Технология решения задач

многомерной оптимизации»

2.6.3. Контрольные вопросы по теме

2.6.1. Решение задач многомерной оптимизации

Задача, требующая нахождения оптимального значения функции m переменных Q(Х) = Q(x1, x2, …, xm), называется задачей многомерной оптимизации. Так же, как и для случая одномерной оптимизации, задача нахождения максимума функции сводится к задаче нахождения минимума путем замены целевой функции Q на -Q.

В постановке задачи безусловной оптимизации для Q(Х)=Q(x1,x2,…,xm) требуется найти хотя бы одну точку минимума Х* и вычислить Q*=f(Х*). Точка Х* Rm называется точкой глобального минимума функции Q на множестве Х, если для всех Х Rm выполняется неравенство Q(Х*) Q(Х). В этом случае значение Q(Х*) называется минимальным значением функции Q на Rm. Точка Х*Rm называется точкой локального минимума функции Q, если существует такая - окрестность U этой точки (>0), что для всех Х Х = Х U выполняется неравенство Q(X*) Q(X).

Для всякой непрерывно дифференцируемой функции Q достаточным условием того, что функция имеет точку минимума, является положительная определенность матрицы вторых частных производных (матрицы Гессе):

Известно, что для того чтобы матрица была положительно определена, необходимо, чтобы все угловые миноры были положительны. Так, для функции двух переменных Q(x, y) матрица Гессе имеет вид:

,

а достаточным условием существования минимума является выполнение неравенств:

Аналитический метод поиска минимума применяется только для ограниченного круга задач. В основном это связано с необходимостью решения системы нелинейных уравнений, которая, как правило, решается численными методами. Гораздо проще решать задачу многомерной оптимизации численными методами, например, такими как метод градиентного спуска с дроблением шага и методы наискорейшего спуска с аналитическим или численным выбором шага [1].

Вычисление экстремума функции нескольких переменных

z = f(x1, x2, …xn)

в MatLab осуществляет функция:

[X, Z] = fminsearch(name, x0),

где:

  • name – имя функции, зависящее от n переменных;

  • x0 – вектор из n элементов, содержащий координаты точки начального приближения;

  • X – вектор из n элементов, содержащий координаты точки, в которой достигается минимум;

  • Z – значение функции в точке с координатами X.

Рассмотрим работу функции fminsearch() на примере определения минимума двумерной функции f(x1, x2) = x12 + x22 - x2 - 2x1 + 2.

Рис. 2.6.1-1. Результат выполнения функции ezsurf()

Построим график (рис. 2.6.1-1) с использованием функции ezsurf(), аргументами которой служат: выражение функции, заключенное в одинарные кавычки, вектор изменения первой производной и вектор изменения второй переменной.

>> ezsurf ('x1.^2+x2.^2-x2-2*x1+2', [-2 2], [-2 2])

При нахождении минимума функции оформим многомерную функцию в виде m-функции (рис. 2.6.1-2).

Рис. 2.6.1-2. Целевая функция F(x)

Определим координаты точки минимума и значение функции в этой точке с использованием функции Matlab minsearch() (рис. 2.6.1-3).

Рис. 2.6.1-3. Использование функции fminsearch() для нахождения

минимума многомерной функции

Источник: https://files.student-it.ru/previewfile/529