MatLab5第五讲 数值计算(二)
更新时间:2023-10-13 17:55:01 阅读量: 综合文库 文档下载
- Matlab5手册推荐度:
- 相关推荐
MatLab & 数学建模
第五讲 数值计算(二)
一、 线性优化
minCTnx,x?Rs.t.Ax?b vlb?x?vub用命令x=lp(C,A,b,vlb,vub)。 [例] 最小值线性优化 f(x)=-5x1-4x2-6x3 x1-x2+x3≦20 3x1+2x2+4x3≦42 3x1+2x2≦30
(0≦x1, 0≦x2,0≦x3)
First, enter the coefficients: f = [-5; -4; -6] A = [1 -1 1 3 2 4 3 2 0]; b = [20; 42; 30];
lb = [0,0,0]; % x的最小值 [0,0,0] ub = [inf,inf,inf];
Next, call a linear programming routine: x= lp(f,A,b,lb,ub);
Entering x x =
0.0000 15.0000 3.0000
1
实际此命令改为:
x = linprog(f,A,b,Aeq,beq)
x = linprog(f,A,b,Aeq,beq,lb,ub) 对以上的问题可做如下的操作: First, enter the coefficients:
f = [-5; -4; -6]; A = [1 -1 1 3 2 4 3 2 0]; b = [20; 42; 30]; lb = zeros(3,1);
Next, call a linear programming routine:
[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]
2
[例] 线性优化
Min -400x1-1000x2-300x3+200x4 -2x2 + x3 + x4=0 2x1 +3x2 <=16 3x1 +4x2 <=24 x1, x2, x3, x4>=0; x3<=5
c=[-400,-1000,-300,200]; %目标函数系数 A=[0 -2 1 1; 2 3 0 0; 3 4 0 0]; %约束条件系数 b=[0; 16; 24];
xLB=[0,0,0,0]; % x取值范围的最小值 xUB=[inf,inf,5,inf]; % x取值范围的最大值 x0=[0,0,0,0]; % x取迭代初始值
nEq=1; % 约束条件中只有一个 = 号,其余为<= x=lp(c,A,b,xLB,xUB,x0,nEq) disp(['最优值为: ',num2str(c*x)])
结果: x =
3.4483 3.0345 5.0000 1.0690
最优值为 -5700
3
二、 非线性优化
minf(x),x?Rns.t.g(x)?0用命令x=constr('f ',x0)。
[例] 最小值非线性优化
Min f(x)=-x1x2x3, -x1-2x2-2x3≤0, x1+2x2+2x3≤72, 初值: x = [10; 10; 10]
第一步:编写M文件 myfun.m function [f,g]=myfun(x) f=-x(1)*x(2)*x(3);
g(1)=-x(1)-2*x(2)-2*x(3); g(2)=x(1)+2*x(2)+2*x(3)-72;
第二步:求解
在MATLAB工作窗中键入 x0=[10,10,10];
x=constr('myfun',x0)即可. x =
24.0000 12.0000 12.0000
4
[例] 非线性优化
Min f(x)=-x1x2 (x1+ x2)x3<=0; x1, x2>=0; x3>=2;
第一步:编写M文件 fxxgh.m
function [F,G]=fxxgh(x) F=-x(1)*x(2);
G(1)=(x(1)+x(2))*x(3)-120;
第二步:求解
在MATLAB工作窗中键入
x=[1,1,1]; % x取迭代初始值
options(13)=0; % 约束条件中有0个 = 号,其余为<= XL=[0,0,2]; % x取值范围的最小值 XU=[inf;inf;inf]; % x取值范围的最大值 [x,options]=constr('fxxgh',x,options,XL,XU); options(8) %输出最小值 x
ans =
-900.0000 x =
30.0000 30.0000 2.0000
5
正在阅读:
MatLab5第五讲 数值计算(二)10-13
社会实践报告03-31
安全生产大检查总结10篇07-31
师德师风自查总结10篇07-31
经典人生哲理语录11-20
湖北省公务员考试—言语理解专项练习(3)09-15
班主任工作总结07-31
涂磊出名经典语录11-20
宁国市离婚协议书文档通用版4篇07-23
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数值
- MatLab5
- 计算