ch3(3) Matlab在最优化问题中的应用
更新时间:2024-07-10 23:18:01 阅读量: 综合文库 文档下载
- ch33coh命名推荐度:
- 相关推荐
第3章 Matlab在最优化问题中的应用
优化理论是一门实践性很强的学科,广泛应用于生产管理、军事指挥和科学试验等各种领域,Matlab优化工具箱提供了对各种优化问题的一个完整的解决方案。
在数学上,所谓优化问题,就是求解如下形式的最优解: Min fun (x) Sub. to [C.E.] [B.C.] 其中fun (x)称为目标函数,“Sub. to”为“subject to”的缩写,由其引导的部分称为约束条件。[C.E.]表示Condition Equations,即条件方程,可为等式方程,也可为不等式方程。[B.C.]表示Boundary Conditions,即边界条件,用来约束自变量的求解域,以lb≤x≤ub的形式给出。当[C.E.]为空时,此优化问题称为自由优化或无约束优化问题;当[C.E.]不空时,称为有约束优化或强约束优化问题。
在优化问题中,根据变量、目标函数和约束函数的不同,可以将问题大致分为: ·线性优化 目标函数和约束函数均为线性函数。
·二次优化 目标函数为二次函数,而约束条件为线性方程。线性优化和二次优化
统称为简单优化。
·非线性优化 目标函数为非二次的非线性函数,或约束条件为非线性方程。 ·多目标优化 目标函数并非一个时,称为多目标优化问题。
本章将对以上几类优化问题在Matlab中的实现作比较详细的讲解。另外还将介绍两个利用优化方法解非线性方程的函数。
通过本章的介绍,用户可以不必掌握艰涩的各种优化算法而轻易地解决一些常用的最优化问题了。
3.1 线性规划问题
线性规划问题即目标函数和约束条件均为线性函数的问题。 其标准形式为: min C’x sub. To Ax = b x≥0
其中C, b, 0∈Rn,A∈Rm?n,均为数值矩阵,x∈Rn。 若目标函数为:max C’x,则转换成:min –C’x。
标准形式的线性规划问题简称为LP(Linear Programming)问题。其它形式的线性规划问题经过适当的变换均可以化为此种标准形。线性规划问题虽然简单,但在工农业及其他生产部门中应用十分广泛。
在Matlab中,线性规划问题由linprog函数求解。
函数:linprog %求解如下形式的线性规划问题:
minfTx
x such that A?x?b Aeq?x?beq lb?x?ub
其中f, x, b, beq, lb, ub为向量,A, Aeq为矩阵。 格式:x = linprog(f,A,b)
x = linprog(f,A,b,Aeq,beq)
x = linprog(f,A,b,Aeq,beq,lb,ub)
126
x = linprog(f,A,b,Aeq,beq,lb,ub,x0)
x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) [x,fval] = linprog(...)
[x,fval,exitflag] = linprog(...)
[x,fval,exitflag,output] = linprog(...)
[x,fval,exitflag,output,lambda] = linprog(...)
说明:
x = linprog(f,A,b) 求解问题 min f’*x,约束条件为A*x<=b。
x = linprog(f,A,b,Aeq,beq) 求解上面的问题,但增加等式约束,即Aeq*x = beq。若没有不等式存在,则令A = [ ]、b = [ ]。
x = linprog(f,A,b,Aeq,beq,lb,ub) 定义设计变量x的下界lb和上界ub,使得x始终在该范围内。若没有等式约束,令Aeq = [ ]、beq = [ ]。
x = linprog(f,A,b,Aeq,beq,lb,ub,x0) 设置初值为x0。该选项只适用于中型问题,默认时大型算法将忽略初值。
x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) 用options指定的优化参数进行最小化。 [x,fval] = linprog(...) 返回解x处的目标函数值fval。
[x,fval,exitflag] = linprog(...) 返回exitflag值,描述函数计算的退出条件。 [x,fval,exitflag,output] = linprog(...) 返回包含优化信息的输出变量output。
[x,fval,exitflag,output,lambda] = linprog(...) 将解x处的Lagrange乘子返回到lambda参数中。
exitflag参数
描述退出条件:
·>0 表示目标函数收敛于解x处;
·=0 表示已经达到函数评价或迭代的最大次数; ·<0 表示目标函数不收敛。 output参数
该参数包含下列优化信息:
·output .iterations 迭代次数;
·output .cgiterations PCG迭代次数(只适用于大型规划问题); ·output .algorithm 所采用的算法。 lambda参数
该参数是解x处的Lagrange乘子。它有以下一些属性: ·lambda.lower—lambda的下界; ·lambda.upper—lambda的上界;
·lambda.ineqlin—lambda的线性不等式; ·lambda.eqlin—lambda的线性等式。 例3-1 求解下列优化问题:
min f(x)??5x1?4x2?6x3
sub.to x1?x2?x3?20 3x1?2x2?4x3?42 3x1?2x2?30
0?x1,0?x2,0?x3
解:在Matlab命令窗口键入: >> 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) Optimization terminated successfully. x =
0.0000 15.0000
127
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
lambda向量中的非零元素表示哪些约束是主动约束。本例中,第2个和第3个不等式约束,第1个下界约束是主动约束(如这些解位于约束边界上)。exitflag = 1表示过程正常收敛于解x处。
例3-2 生产决策问题。
某厂生产甲乙两种产品,已知制成一吨产品甲需资源A 3吨,资源B 4m3;制成一吨产品乙需资源A 2吨,资源B 6 m3;资源C 7个单位。若一吨产品甲和乙的经济价值分别为7万元和5万元,三种资源的限制量分别为90吨、200 m3和210个单位,试决定应生产这两种产品各多少吨才能使创造的总经济价值最高?
解:令生产产品甲的数量为x1,生产产品甲的数量为x2。由题意可以建立下面的数学模型:
z?7x1?5x2 max sub. to 3x1?2x2?90 4x1?6x2?200 7x2?210
x1?0,x2?0
该模型中要求目标函数最大化,需要按照Matlab的要求进行转换,即目标函数为
z??7x1?5x2 min在Matlab中实现: >> f=[-7;-5];
>> A=[3 2;4 6;0 7]; >> b=[90;200;210]; >> lb=[0;0];
>> [x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb) Optimization terminated successfully. x =
14.0000 24.0000 fval =
-218.0000 exitflag =
128
1 output =
iterations: 5 cgiterations: 0
algorithm: 'lipsol' lambda =
ineqlin: [3x1 double] eqlin: [0x1 double] upper: [2x1 double] lower: [2x1 double]
由上可知,生产甲种产品14吨、乙种产品24吨可使创造的总经济价值最高为218万元。exitflag = 1表示过程正常收敛于解x处。
例3-3 厂址选择问题。
考虑A、B、C三地,每地都出产一定数量的原料也消耗一定数量的产品(见下表)。已知制成每吨产品需3吨原料,各地之间的距离为:A—B:150km,A—C:100km,B—C:200km。假定每万吨原料运输1km的运价是5000元,每万吨产品运输1km的运价是6000元。由于地区条件的差异,在不同地点设厂的生产费用也不同。问究竟在哪些地方设厂,规模多大,才能使总费用最小?另外,由于其它条件限制,在B处建厂的规模(生产的产品数量)不能超过5万吨。
A、B、C三地出产原料、消耗产品情况表 地点 年产原料(万吨) 年销产品(万吨) 生产费用(万元/万吨) A 20 7 150 B 16 13 120 C 24 0 100 解:令xij为由i地运到j地的原料数量(万吨),yij为由i地运到j地的产品数量(万吨),i,j = 1,2,3(分别对应A、B、C三地)。根据题意,可以建立问题的数学模型(其中目标函数包括原料运输费、产品运输费和生产费用(万元)):
min z?75x12?75x21?50x13?50x31?100x23?100x32?150y11?240y12?210y21
?120y22?160y31?220y32 sub.to 3y11?3y12?x12?x13?x21?x31?20 3y21?3y22?x12?x21?x23?x32?16 3y31?3y32?x13?x23?x31?x32?24 y11?y21?y31?7 y12?y22?y32?13 y21?y22?5
xij?0,i,j?1,2,3;i?j yij?0,i?1,2,3;j?1,2
在Matlab中实现:
>> f=[75;75;50;50;100;100;150;240;210;120;160;220]; >> A=[1 -1 1 -1 0 0 3 3 0 0 0 0 -1 1 0 0 1 -1 0 0 3 3 0 0 0 0 -1 1 -1 1 0 0 0 0 3 3 0 0 0 0 0 0 0 0 1 1 0 0]; >> b=[20;16;24;5];
>> Aeq=[0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1]; >> beq=[7;13]; >> lb=zeros(12,1);
>> [x,fval,exitflag,output,lambda]=linprog(f,A,b,Aeq,beq,lb) Optimization terminated successfully. x =
129
0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 7.0000 0.0000 0.0000 5.0000 0.0000 8.0000 fval =
3.4850e+003 exitflag = 1 output =
iterations: 8 cgiterations: 0
algorithm: 'lipsol' lambda =
ineqlin: [4x1 double] eqlin: [2x1 double] upper: [12x1 double] lower: [12x1 double]
因此,要使总费用最小,需要B地向A地运送1万吨原料,A、B、C三地的建厂规模分别为7万吨、5万吨、8万吨。最小总费用为3485万元。
3.2 非线性规划问题
3.2.1非线性无约束规划问题
无约束规划由3个功能函数fminbnd、fminsearch、fminunc实现。 3.2.1.1 fminbnd函数
函数:fminbnd
功能:求取固定区间内单变量函数的最小值,也就是一元函数最小值问题。 数学模型:
minf(x)
x x1?x?x2
式中,x,x1和x2为标量,f(x)为函数,返回标量。
格式:x = fminbnd(fun,x1,x2)
x = fminbnd(fun,x1,x2,options)
x = fminbnd(fun,x1,x2,options,P1,P2,...) [x,fval] = fminbnd(...)
[x,fval,exitflag] = fminbnd(...)
[x,fval,exitflag,output] = fminbnd(...)
说明:
fminbnd 求取固定区间内单变量函数的最小值
x = fminbnd(fun,x1,x2) 返回[x1, x2]区间上fun参数描述的标量函数的最小值点x。 x = fminbnd(fun,x1,x2,options) 用options参数指定的优化参数进行最小化。 x = fminbnd(fun,x1,x2,options,P1,P2,...) 提供另外的参数P1,P2等,传输给目标函数fun。如果没有设置options选项,则令options = [ ]。
[x,fval] = fminbnd(...) 返回解x处目标函数的值。
[x,fval,exitflag] = fminbnd(...) 返回exitflag值描述fminbnd函数的退出条件。 [x,fval,exitflag,output] = fminbnd(...) 返回包含优化信息的结构输出。
130
正在阅读:
四维度透析绩效管理实践04-08
思想道德修养与法律基础期末考试试卷(A)05-24
实验803-30
概率与数理统计论文汇总07-07
德国礼仪宗教女人文化介绍(中英版)08-10
层次分析法例题09-01
武汉大学金融工程期末试题11-24
今日基督徒普遍的可怜的光景01-26
现代文阅读训练答案03-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 最优化
- 应用
- Matlab
- 问题
- ch3
- 二年级下册思品教学工作计划
- 高中历史第一单元第一次世界大战第4课综合探究极端民族主
- 职业经理人财务素养训练-非财务人员的财务管理
- (推荐精品)脱硫、除尘设备加工项目可行性研究报告 - 图文
- 建筑工程施工调查报告(滕晓阳)
- empower常见问题
- 北化物理化学考研真题
- 新东方考研笔记全公开(英语)
- 破解英语单词记忆密码
- 江苏科技大学课程实践设计报告VC++
- 昆明地铁三号线总体工筹 - 图文
- 《混凝土结构设计原理》复习资料 - crl
- 初中英语测试题(附答案)
- s7-1200分布式IO诊断
- 灯谜大会策划书
- 遂平一高高三周练理科综合能力测试试题18
- 小小电磁炉 蕴含大智慧 - 图文
- 陈思耀等2764名一级建造师初始注册人员名单
- 粮食烘干基础设施建设项目可行性研究报告
- 专题民主生活会批评意见汇总