Глава 2. MATLAB
2.5.2. Минимизация функции одной переменной
Еще одна важная задача численных методов — поиск минимума
функции f(x) в некотором интервале изменения х — от х
1
до х
2
. Если нужно
найти максимум такой функции, то достаточно поставить знак «минус»
перед функцией.
Для решения этой задачи используется функция [X,fval,exitflag,output]
= fminbnd(@fun.x1,x2,options, p1,p2,...)
• fminbnd(@fun,xl,x2) — возвращает значение х, которое является
локальным минимумом функции fun(x) на интервале xl<x<x2;
• fminbnd(@fun,xl,x2,options) — сходна с описанной выше
формой функции, но использует параметры tolX, maxfuneval, maxiter, display
из вектора options, предварительно установленные при помощи команды
optimset (смотрите описание lsqnonneg);
• fminbnd(@fun,xl,x2,options,P1,P2...) — сходна с описанной
выше, но передает в целевую функцию дополнительные аргументы: Р1, Р2.....
Если требуется использовать параметры вычислений по умолчанию, то
вместо options перед P1, Р2 необходимо ввести [ ] (пустой массив);
• [x,fval] = fminbnd(...) — дополнительно возвращает значение
целевой функции fval в точке минимума;
• [x,fval ,exitflag] = fminbndL) —дополнительно возвращает
параметр exitflag, равный 1, если функция сошлась с использованием
options.tolX, и 0, если достигнуто максимальное число итераций
options.maxiter.
Используются следующие обозначения: xl:х2 — интервал, на котором
ищется минимум функции; Р1,Р2... — дополнительные, помимо х,
передаваемые в функцию аргументы; fun — строка, содержащая название
функции, которая будет минимизирована; options — вектор параметров
вычислений. В зависимости от формы задания функции fminbnd вычисление
минимума выполняется известными методами золотого сечения или
параболической интерполяции.
87