fminbnd
进行有约束的一元函数最小值求解。它的求解命令是:
X = FMINBND(FUN,x1,x2),FUN 是目标函数,可以为表达式字符串或MATLAB自定义函数的函数柄,要求解在约束 x1 <= X <= x2下的最优解X*。
还有其他一些求解命令是:
x = fminbnd(fun,x1,x2,options) % options为指定优化参数选项,由OPTIMSET设定
[x,fval] = fminbnd(…) % fval为目标函数的最小值
[x,fval,exitflag] = fminbnd(…) %exitflag为终止迭代的原因
[x,fval,exitflag,output] = fminbnd(…) % output为优化信息
说明:若参数exitflag>0,表示函数收敛于x,若exitflag=0,表示达到了最大迭代次数,exitflag<0表示函数不收 敛于x;若参数output=iterations表示迭代次数,output=funccount表示函数赋值次数,output=algorithm 表示所使用的算法。
例子:要求解f(x)=x3-2x-5在(0,2)之间最优解,求解命令如下:
f = @(x)x.^3-2*x-5;
x = fminbnd(f, 0, 2);