- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数学规划问题的求解 数学规划问题的分类 说明 若 exitflag0表示函数收敛于解x, exitflag=0表示超过函数估值或迭代的最大数字, exitflag0表示函数不收敛于解x。 若 lambda=lower 表示下界lb, lambda=upper表示上界ub, lambda=ineqlin表示不等式约束, lambda=eqlin表示等式约束, lambda中的非0元素表示对应的约束是有效约束。 若 output=iterations表示迭代次数, output=algorithm表示使用的运算规则, output=cgiterations表示PCG(共轭梯度)迭代次数。 解: f = [-5; -4; -6]; A = [1 -1 1;3 2 4;3 2 0]; b = [20; 42; 30]; lb = zeros(3,1); [x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb) 结果为: x = %最优解 0.0000 15.0000 3.0000 fval = %最优值 -78.0000 exitflag = %收敛 1 output = iterations: 6 %迭代次数 cgiterations: 0 algorithm: lipsol %所使用规则 lambda = ineqlin: [3x1 double] eqlin: [0x1 double] upper: [3x1 double] lower: [3x1 double] lambda.ineqlin ans = 0.0000 1.5000 0.5000 lambda.lower ans = 1.0000 0.0000 0.0000 表明:不等约束条件2和3以及第1个下界是有效的 4. 运算结果为: x = 4.0000 3.0000 fval =-11.0000 exitflag = 1 output = iterations: 4 funcCount: 17 stepsize: 1 algorithm: [1x44 char] cgiterations: [] Thanks! 【例 5】 求解约束非线性规划: 解:首先建立一个m文件 fun705.m function y=fun705(x) y=(x(1)-1)^2+(x(2)-2)^2+(x(3)-3)^2+(x(4)-4)^2; 存储为fun705.m文件. x0=[1;1;1;1];A=[1 1 1 1;3 3 2 1]; B=[5;10];Aeq=[];Beq=[]; Lb=[0;0;0;0]; [x,g]=fmincon(‘fun705’,x0,A,B,Aeq,Beq,Lb) 答案为: x = 0.0000 0.6667 1.6665 2.6668 g = 6.3333 Matlab程序: ch705.m 例4 1.先建立M-文件fun.m定义目标函数: function f=fun(x); f=-2*x(1)-x(2); 2.再建立M文件mycon2.m定义非线性约束: function [g,ceq]=mycon2(x) g=[x(1)^2+x(2)^2-25;x(1)^2-x(2)^2-7]; 3. 主程序fxx.m为: x0=[3;2.5]; VLB=[0 0];VUB=[5 10]; [x,fval,exitflag,output] =fmincon(fun,x0,[],[],[],[],VLB,VUB,mycon2) * * 1. Matlab软件实现 2. Lingo(Lindo)软件实现 数学规划专题 优化模型 线性规划 (LP) 非线性规划 (NLP) 二次规划 (QP) 连续优化 整数规划(IP) 1.它的一般形式是: 也可以用矩阵形式来表示: 第一节 线性规划 线性规划的可行解是满足约束条件的解;线性规划的最优解是使目标函数达到最优的可行解。 线性规划关于解的
原创力文档


文档评论(0)