问题提出
一饲养场每天投入4元钱用于饲料、设备、人力,估计可使一头80kg重的生猪每天增加2kg。目前生猪的市场价格为8元/kg,但是预测每天会降低0.1元,问这场应该什么时候出手这样的生猪。如果上面的估计和预测有出入,对结果有多大的影响?
问题分析
投入资金可使生猪的体重随时间增长,但是售价随着时间减少,应该存在一个最佳的出售时机,使得利润最大。
符号表示
给定每天投入4元资金使生猪体重每天增加常数r(=2kg) 生猪出售的市场价格每天降低常数g (=0.1)
模型建立
生猪体重:w = 80+ r*t(r=2); 出售单价:p=8-g*t;
出售收入:R=p*w; 资金投入: C=4*t;
于是利润为:Q = R-C-8*80
从而得到目标函数(纯利润):
Q = (8-g*t)(80+r*t)-4*t-640
求t(>=0)使Q(t)最大。
这是二次函数最值问题,而且是个现实中的优化问题
模型求解
Q = (8-g*t)(80+r*t)-4*t-640
化简得:Q = -gr * t^2 +(8*r-80*g-4)*t
二次函数开口向下
对称轴为
当r=2,g=0.1时,t=10,Q=20
即10天后出售,会使纯利润最大
同样可以用MATLAB进行画图观察
ezplot('(8-0.1*t)*(80+2*t)-4*t-640',[0,20])
hold on
xlabel('t坐标');ylabel('Q(t)坐标');
敏感性分析
由于模型的参数(生猪每天体重的增加r和价格的降低t)是估计和预测的,应该去研究它们变化对于模型的变化的影响。
1.假设每天生猪价格的降低g=0.1不变,研究r对于t的影响
用plot画一下图像
ezplot('(40*r-60)./r',[1.5,3])
hold on
xlabel('r坐标');ylabel('t坐标')
2.假设每天生猪体重的增加r=2kg不变,研究g对于t的影响
用plot画一下图像
ezplot('(3-20*g)./g',[0.06,0.15])
hold on
xlabel('g坐标');ylabel('t坐标');
由图像和数据的分析可知:r是t的增函数,t是g的减函数。于是可以用相对变量衡量结果对参数的敏感程度。
t对r的敏感度记作S(t,r)
S(t,r)=(Δt/t)/(Δr/r) ≈(dt/dr)*(r/t)
当r=2时 S(t,r)≈60/(40*r-60)=3
即生猪每天的体重r增加1%,出售时间推迟
类似定义t对g的敏感度S(t,g)
当g=0.1时可以出:
S(t,g)=(Δt/t)/(Δg/g)≈(dt/dg)*(g/t)=-3/(3-20*g)=-3
即生猪价格每天的降低g增加1%,出售时间提前3%。
健壮性分析
在上面的分析过程中,都是把w和p作为了线性函数。
实际应该考虑非线性和不确定性
w=80+r*t → w=w(t)
p=8-g*t → p=p(t)
因此Q =p(t)*w(t)-4*t-640
令Q’=0 最优解应该满足
p’(t)*w(t)+w’(t)*p(t)=4
即出售的最佳时机是保留生猪直到每天利润的增值(倒数的意义)等于每天的费用时为止
本案例中,S(t,r)=3,若 1.8 <=w <= 2.2(10%以内),7<=t<=13(30%以内)
若p’=-0.1是最坏的情况,如果这个值更小,t应该更大,最好的方法:每经过几天,最好经过7天,重新估计p,p’,w,w’,再进行计算