И другие программы этой серии
x =
-0.3786 0.2143 fval =
1.0e-008 *
0.2095
-0.0027
Для детального анализа решения, выходящего за рамки данного учебного курса, можно построить графики функций в системе координах [x1,x2].
398
Программные средства численных методов
Вычисление минимумов функций
399
8.4. Вычисление минимумов функций
8.4.1. Минимизация функции одной переменной
Еще одна важная задача численных методов – поиск минимума функции f(x) в некотором интервале изменения x – от x1 до x2 [59–64]. Если нужно найти максимум такой функции, то достаточно поставить знак «минус» перед функцией. Для решения этой задачи используется следующая функция: [X,fval,exitflag,output] = fminbnd(fun,x1,x2,options, p1, p2,...)
• fminbnd(fun,x1,x2) возвращает значение x, которое является локальным минимумом функции fun(x) на интервале x1
• fminbnd(fun,x1,x2,options,P1,P2,…) сходна с описанной выше, но передает в целевую функцию дополнительные аргументы: P1,P2,…. Если требуется использовать параметры вычислений по умолчанию, то вместо options перед P1,P2 необходимо ввести [ ] (пустой массив).
• [x,fval] = fminbnd(…)дополнительно возвращает значение целевой функции fval в точке минимума.
• [x,fval,exitflag] = fminbnd(…)дополнительно возвращает параметр exitflag, равный 1, если функция сошлась с использованием options.tolX, и 0, если достигнуто максимальное число итераций options.maxiter.
В этих представлениях используются следующие обозначения: x1,x2 – интервал, на котором ищется минимум функции; P1,P2… – дополнительные, помимо x, передаваемые в функцию аргументы; fun – строка, содержащая название функции, которая будет минимизирована; options – вектор параметров вычислений.
В зависимости от формы задания функции fminbnd вычисление минимума выполняется известными методами золотого сечения или параболической интерполяции.
Начало в части 1