数学建模案例之
多变量无约束最优化
问题1[1]:一家彩电制造商计划推出两种产品:一种19英寸立体声彩色电视机,制造商
建议零售价(MSRP )为339美元。另一种21英寸立体声彩色电视机,零售价399美元。公司付出的成本为19英寸彩电195美元/台,21英寸彩电225美元/台,还要加上400000美元的固定成本。在竞争的销售市场中,每年售出的彩电数量会影响彩电的平均售价。据估计,对每种类型的彩电,每多售出一台,平均销售价格会下降1美分。而且19英寸彩电的销售量会影响21英寸彩电的销售量,反之也是如此。据估计,每售出一台21英寸彩电,19英寸的彩电平均售价会下降0.3美分,而每售出一台19英寸的彩电,21英寸彩电的平均售价会下降0.4美分。问题是:每种彩电应该各生产多少台?
清晰问题:问每种彩电应该各生产多少台,使得利润最大化?
1.问题分析、假设与符号说明
这里涉及较多的变量:
s :19英寸彩电的售出数量(台); t :21英寸彩电的售出数量(台); p :19英寸彩电的售出价格(美元/台); q :21英寸彩电的售出价格(美元/台); C :生产彩电的成本(美元); R :彩电销售的收入(美元); P :彩电销售的利润(美元) 这里涉及的常量有:
两种彩电的初始定价分别为:339美元和399美元,成本分别为:195美元和225美元;每种彩电每多销售一台,平均售价下降系数a=0.01美元(称为价格弹性系数);两种彩电之间的销售相互影响系数分别为0.04美元和0.03美元;固定成本400000美元。
变量之间的相互关系确定:
假设1:对每种类型的彩电,每多售出一台,平均销售价格会下降1美分。
假设2:据估计,每售出一台21英寸彩电,19英寸的彩电平均售价会下降0.3美分,而每售出一台19英寸的彩电,21英寸彩电的平均售价会下降0.4美分。 因此,19英寸彩电的销售价格为:
p=339 - a×s - 0.03×t ,此处a=0.01
21英寸彩电的销售价格为:
q=399 - 0.01×t - 0.04×s
因此,总的销售收入为:
R=p×s + q×t
生产成本为:
C=400000 + 195×s + 225×t
净利润为:
P = R - C
因此,原问题转化为求s ≥0和t ≥0,使得P 取得最大值。
2.建立数学模型
根据前面的分析,原问题的数学模型如下:
m ax P (s , t ) s . t .
P (s , t ) =(339-as -0.003t ) s +
(399-0.004s -0.01t ) t - (400000+195s +225t )
s ≥0, t ≥0
3.模型求解
3.1 求解方法
(1)求出驻点(s 0,t 0),即解方程组
1)
(
⎧∂P (s , t )
=0⎪⎪∂s
⎨
⎪∂P (s , t ) =0⎪∂t ⎩
(2)判断是否在驻点处取得极值,方法如下:
1)先计算
D 1=
∂P (s , t ) ∂s
2
2
2
,
(s 0, t 0)
2
∂P (s , t ) ∂s
D 2=
2
2
∂P (s , t )
(s 0, t 0)
2
∂s ∂t ∂P (s , t )
(s 0, t 0)
∂P (s , t ) ∂t ∂s
(s 0, t 0)
∂t
2
(s 0, t 0)
2)若D 1>0, D 2>0,则(s 0,t 0)是极小值点;
若D 10,则(s 0,t 0)是极大值点; 若D 2
若D 2=0,则不能肯定(s 0,t 0)是不是极值点,必须考察更高阶的偏导数。
3.2 计算结果
(1)利用Matlab 计算出驻点为:(4735.04,7042.7), 其中a=0.01; (2)利用Matlab 计算出 D 1=-0.020,因此P(s,t)在(4735,7043)处取得极大值:553641美元。
(3)辅助数据:p=270.52;q=309.63;C=2907950;利润率=0.190389。
3.3 结果解释
简单地讲,这家公司可以通过生产4735台19英寸彩电和7043台21英寸彩电来获得最大利润,每年获得的净利润是553641美元。
19英寸彩电的平均售价为270.52美元/台;21英寸彩电的平均售价为309.63美元/台;生产的总成本为 2907950美元;相应的利润率为19.0389%。
根据以上结果显示了是有利可图的,因此建议这家公司的推出新产品计划应该实
行。
图形显示见下图。
图1 彩电问题
4.灵敏性分析
在报告结论之前,应该对关于彩电市场和生产过程所作的假设进行灵敏性分析,以保证结果具有稳定性。我们主要关心的是决策变量s 、t 的值,因为公司据此来确定生产量。在前面的计算中,我们假设a=0.01美元/台,下面考虑当19英寸的彩电的价格弹性系数a 发生微小的变化时,公司的生产量以及利润将如何变化。
4.1 产量对a 的灵敏性分析
P (s , t ) =(339-as -0.003t ) s +(399-0.004s -0.01t ) t -(400000+195s +225t ) (2)
它的驻点为:
1662000⎧
s (a ) =⎪⎪40000a -49
(3) ⎨
581700⎪t (a ) =8700-
⎪40000a -49⎩
由(2)可得,19英寸彩电的价格弹性系数a 的增加,会导致19英寸彩电的最优生产量s(a)的下降,而21英寸彩电的最优生产量t(a)会增加,见图2。
图2 s和t 关于a 的变化的灵敏性曲线
我们计算得到灵敏性的具体数值(其中a=0.01,s=s(a),t=t(a)):
S (s , a ) =
ds a dt a
⋅≈-1.14, S (t , a ) =⋅≈0.268 da s da t
因此,如果19英寸彩电的价格弹性系数增加10%,则应该将19英寸彩电的生产量减少11%,21英寸彩电的生产量增加2.7%。
4.2 利润对a 的灵敏性分析
为了得到利润P(s,t)对于a 的灵敏性,将(3)带入(2), 可得P(a):
P (a ) =
[1**********]a+51568000
40000a-49
灵敏性计算结果为(其中a=0.01,P=P(a)):
S (P , a ) =
dP da
⨯a P
≈-0.405
因此,19英寸彩电的价格弹性系数增加10%,会使利润下降约4%,见图3。
图3 利润P 关于a 的灵敏性曲线
5.参考资料
[1] Mark M.Meerschaert. 数学建模方法与分析,北京:机械工业出版社, 2005
6.附 录
1.模型求解结果
syms s t;
P=(339-0.01*s-0.003*t)*s+(399-0.004*s-0.01*t)*t-(400000+195*s+225*t);
Ps=diff(P,s); Pt=diff(P,t); A=solve(Ps,Pt); s0=double(A.s); t0=double(A.t); Pss=diff(Ps,s); Pst=diff(Ps,t); Pts=diff(Pt,s); Ptt=diff(Pt,t);
Jd=[Pss Pst;Pts Ptt];
D1=subs(subs(Pss,s,s0),t,t0); D2=double(det(Jd));
Pmax=subs(subs(P,s,s0),t,t0); %
% 绘制利润函数的图形 %
h1=figure
[X,Y]=meshgrid(0:10:10000,0:10:10000);
Z=(339-0.01*X-0.003*Y).*X+(399-0.004*X-0.01*Y).*Y-(400000+195*X+225*Y);
mesh(X,Y,Z)
XLabel('19英寸彩电数量(台)') YLabel('21英寸彩电数量(台)') ZLabel('利润(元)') box on grid on %
% 绘制等值线 %
h2=figure
contour(X,Y,Z)
XLabel('19英寸彩电数量(台)') YLabel('21英寸彩电数量(台)') 2. 灵敏性程序
%
% 第3讲案例1:灵敏性分析 % %
syms a s t ;
P=(339-a*s-0.003*t)*s+(399-0.004*s-0.01*t)*t-(400000+195*s+225*t); dPs=diff(P,s); dPt=diff(P,t);
A=solve(dPs,dPt,s,t); %求驻点 sa=A.s ta=A.t
Pa=subs(subs(P,s,sa),t,ta); dsa=diff(sa,a); dta=diff(ta,a); dPa=diff(Pa,a); %
% 灵敏性值 %
Ssa=subs(dsa,a,0.01)*0.01/subs(sa,a,0.01) Sta=subs(dta,a,0.01)*0.01/subs(ta,a,0.01) SPa=subs(dPa,a,0.01)*0.01/subs(Pa,a,0.01) %
% 绘制 s,t 对 a 的灵敏性曲线
% 拷贝sa,st 到函数fplot 中 % h1=figure grid on hold on
fplot('1662000/(-49+40000*a)',[0.005 0.02],'ro-' );
fplot('48000*(-21+7250*a)/(-49+40000*a)',[0.005 0.02],'b*-'); legend('sa :19吋彩电产量变化' , 'ta :21吋彩电产量变化' ,1) XLabel(' 参数 a 的变化:[0.005 0.02](单位:元/台)' ) YLabel(' 产量sa,ta(单位:台) ')
title(' 产量 s 和 t 关于参数 a 的灵敏性曲线' ) hold off %grid off %
% 计算并绘制利润率对参数 a 的灵敏性曲线 % 拷贝Pa 到函数fplot 中 % h2=figure grid on
fplot('16000*(892250*a+3223)/(-49+40000*a)',[0.005 0.02],'r-' ) XLabel(' 参数 a 的变化:[0.005 0.02](单位:元/台)' ) YLabel(' 利润Pa(单位:元) ')
title(' 利润 Pa 关于参数 a 的灵敏性曲线' )