Минимизация функции одной переменной

Еще одна важная задача численных методов — поиск минимума функции f(x) в заданном интервале изменения аргумента [х1, х2] Если нужно найти максимум такой функции, то достаточно поставить знак «минус» перед функцией. Для решения этой задачи используется функция fminbnd(),формы которой представлены ниже:

fminbnd(@fun,xl,x2) — возвращает значение х, которое является локальным минимумом функции fun(x) на интервале xl<x<x2;

fminbnd(@fun,xl,x2,options) — сходна с описанной выше формой функции, но использует параметры вычислений из вектора options:

tolX – конечное допустимое отклонение по значению х, maxfunevals – максимально число допустимых расчетов функции,

maxiter – максимальное число допустимых итераций,

display – уровень отображения ('off' отображение не производится, 'iter' отображение проводится на каждой итерации,

'final' (принимается по умолчанию) отображение только конечной информации).

Перечисленные параметры следует предварительно установить при помощи команды optimset().

Например, options=optimset('Display','iter').

[x, fval] = fminbnd(...) — дополнительно возвращает значение целевой функции fval в точке минимума;

[x, fval, exitflag] = fminbnd(…) —дополнительно возвращает параметр exitflag, равный 1, если функция сошлась с использованием options.tolX, и 0, если достигнуто максимальное число итераций options.maxiter.

Пример поиска минимума функции cos(x) на интервале [3, 4] с использованием функции fminbnd() представлен на рис. 6.1.

 

Рис. 6.1 . Пример поиска минимума функции cos(x) на интервале [3, 4].