Иллюстрированный самоучитель по MatLab

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

Еще одна важная задача численных методов – поиск минимума функции f(x) в некотором интервале изменения х – от х 1 до х 2 . Если нужно найти максимум такой функции, то достаточно поставить знак "минус" перед функцией. Для решения этой задачи используется следующая функция:

[X.fval.exitflag,output] = fminbnd(@fun.x1,x2.options, p1,p2,...)
  • fminbnd(@fun,x1,x2) – возвращает значение х, которое является локальным минимумом функции fun(x) на интервале xl<x<x2;
  • fminbnd(@fun,x1,x2.options) – сходна с описанной выше формой функции, но использует параметры to!X, maxfuneval, maxiter, display из вектора options, предварительно установленные при помощи команды optimset (смотрите описание lsqnonneg);
  • fminbnd(@fun,x1.x2,options.P1.P2…) – сходна с описанной выше, но передает в целевую функцию дополнительные аргументы: Р1, Р2….. Если требуется использовать параметры вычислений по умолчанию, то вместо options перед P1, Р2 необходимо ввести [ ] (пустой массив);
  • [x.fval] = fminbnd(…) – дополнительно возвращает значение целевой функции fval в точке минимума;
  • [x.fval.exitflag] = fminbndL.) – дополнительно возвращает параметр exitflag, равный 1, если функция сошлась с использованием options.tolX, и 0, если достигнуто максимальное число итераций options.maxiter.

В этих представлениях используются следующие обозначения: x1. х2 – интервал, на котором ищется минимум функции; Р1.Р2… – дополнительные, помимо х, передаваемые в функцию аргументы; fun – строка, содержащая название функции, которая будет минимизирована; options – вектор параметров вычислений. В зависимости от формы задания функции fminbnd вычисление минимума выполняется известными методами золотого сечения или параболической интерполяции. Пример:

>> options=optimset('tolX',1.e-10):
[x]=fminbnd(@cos.3.4,options)
x =
3.1416
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.