Matlab最优化计算方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Aeq=[]; beq=[];
vlb=[0;0;0;0;0;0]; vub=[]; [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
问题2 max z 7 x1 5x 2 解答
3 x1 2 x2 90 4 x 6 x 200 2 s.t. 1 7 x2 210 x1 0, x2 0
问题
min z 13 9 10 11 12 8X
0 0 0.4 1.1 1 0 800 X 0 0 0 0 . 5 1 . 2 1 . 3 900
x1 x2 x 3 ,X 0 x4 x 5 x 6
实验作业
某厂生产甲乙两种口味的饮料,每百箱甲饮料需用 原料6千克,工人10名,可获利10万元;每百箱乙饮料 需用原料5千克,工人20名,可获利9万元.今工厂共有 原料60千克,工人150名,又由于其他条件所限甲饮料 产量不超过8百箱.问如何安排生产计划,即两种饮料 各生产多少使获利最大.进一步讨论: 1)若投资0.8万元可增加原料1千克,问应否作这项 投资. 2)若每百箱甲饮料获利可增加1万元,问应否改变生 产计划.
返 回
解答
线性规划的基本算法——单纯形法
1.线性规划的标准形式:
min z = f ( x)
x
s.t . g i ( x ) 0 ( i 1,2,, m)
其中目标函数 f ( x) 和约束条件中gi ( x) 都是线性函数
2. 线性规划的基本算法——单纯形法
用单纯法求解时,常将标准形式化为:
结果:
x= 0.0000 600.0000 0.0000 400.0000 0.0000 500.0000 fval =1.3800e+004 即在甲机床上加工600个工件2,在乙机床上加工400个工件1、 500个工件3,可在满足条件的情况下使总加工费最小为13800。
结果为:
x= 14.0000 24.0000 fval = -218.0000
3、模型:min z=cX s.t. AX b Aeq X beq VLB≤X≤VUB
命令:[1] x=linprog(c,A,b,Aeq,beq, VLB,VUB) [2] x=linprog(c,A,b,Aeq,beq, VLB,VUB, X0) 注意:[1] 若没有等式约束: Aeq X beq , 则令Aeq=[ ], beq=[ ]. [2]其中X0表示初始点 4、命令:[x,fval]=linprog(…) 返回最优解x及x处的目标函数值fval.
车床 类 型 甲 乙 单位工件所需加工台时数 工件 1 0.4 0.5 工件 2 1.1 1.2 工件 3 1.0 1.3 单位工件的加工费用 工件 1 13 11 工件 2 9 12 工件 3 10 8 可用台 时数 800 900

设在甲车床上加工工件1、2、3的数量分别为x1、x2、x3, 在乙车床上加工工件1、2、3的数量分别为x4、x5、x6。可建立 以下线性规划模型:
返 回
数学实验
无约束最优化
实验目的
1、了解无约束最优化基本算法。
2、掌握用数学软件包求解无约束最优化问题。
实验内容
1、无约束优化基本思想及基本算法。 2、MATLAB优化工具箱简介
3、用MATLAB求解无约束优化问题。
4、实验作业。
无约束最优化问题
求解无约束最优化问题的的基本思想
*无约束最优化问题的基本算法
2 2 1
2
最优点 (1 1) 初始点 (-1 1)
x1
-1 -0.79 -0.53
x2
1 0.58
f 4.00
3.39 2.60
0.23 -0.18 0.00 0.09 -0.03 0.37 0.11 0.59 0.80 0.95
1.50 0.98
0.47 0.33 0.20 0.63 0.05 0.90 0.003

f X k ,
* k X X 若满足,则停止迭代,得点 ,否则进行⑷; k k k X S f X S k 进行一维搜索, ⑷ 令 ,从 出发,沿 k k k k k min f X S f X S 即求 使得: ; k


k
⑸ 令 ,k=k+1 返回⑵. 最速下降法是一种最基本的算法,它在最优化方法中占有重要地位.最 速下降法的优点是工作量小,存储变量较少,初始点要求不高;缺点是收敛 慢,最速下降法适用于寻优过程的前期迭代或作为间插步骤,当接近极值 点时,宜选用别种收敛快的算法.
解答
问题二: 某厂生产甲、乙两种产品,已知制成一吨产品甲
需用资源A 3吨资源B 4m3;制成一吨产品乙需用资源A 2吨,资 源B 6m3,资源C 7个单位。若一吨产品甲和乙的经济价值分别 为7万元和5万元,三种资源的限制量分别为90吨、200m3和210 个单位。试应生产这两种产品各多少吨才能使创造的总经济价 值最高?(p153,例8-2) 解:这是个最优化问题,其目标为经济价值最高,约束 条件为三种资源的数量有限,决策为生产甲、乙产品的 数量。令生产产品甲的数量为x1,生产产品乙的数量为 x2。由题意可以建立如下的线性规划模型。
X0
0
x2
0
3 5
1
X1
X2
x1
唯一极小 (全局极小)
2 f ( x1 x2 ) 2x12 2x1x2 x2 3x1 x2
f 0 f 0.298 f 0.298
多局部极小
搜索过程
min f ( x1 x2 ) 100( x2 x ) (1 x1 )
MATLAB最优化方法
线性规划 无约束规划 非线性规划
实验目的
1、了解线性规划的基本内容。 2、掌握用数学软件包求解线性规划问题。
实验内容
1、两个引例。 2、用数学软件包求解线性规划问题。 3、实验作业。
两个引例 问题一 : 任务分配问题:某车间有甲、乙两台机床,可用
于加工三种工件。假定这两台车床的可用台时数分别为800和 900,三种工件的数量分别为400、600和500,且已知用三种 不同车床加工单位数量不同工件所需的台时数和加工费用如 下表。问怎样分配车床的加工任务,才能既满足加工工件的 要求,又使加工费用最低?
故目标函数为:
max z 7 x1 5x 2
约束条件为:
3 x1 2 x2 90 4 x 6 x 200 1 2 7 x2 210 x1 0, x2 0
问题2线性规划模型:
max z 7 x1 5x 2
3 x1 2 x2 90 4 x 6 x 200 1 2 s.t. 7 x2 210 x1 0, x2 0
0.02 x 2 0.05 x 5 100 0.03 x 3 0.08 x 6 900 xj 0 j 1,2, 6
解 编写M文件如下: c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6]; A=[0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08]; b=[850;700;100;900];
注:有些实际问题可能会有一个约束条件:决策变量
只能取整数,如x1、x2取整数。这类问题实际上是整数线 性规划问题。如果把它当成一个线性规划来解,求得其最 优解刚好是整数时,故它就是该整数规划的最优解。若用 线性规划解法求得的最优解不是整数,将其取整后不一定 是相应整数规划的最优解,这样的整数规划应用专门的方 法求解(如割平面法、分支定界法)。
返回
求解无约束最优化问题的基本思想 标准形式:
其中
X E
X E
minn f X
f : E n E1
X E
max f X = min [ f X ] n n
求解的基本思想 ( 以二元函数为例 ) 连 续 可 微
x1
f ( x1 x2 )
x2
f ( X 0 ) f ( X1 ) f ( X 2 )
0.99 0.99 1E-4 0.999 0.998 1E-5 0.9997 0.9998 11.最速下降法(共轭梯度法)算法步骤: 0 n 0 ,令 k=0; ⑴ 给定初始点 X E ,允许误差
k ⑵ 计算 f X ; ⑶ 检验是否满足收敛性的判别准则:
用MATLAB优化工具箱解线性规划
1、模型: min z=cX s.t. AX b 命令:x=linprog(c,A,b)
2、模型:min z=cX s.t. AX b Aeq X beq 命令:x=linprog(c,A,b,Aeq,beq)
AX b 存在,则令A=[ ],b=[ ]. 注意:若没有不等式:
引入松弛变量x3, x4, x5, 将不等式化为等式, 即单纯形标准形: min z = 10x1 + 9x2 s.t.6x1 + 5x2 + x3 = 60 10x1 + 20x2 - x4 = 150 x1 + x5 = 8 xi≥ 0 (i = 1,2,3,4,5) 系数矩阵为: 6 5 1 0 0 A = 10 20 0 -1 0 = (P1 P2 P3 P4 P5) 1 0 0 0 1 b = (60, 150, 8 ) T
min z 13 x1 9 x 2 10 x 3 11 x 4 12 x 5 8 x 6
x 1 x 4 400 x x 600 5 2 x3 x6 500 s.t. 0.4 x1 1.1x 2 x3 800 0.5 x 4 1.2 x5 1.3x6 900 xi 0, i 1,2,,6
c min f = x b s.t. Ax = x
这里 A = (aij )m,n , x
(1 ) 0
= x1 x2 xn T
b = b1
b2 bn T ,
c
= c1 c 2 c n

min z = 10x1 + 9x2 s.t.6x1 + 5x2 ≤ 60 10x1 + 20x2 ≥ 150 x1 ≤ 8 x1, x2 ≥ 0
1 0 0 1 0 0 400 0 1 0 0 1 0 X 600 0 0 1 0 0 1 500
编写M文件如下: f = [13 9 10 11 12 8]; A = [0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3]; b = [800; 900]; Aeq=[1 0 0 1 0 0 010010 0 0 1 0 0 1]; beq=[400 600 500]; vlb = zeros(6,1); vub=[]; [x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)
解: 编写M文件如下: c=[-7 -5]; A=[3 2; 4 6; 0 7]; b=[90;200;210]; Aeq=[]; beq=[]; vlb=[0,0]; vub=[inf,inf]; [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
例3 问题一的解答
改写为: S.t.
min z (7
3 4 0 2 x1 6 x 7 2
x1 5) x 2

s.t .
90 2 0 0 2 1 0
x1 0 0 x 2
例 1 max
s.t.
z 0.4 x1 0.28 x 2 0.32 x 3 0.72 x 4 0.64 x 5 0.6 x 6 0.01 x1 0.01 x 2 0.01 x 3 0.03 x 4 0.03 x 5 0.03 x 6 850
0.02x1 0.05x 4 700
相关文档
最新文档