首页 理论教育 无约束非线性规划问题的优化算法

无约束非线性规划问题的优化算法

时间:2026-01-23 理论教育 东北妞 版权反馈
【摘要】:例8-9 求二维无约束非线性函数的最优解。例8-10 求二维无约束非线性函数的最优解说明:在优化函数fminunc的输入参数“options”命令中各个选项的意义是:●′ largescale′,′off′表示关闭了大规模方式。

求解无约束非线性规划问题minfX)的MATLAB函数有:fminbnd、fminunc和fmin-search,它们都只能输出局部最优解。

1.函数fminbnd应用

函数fminbnd只能求解单变量的无约束非线性规划问题,而且要求目标函数为连续函数。它的调用格式为:

图示

其中,输入参数有:

● fun是目标函数。

● [x1,x2]是迭代搜索区间,即变量的边界约束,即x1≤xx2。

● 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处,函数值fx*)=-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*图示,目标函数达到最小值fX*)=-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”命令中各个选项的意义是:

largescaleoff表示关闭了大规模方式。

display用来控制计算过程的显示。

iter表示显示优化过程的每次计算结果(off不显示所有输出,final仅输出最后

结果)。

tolx,1e-8是控制输入变量x的允许误差精度。

tolfun,1e-8是控制目标函数的允许误差精度(默认值是“1e-4”)。

M文件运算结果:

图示

图示

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

该二维非线性函数的三维曲面图如图8-4所示。

图示

图8-4 二维非线性函数的三维曲面图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈