用于求某个给定函数的最小值点。
使用方法是:
x=fminbnd(func,x1,x2)
func是函数句柄,然后x1和x2就是函数的区间,得到的结果就是使func取最小值的x值
当然也可以使用[x,fv]=fminbnd(func,x1,x2)的方式,这个时候fv就是函数 的最小值,即有:fv=f(x)
测试程序如下:
>> f=@(x) exp(x)-4*sin(x)+5;
>> [x,fv]=fminbnd(f,0,1)
x =
0.9048
fv =
4.3262
当然,如果在某个区间上是单调的,结果就有点意思了:
>> clear
>> f=@(x) x^-2*x-3;
>> [x,fv]=fminbnd(f,2,3)
x =
2.9999
fv =
-2.6667
看样子MATLAB是使用了定长小区间的方式计算的,而且结果也是错误的,这不免让人对这个函数的可靠性产生怀疑……