Matlab非线性规划
更新时间:2023-10-28 16:06:01 阅读量: 综合文库 文档下载
一般非线性规划
标准型为:
min F(X)
s.t AX<=b Aeq G(X)?0 ?X?beq Ceq(X)=0 VLB?X?VUB
其中X为n维变元向量,G(X)与Ceq(X)均为非线性函数组成的向量,其它变量的含义与线性规划、二次规划中相同.用Matlab求解上述问题,基本步骤分三步: 1. 首先建立M文件fun.m,定义目标函数F(X): function f=fun(X); f=F(X);
2. 若约束条件中有非线性约束:G(X)?0或Ceq(X)=0,则建立M文件
nonlcon.m定义函数G(X)与Ceq(X): function [G,Ceq]=nonlcon(X) G=... Ceq=... 3. 建立主程序.非线性规划求解的函数是fmincon,命令的基本格式如下:
(1) x=fmincon(‘fun’,X0,A,b) (2) x=fmincon(‘fun’,X0,A,b,Aeq,beq)
(3) x=fmincon(‘fun’,X0,A,b, Aeq,beq,VLB,VUB)
(4) x=fmincon(‘fun’,X0,A,b,Aeq,beq,VLB,VUB,’nonlcon’) (5)x=fmincon(‘fun’,X0,A,b,Aeq,beq,VLB,VUB,’nonlcon’,options) (6) [x,fval]= fmincon(...) (7) [x,fval,exitflag]= fmincon(...) (8)[x,fval,exitflag,output]= fmincon(...) 注意:
[1] fmincon函数提供了大型优化算法和中型优化算法。默认时,若在
fun函数中提供了梯度(options参数的GradObj设置为’on’),并且只有上下界存在或只有等式约束,fmincon函数将选择大型算法。当既有等式约束又有梯度约束时,使用中型算法。
[2] fmincon函数的中型算法使用的是序列二次规划法。在每一步迭代中求解二次规划子问题,并用BFGS法更新拉格朗日Hessian矩阵。 [3] fmincon函数可能会给出局部最优解,这与初值X0的选取有关。
2例2 minf??x1?2x2?x12?x2
12122x1?3x2?6s.t.x1?4x2?5
x1,x2?01、写成标准形式:
1212minf??x1?2x2?x1?x222?2x1?3x2?6??0??????
?x1?4x2?5??0?
0??x1?? s.t. ?????x0???2?
2、先建立M-文件 fun3.m: function f=fun3(x);
f=-x(1)-2*x(2)+(1/2)*x(1)^2+(1/2)*x(2)^2 3、再建立主程序youh2.m: 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) 4、运算结果为:
x = 0.7647 1.0588 fval = -2.0294 例3
2minf(x)?ex1(4x12?2x2?4x1x2?2x2?1)s.t.x1?x2?01.5?x1x2?x1?x2?0?x1x2?10?0
1.先建立M文件 fun4.m,定义目标函数: function f=fun4(x); f=exp(x(1))
*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1); 2.再建立M文件mycon.m定义非线性约束: function [g,ceq]=mycon(x)
g=[x(1)+x(2);1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10]; 3.主程序youh3.m为: x0=[-1;1]; A=[];b=[];
Aeq=[1 1];beq=[0]; vlb=[];vub=[];
[x,fval]=fmincon('fun4',x0,A,b,Aeq,beq,vlb,vub,'mycon') 3. 运算结果为:
x = -1.2250 1.2250 fval = 1.8951
例4.资金使用问题
设有400万元资金, 要求4年内使用完, 若在一年内使用资金x万元, 则可得效益
x万元(效益不能再使用),当年不用的资金可存入银行, 年利率为10%. 试制定出资金的
使用计划, 以使4年效益之和为最大.
设变量xi表示第i年所使用的资金数,则有
maxz?x1?x2?x3?x4s.t.x1?400
1.1x1?x2?4401.21x1?1.1x2?x3?4841.331x1?1.21x2?1.1x3?x4?532.4xi?0,i?1,2,3,4
1.先建立M文件 fun44.m,定义目标函数:
function f=fun44(x)
f=-(sqrt(x(1))+sqrt(x(2))+sqrt(x(3))+sqrt(x(4)));
2.再建立M文件mycon1.m定义非线性约束: function [g,ceq]=mycon1(x) g(1)=x(1)-400;
g(2)=1.1*x(1)+x(2)-440;
g(3)=1.21*x(1)+1.1*x(2)+x(3)-484;
g(4)=1.331*x(1)+1.21*x(2)+1.1*x(3)+x(4)-532.4; ceq=0
3.主程序youh4.m为:
x0=[1;1;1;1];vlb=[0;0;0;0];vub=[];A=[];b=[];Aeq=[];beq=[];
[x,fval]=fmincon('fun44',x0,A,b,Aeq,beq,vlb,vub,'mycon1')
得到
x1?86.2,x2?104.2,x3?126.2,x4?152.8z?43.1
正在阅读:
Matlab非线性规划10-28
规章制度内容06-17
参考文献01-27
医院商业智能决策与分析平台产品介绍03-29
2018山东省济南市历城区一模九年级语文试题和答案(2018.04)04-17
北师版小学六年级数学总复习 2基础知识总复习检测题05-20
计算机应用基础期末复习题12-28
2013-2014学年八年级上学期半期考试语文试卷3套12-28
外贸英语函电_第2版05-02
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 非线性
- 规划
- Matlab