MATLAB-数学建模-无约束规划求解方法(非线性规划)
- fminbnd函数
其功能是求取固定区间内单变量函数的最小值,也就是一元函数的最小值问题。其数学模型为
minf(x),x1<x<x1
式中,x,x1,x2
均为标量:f(x)为目标函数。
fminbnd函数的调用格式如下:
x=fminbnd(fun,x1,x2)
x=fminbnd(fun,x1,x2,options)
x=fminbnd(fun,x1,x2,options,P1,P2,…)
[x,fval]=fminbnd(…)
[x,fval,exitflag]=fminbnd(…)
[x,fval,exitflag,ooutput]=fminbnd(…)
其中x=fminbnd(fun,x1,x2)——返回[x1,x2]区间上fun参数描述的标量函数的最小值点x。
x=fminbnd(fun,x1,x2,options)——用options参数指定的优化参数进行最小化。
x=fminbnd(fun,x1,x2,options,P1,P2,…)——提供另外的参数P1,P2等,传输给目标函数fun。如果没有设置options选项,则令options=[]。
[x,fval]=fminbnd(…)——返回解x处目标函数的值。
[x,fval,exitflag]=fminbnd(…)——返回exitflag值描述fminbnd函数的退出条件。
[x,fval,exitflag,ooutput]=fminbnd(…)——返回包含优化信息的结构输出。
Options参数有以下几个选项:
Display——显示的水平,选择‘off’,不显示输出;选择‘iter’显示每一步迭代过程的输出;选择‘final’,显示最终结果。
MaxFunEvals——函数评价的最大允许次数。
MaxIter——最大允许迭代次数。
TolX——x处的终止容限。
Exitflag——描述退出条件,退出条件>0表示目标函数收敛于解x处;退出条件等于0表示已经达到函数评价或迭代的最大次数;退出条件<0表示目标函数不收敛。
Output——该参数包含三种优化信息,outpu.iterations表示迭代次数;output.algorithm表示所采用的算法;output.funcCount表示函数评价次数。
注意事项:
- 目标函数必须是连续的
- Fminbnd可能只给出局部最优解
- 当问题的解位于区间边界上时,fminbnd的收敛速度常常很慢,此时,fminbnd函数的计算速度更快,计算精度更高。
- Fminbnd函数只适用于实数变量。