В MATLAB имеются функции для поиска минимума функции одной или нескольких вещественных переменных:
Для функции одной переменной используется функция fminbnd:
fminbnd(hFunction, x0, x1)
[xm,ym, flag,output]=fminbnd(f1,x0,x1)
где hFunction – дескриптор функции, для которой находится минимум, а x0 и x1 задают границы отрезка поиска, xm, ym значения минимума аргумента и функции, output – позволяет получить полную информацию о процессе нахождения минимума, в частности о количестве итераций.
» % задаем на области исследования мелкую сетку для х
» xi=[0:0.01:3];
» % вычисляем функцию на этой сетке
» yi=feval(f1,xi);
» % строим график функции
» plot(xi,yi,'k:');
» % определяем локальный минимум функции на отрезке [0.5,1]
» xmin1=fminbnd(f1,0.5,1);
xmin1 = 0.6370
» % или с одновременным нахождением минимума и значения функции
» [xm,ym]=fminbnd(f1,0.5,1);
xm = 0.6370
ym = 11.2528
Для функции многих переменных используется функция fminsearch:
fminsearch(hFunction, x0)
[xm,ym,flag,output]=fminsearch(hFunction, x0)
где hFunction – дескриптор функции нескольких переменных, для которой находится минимум, а x0 – это вектор аргументов функции, с которого начинается поиск минимума.