1.Поиск минимума функции одной переменной

В качестве простейшей оптимизационной задачи рассмотрим поиск локального минимума функции одной переменной.

Решение задачи начнем с построения графика функции:

График:

Из графика видно, что функция имеет минимум в районе точки -4. Для нахождения более точного значения минимума функции в Scilab служит функция

[f,xopt]=optim(costf,x0)

,которая предназначена для поиска минимума любой функции, x0 – вектор-столбец начальных приближений длиной n, функция costf определяет функцию, минимум которой ищется. Функция возвращает минимум функции (f) и точку, в которой функция достигает этого значения (xopt). Главной особенностью функции optim является структура функции costf, которая должна быть следующей:

Для функции одной переменной в качестве f возвращается функция, минимум которой ищется, в качестве функции g – ее производная.

Если возвращаемое сформированной функцией costf значение ind равно 2, 3 или 4, то функция costf обеспечивает поиск минимума, т. е. в качестве результата функции optim возвращается f и xopt. Если ind=1, то в функциии optim ничего не считается, условие ind<0 означает, что минимум f(x) не может быть оценен, а ind=0 прерывает оптимизацию.

Вообще говоря, значение параметра ind является внутренним параметром для связи между optim и costf, для использования optim необходимо помнить, что параметр ind должен быть определен в функции costf.

Таким образом, при использовании функции optim необходимо сформировать функцию costf, которая должна возвращать минимизируемую функцию f и ее градиент (производную).

Рассмотрим использование функции optim для поиска минимума функции (см. Задание 13.1):


Ниже представлен результат поиска минимума функции одной переменной:

Аналогично можно найти минимум любой другой функции одной переменной, главной задачей является проблема правильного выбора точки начального приближения. Но это проблема не пакета Scilab, а математическая проблема.

Назад Содержание Далее