数学建模1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课本p56(8)
8.一垂钓俱乐部鼓励垂钓者将钓上的鱼放生,打算按照放生的鱼的重量给以奖励,俱乐部只准备了以把软尺用于测量,请你设计按照测量长度估计鱼的重量的方法。假定鱼池中有一
先用机理分析建立模型,再用数据确定参数。
模型1:m=k*h.^3
其中,h为鱼的身长,m为鱼的重量。
MATLAB程序编写为:
d=[24.8,21.3,27.9,24.8,21.6,31.8,22.9,21.6]
d =
24.8000 21.3000 27.9000 24.8000 21.6000 31.8000 22.9000 21.6000 >> h=[36.8,31.8,43.8,36.8,32.1,45.1,35.9,32.1]
h =
36.8000 31.8000 43.8000 36.8000 32.1000 45.1000 35.9000 32.1000 >>v=d.^2.*h
v =
1.0e+004 *
2.2633 1.4427
3.4094 2.2633 1.4977
4.5607 1.8826 1.497.. >> f=inline('k*v','k','v')
f =
Inline function:
f(k,v) = k*v
>> m=[765,482,1162,737,482,1389,652,454]
m =
765 482 1162 737 482 1389 652 454
>> [a,jm]=lsqcurvefit(f,1,v,m)
Optimization terminated successfully:
First-order optimality less than OPTIONS.TolFun, and no negative/zero curvature detected
a =
0.0322
jm =
1.5009e+004
>> plot(v,m,'')
如图:
4.1 牛奶品的生产与销售(p83)
一奶制品加工厂用牛奶生产A1,A2两种奶制品,一桶牛奶可以在甲类设备上用12小时加工成3公斤A1,或者在乙类设备上用8小时加工成4公斤A2。根据市场需求,生产的A1,A2全部能售出,且每公斤A1获利24元,每公斤A2获利16元,现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为480小时,并且甲类设备每天至多能加工100公斤A1,乙类设备的加工能力没有限制。试为该厂制订一个计划,使每天获利最大,并进一步讨论以下3个附加问题:
(1)若用35元可以买到一桶牛奶,应否作这项投资?若投资,每天最多购买多少桶牛奶?
(2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元?由于市场需求变化,每公斤A1的获利增加到30元,应否改变生产计划?
基本模型
决策变量:设每天用x1桶牛奶生产奶A1,x2用桶牛奶生产A2.
目标函数:设每天获利为z元。x1同牛奶可生产3x1公斤A1,获利24×3x1,x2桶牛奶可生产4x2公斤A2,获利16×4x2,故z=72x1+64x2.
约束条件:
原料供应生产A1,A2的原料(牛奶)总量不得超过每天的供应,即x1+x2<=50桶;
劳动时间生产A1,A2的总加工时间不得超过每天正式工人总的劳动时间,即12x1+8x2<=480;
设备能力A1的产量不得超过甲类设备每天的加工能力,即3x1<=100;
非负约束x1,x2均不能为负值,即x1>=0,x2>=0.
综上可得
Max z=72x1+64x2 (1)
s.t. x1+x2<=50 (2)
12x1+8x2<=480 (3)
3x1<=100 (4 )
x1>=0,x2>=0 (5 )
模型求解
软件实现
MATLAB软件实现>> f=-[72 64]
f =
-72 -64
>> A=[1 1;12 8;3 0]
A =
1 1
12 8
3 0
>> B=[50;480;100]
B =
50
480
100
>> xm=[0,0]
xm =
0 0
>> Ae=[]
Ae =
[]
>> Be=[]
Be =
[]
>> [x,fopt,key,c]=linprog(f,A,B,Ae,Be,xm,[],[]) Optimization terminated successfully.
x =
20.0000
30.0000
fopt =
-3.3600e+003
key =
1
c =
iterations: 5
cgiterations: 0
algorithm: 'large-scale: interior point' 图表绘制:
>>plot(x)
在LINDO中输入:
max 72x1+64x2
st
2) x1+x2<50
3) 12x1+8x2<480
4) 3x1<100
End
将文件重命名保存,选择“SLOVE”并对提示回答“是“,即可输出以下结果:LP OPTIMUM FOUND AT STEP 2
OBJECTIVE FUNCTION V ALUE
1) 3360.000
VARIABLE V ALUE REDUCED COST
X1 20.000000 0.000000
X2 30.000000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
2) 0.000000 48.000000
3) 0.000000 2.000000
4) 40.000000 0.000000
NO. ITERATIONS= 2
RANGES IN WHICH THE BASIS IS UNCHANGED: