本系列教程来源于出版书籍《基于MATLAB编程基础与典型应用书籍》,如涉及版权问题,请联系:156204968@qq.com。 出版社:人民邮电出版社, 页数:525。
本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:156204968@qq.com
11.2.5 “半无限”多元函数优化问题
“半无限”多元函数优化问题在Matlab优化工具箱中描述为以下的标准形式:
其中,和表示非线性不等式和等式约束;和表示线性不等式和等式约束。在Matlab优化工具箱中,使用fseminf函数求解“半无限”多元函数优化问题,其调用格式如下:
x = fseminf(fun,x0,ntheta,seminfcon)
x = fseminf(fun,x0,ntheta,seminfcon,A,b)
x = fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq)
x = fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub)
x = fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub,options)
[x,fval] = fseminf(...)
[x,fval,exitflag] = fseminf(...)
[x,fval,exitflag,output] = fseminf(...)
[x,fval,exitflag,output,lambda] = fseminf(...)
在fseminf函数调用中,ntheta为约束条件的个数,seminfcon函数用来定义和非线性约束条件,返回非线性不等式和等式约束,的大小。fseminf函数退出标志exitflag取值及相应的含义描述如表11.9所示。在使用fseminf函数求解“半无限”多元函数优化问题中,需要定义目标函数fun,和非线性约束函数seminfcon。
表11.9 fseminf函数exitflag标志及相应含义描述
exitflag标志 | 含义描述 |
---|---|
1 | 目标函数收敛于最优解 |
4 | 搜索方向幅值小于给定容差或者约束违背小于给定容差TolCon |
5 | 方向导数幅值小于给定容差或者约束违背小于给定容差TolCon |
0 | 迭代次数超过最大迭代次数MaxIter或者函数计算次数超过给定的MaxFunEvals |
-1 | 算法因为输出函数终止 |
-2 | 无可行解 |
【例11.10】求解“半无限”多元约束优化问题
作者:德特数据
联系方式:156204968@qq.com