В форме комментариев:
Название лабораторной работы
ФИО студента, номер группы
№ варианта
Индивидуальное задание
Протокол вычислений (сессии) в Командном окне, снабженный необходимыми комментариями.
Какой встроенной функцией системы Scilab вычисляется производная в заданной точке?
Какие начальные условия должны быть заданы в соответствии с задачей Коши при решении ОДУ средствами системы Scilab?
Какие численные методы реализованы в функции ode()?
Какие параметры являются в функции ode() обязательными?
В какой форме должны быть записаны функции ОДУ при использовании ode()?
Какими средствами решается система ОДУ?
Что представляет собой решение ОДУ 1-го и 2-го порядка при использовании функций ode()?
g = numderivative(f0,x)
endfunction
где f – целевая функция f0(x), а g – ее производная;
ind - является внутренним параметром для связи между optim() и costf(). Если значение ind равно 2, 3 или 4, то функция costf() обеспечивает поиск минимума, т.е. в качестве результата функции optim() возвращается f и xopt. Если ind=1, то в функции optim() ничего не считается. Условие ind<0 означает, что минимум функции f(x) не может быть оценен, а ind=0 прерывает оптимизацию.
Чтобы с использованием функции optim() вычислить локальный максимум необходимо взять целевую функцию с противоположным знаком.
Пример
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;-2] имеется локальный минимум. Исследуем функцию и поведение производных.
Получение значений функции и производных на выбранном отрезке приведено на рис. 2.5.1-3.
|
Рис.2.4.1-3. Исследование функции f(x) на отрезке [-4;-2]
Из полученной таблицы значений функции и производных видно, что на отрезке [-4;-2] существует единственный минимум. Найдем координаты этого минимума с использованием функции optim() (рис. 2.5.1-4). В нашем случае при обращении к функции optim() передается имя вспомогательной функции (fi) и начальное значение аргумента (y0)
Если для целевой функции затруднительно находить производные, то для того чтобы найти границы унимодальности функции можно построить ее график и выбрать отрезок, содержащий единственный минимум.
|
Рис.2.4.1-4. Нахождение координат точки минимума функции f(x)
2.5.2. Лабораторная работа по теме
«Технология решения задач одномерной оптимизации средствами Scilab»
1. Вопросы, подлежащие изучению
Постановка задачи одномерной оптимизации.
Условие унимодальности функции на отрезке.
Получение таблиц значений целевой функции и её производных с использованием средств пакета Scilab.
Технология использования встроенной функции optim().
2. Общее задание
Изучите материал Темы 2.5 (п. 2.5.1).
Выберите индивидуальное задание из табл. 2.5.2-1.
Постройте график функции f(x) и выберете отрезок, содержащий единственный минимум;
Проверьте на выбранном отрезке условие унимодальности функции, получив таблицу значений первой или второй производной.
Создайте функцию costf() для формирования значений целевой функции и ее производной.
Найдите координаты точки минимума f(x) с использованием встроенной функции Scilab optim().
Сохраните текст рабочего окна на внешнем носителе.
Предоставьте результаты работы преподавателю, ответьте на поставленные вопросы.
Оформите отчет по выполненной работе.
Таблица 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 |
|
В форме комментариев:
Название лабораторной работы
ФИО студента, номер группы
№ варианта
Индивидуальное задание
Протокол вычислений (сессии) в Командном окне.
Понятия локального и глобального минимума функции?
Можно ли средствами Scilab вычислить глобальный минимум заданной функции?
Какие исследования функции необходимо произвести перед вычислением значения локального минимума?
Функция optim() и назначение ее входных и выходных параметров.
Для чего при использовании функции optim() необходимо формирование вспомогательной функции costf()?
Назначение функции numderivative() при решении задачи одномерной оптимизации.
Можно ли с использованием функции optim() вычислить локальный максимум?
2.6.3. Контрольные вопросы по теме
Задача, требующая нахождения оптимального значения функции 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) матрица Гессе имеет вид:
,
а достаточное условие существования минимума является выполнение неравенств: