求解无约束非线性规划问题minf(X)的MATLAB函数有:fminbnd、fminunc和fmin-search,它们都只能输出局部最优解。
1.函数fminbnd应用
函数fminbnd只能求解单变量的无约束非线性规划问题,而且要求目标函数为连续函数。它的调用格式为:

其中,输入参数有:
● fun是目标函数。
● [x1,x2]是迭代搜索区间,即变量的边界约束,即x1≤x≤x2。
● options是设置优化选项参数,见表8-1。例如,options(1)为负值时,则显示中间过程,默认值是options(1)=0;options(2)为最优解xopt的误差范围,默认值是“1e-4”;options(14)是函数求值的最大次数,默认值是options(14)=500。
输出参数有:
● Xopt为返回的满足fun取得最小值的x的值。
● fopt为目标函数最小值。
● exitflag表示退出条件:exitflag>0表示计算收敛,exitflag=0表示超过了最大的迭代次数,exitflag<0表示计算不收敛。
● output表示输出信息,它有3个分量:“iterations”表示迭代次数,“funcCount”表示代入函数次数,“algorithm”表示选用的优化算法。
例8-8 求解单变量的无约束非线性规划问题


M文件运行结果:

从输出结果可知,在最优点x*=0.2176处,函数值f(x*)=-1.1312。由于exitflag=1,表示计算收敛。优化运算的输出信息表明:迭代次数是12,代入函数次数是13,选用的一维黄金分割优化算法,运用了抛物线插补。绘制符号函数图形如图8-2所示。
2.函数fminsearch应用
函数fminsearch可用于求解单变量或多变量的无约束非线性规划问题,它的优化算法比较简单,适合处理目标函数阶次低、间断点多和比较简单的优化问题。它的使用格式为:

其中,输出参数有:

图8-2 一维非线性函数线图
● xopt和fopt分别是返回目标函数的最优解及其函数值。
● 返回参数exitflag表示退出条件:exitflag>0表示计算收敛,exitflag=0表示超过了最大的迭代次数,exitflag<0表示计算不收敛。
● 返回参数output表示输出信息,它有3个分量:“iterations”表示迭代次数,“func- Count”表示代入函数次数,“algorithm”表示选用的优化算法。输入参数有:
● fun是目标函数。
● x0是初始点。
● options是设置优化选项参数,见表8-1。例如,options(1)为负值时,则显示中间过程,默认值是options(1)=0;options(2)为最优解xopt的误差范围,默认值是“1e-4”;options(3)为最优解fopt的误差范围,默认值是“1e-4”;options(14)是为函数求值的最大次数,默认值是options(14)=200。
例8-9 求二维无约束非线性函数
的最优解。

M文件运行结果:

(https://www.xing528.com)
从输出信息可知,使用单纯形法寻优,经过36次迭代计算之后,计算收敛在极小点X*
,目标函数达到最小值f(X*)=-0.6414。绘制符号函数图形如图8-3所示。

图8-3 二维非线性函数三维曲面图
3.函数fminunc应用
函数fminunc的优化算法比较复杂,而且可供选择的几种不同算法,适用于求解比较复杂的优化问题。它的调用格式是:

其中,输出参数有:
● x是返回目标函数的最优解。
● fval是返回目标函数在最优解x点的函数值。
● exitflag是返回算法的终止标志。
● output是返回优化算法的信息的一个数据结构。
● grad是返回目标函数在最优解x点的梯度。
● hessian是返回目标函数在最优解x点的hessian矩阵值。
输入参数有:
● fun是调用目标函数的函数文件名。
● x0是初始点。
● options是设置优化选项参数,见表8-1,有18个元素,用以在计算时控制精度要求、输出形式、算法选择、迭代次数、梯度等重要问题,可用空矩阵符号“[]”表示它的默认值。
● P1、P2等是传递给fun的附加参数。
例8-10 求二维无约束非线性函数的最优解

说明:在优化函数fminunc的输入参数“options”命令中各个选项的意义是:
●′ largescale′,′off′表示关闭了大规模方式。
●′ display′用来控制计算过程的显示。
●′ iter′表示显示优化过程的每次计算结果(′off′不显示所有输出,′final′仅输出最后
结果)。
●′ tolx′,1e-8是控制输入变量x的允许误差精度。
●′ tolfun′,1e-8是控制目标函数的允许误差精度(默认值是“1e-4”)。
M文件运算结果:


说明:M文件运行的输出信息表明,使用拟牛顿线搜索算法,经过7次迭代,得到目标函数的极小点
和最优函数值f(X*)=1.8304×10-15。目标函数在极小点的梯度是
,非常接近零向量;hessian矩阵是
。
该二维非线性函数的三维曲面图如图8-4所示。

图8-4 二维非线性函数的三维曲面图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
