MATLAB在数学建模中的应用PPT教学课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
b1
aam211xx11aam222xx22 aa2mnnxxnn bb2m
xj 0, j 1,2,3n
min z CX
AX b
X 0
2020/12/09
2
线性规划的标准形式要求目标函数最小化, 约束条件取等式,变量非负,不符合这几个 条件的线性规划要首先转化为标准形式。
线性规划的求解方法主要是单纯形法(simple Method),此法由Dantzig于1947年提出,以后经 过多次改进,
第六讲 MATLAB在数学建模中的应用
一、在线性规划中的应用
1ቤተ መጻሕፍቲ ባይዱ数学原理:
线性规划是处理线性目标函数和线性约束的一种较为 成熟的方法,目前已经广泛应用于军事、经济、工业、 教育、商业和社会科学等许多方面。
线性规划的标准形式是
2020/12/09
1
minz c1x1 c2x2 cnxn
a11x1 a12x2 a1nxn
根据有关生物学研究结果,对于足够大的时间值
k,有
X (k 1) 1X (k)
其中 是莱斯利矩阵L的唯一的正特值
请检验这一结果是否正确,如果正确给出适当的k 值
2020/12/09
11
如果每五年平均向市场供应动物数 c=[s s s]T,在20年后农场动物不至 于灭绝的前提下,c为多少为好?
问题分析:由题设,在初始时刻0~5岁、6~10 岁、11~15岁的三个年龄段动物数量分别为 x1(0)=1000,x2(0)=1000,x3(0)=1000
调用linprog函数 [x,fval,exitflag,output,lambda]=linprog(f,A,b,Aeq,beq,lb)
结论:4个项目的投资百分数分别为0.50、0.25、0.00 和0.25时可获得最大的收益,最大收益为13%
2020/12/09
9
二、其它应用
动物的繁殖的规律问题:某农场饲养的某 种动物能达到的最大年龄为15岁,将其分 为三个年龄组:第一组0~5岁,第二组 6~10岁,第三组11~15岁。动物从第二个 年龄组开始繁殖后代
其中
0 4 3 L 0.5 0 0
0 0.25 0
是莱斯利矩阵
2020/12/09
14
由此得
X(k+1)=Lk+1X(0)
程序和计算
X0=[1000;1000;1000] A=[0 4 3;0.5 0 0;0 0.25 0] X1=A*X0 X2=A*X1 X3=A*X2 X4=A*X3
第二个年龄组的动物在其中年龄段平均繁殖4个后 代,第三年龄组的动物在其年龄段平均繁殖3个后 代。第一年龄组和第二年龄组的动物能顺利进入 下一年龄组的成活率分别为0.5和0.25.假设农场现 有的三个年龄组的动物各1000头,
2020/12/09
10
计算5年后、10年后、15年后各年龄段的动 物数量。20年后农场三个年龄段的动物情况 会怎样?
注:以上几种形式在使用时根据具体的模型 适当选用。每一种形式都有特定的涵义。可 查有关书籍
2020/12/09
5
3、实例
例1. 投资问题:某单位有一批资金用于4个 工程项目的投资,用于各个工程项目得到 的净收益(投入资金的百分比)如表所示:
工程项目 A
B
收益(%) 15 10
CD 8 12
由于某种原因用项目A的总投资不大于其他各各项 目的和,用用项目B和C的投资要大于项目D的投 资。试确定使该单位收益最大的投资分配方案。
以五年为一个年龄段,则某一时刻三个年龄段的动 物数量可以用一个向量X(k)=[x1(k) x2(K) x3(k)]T为第 k个时间段动物数分布向量。
2020/12/09
12
当k=0,1,2,3时, X(k)表示现在、五年后、十年后、 十五年后的动物数分布向量。根据第二年龄段和 第三年龄段的繁殖能力,在第k个时间段,第二 年龄组动物在其年龄段平均繁殖4个后代,第三 年龄组动物在其年龄段平均繁殖3个后代。由此 得第一个年龄组在第k+1个时间段的数量如下: x1(k+1)=4x2(k)+3x3(k)
2020/12/09
6
分析问题建立模型:用x1,x2,x3,x4分别代表 用于项目A、B、C、D的投资百分数,由于 各项目的投资百分数之和为100%,所以
x1+x2+x3+x4=1
根据题意可建立下面的数学模型:
mazx0.15x10.1x20.08x30.12x4
x1x2x3x4 0 x2x3x4 0
x1x2x3x4 1
xj 0,j1,2,3,4
2020/12/09
7
把它转化为标准形式为
minz0.15x10.1x20.08x30.12x4
x1x2 x3x4 0 x2 x3x4 0
x1x2x3x4 1
xj 0,j1,2,3,4
首先输入下列系数:
2020/12/09
8
f=[-0.15;-0.1;-0.08;-0.12]; A=[1 -1 -1 -1;0 -1 -1 1]; b=[0;0]; Aeq=[1 1 1 1]; beq=[1]; lb=zeros(4,1);
同理,根据第一年龄组和第二年龄 组的存活率,可得等式
X2(k+1)=0.5x1(k) X3(k+1)=0.25x2(k)
2020/12/09
13
可得数学模型如下:
x1(kx1(2)k1)4x0(2k.)5x13(kx) 3(k)
x(k1) 3
0.25x(2k)
K=0,1,2,3
或写成矩阵形式:X(k+1)=LX(k)
2、线性规划的MATLAB求解:linprog函数
数学模型:
min f T X
AX b
Aeq X beq
lb u ub
2020/12/09
3
其中:f,x,b,beq,lb,ub为向量, A,Aeq为矩阵。
使用形式: x=linprog(f,A,b) x=linprog(f,A,b,Aeq,beq,lb,ub) x=linprog(f,A,b,Aeq,beq,lb,ub,x0)
2020/12/09
4
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(…)