没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论


















这个函数在之前优化工具箱一文中已经介绍过,由于其应用广泛,所以这里通过实例单独
整理一下其用法。
一、基本介绍
求解问题的标准型为
其中 为 维变元向量,与 均为非线性函数组成的向量,其它变量的含义与
线性规划,二次规划中相同,用 求解上述问题,基本步骤分为三步:
1. 首先建立 M 文件 fun.m 定义目标函数 F(X):
!"
2. 若约束条件中有非线性约束:G(x) <= 0 或 Ceq(x) = 0,则建立 M 文件
nonlcon.m 定义函数 G(X)和 Ceq(X);
!#$%! !
3. 建立主程序,非线性规划求解的函数时 fmincon,命令的基本格式如下:
注意:
(&) ! 函数提供了大型优化算法和中型优化算法。默认时,若在 函数中提供
了梯度(!'!参数的 ()*+ 设置为,!,),并且只有上下界存在或只有等式约束,
! 函数将选择大型算法,当既有等式约束又有梯度约束时,使用中型算法。
(-) ! 函数的中型算法使用的是序列二次规划法。在每一步迭代中 求解二次规划
子问题,并用 . 法更新拉格朗日 / 矩阵。
(0) ! 函数可能会给出局部最优解,这与初值 的选取有关。

二、实例
1. 第一种方法,直接设置边界
主要是指直接设置 , 等参数。
例 1:1&1-2-3&4-2&5-3&4-2-5-
-2&302-6
&372-8
&$-9
functionex131101
x0=[1;1];
A=[2,3;1,4];
b=[6,5];
Aeq=[];
beq=[];
VLB=[0;0];
VUB=[];
[x,fval]=fmincon(@fun3,x0,A,b,Aeq,beq,VLB,VUB)
functionf=fun3(x)
f=-x(1)-2*x(2)+(1/2)*x(1)^2+(1/2)*x(2)^2;
2. 第二种方法,通过函数设置边界
例 2: '&272&5-3-2-5-372&2-3-2-3&
&3-
&83&2-1&1-
1&2-1&
functionyouh3
clc;
x0=[-1,1];
A=[];b=[];
Aeq=[];beq=[];
vlb=[];vub=[];
[x,fval]=fmincon(@fun4,x0,A,b,Aeq,beq,vlb,vub,@mycon)
functionf=fun4(x);
f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);
function[g,ceq]=mycon(x)
g=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];
ceq=[x(1)+x(2)];
3. 进阶用法,增加梯度以及传递参数
剩余10页未读,继续阅读
资源评论


weixin_38019251
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
