飞机票的预定策略问题
1、问题。
2、实验目的。
3、预备知识。
4、实验内容与要求。
5、思考问题。
问题解答
一、问题
为某次航班发售机票, 发售机票不能太多也不能太少,
若太多, 乘客不能按时登机, 公司不仅要付给乘客一定
的赔偿费, 而且乘客还将怨声载道;若太少, 公司也将
受到一定的损失 。 现问:应如何确定发售机票数, 使公
司, 乘客双方均较满意?
二、实验目的
1,培养学生根据实际问题建立数学模型 。
2、训练学生使用计算机语言编程及数学软件解
决一些数值计算
三、预备知识
1、概率论。
2、基本假设:乘客之间彼此独立(意即都为单身汉)。
3,设相关量如表 3.2.1,飞机容量 N与 g,f之间的关系为
0.6Ng=f。 于是该问题实际上变为:求 m,使 ES/f最大且 P( j)
不能太大 ( 如 P( 5) <=5%) ;
N 飞机容量
g 机票价格
f 飞行费用(与乘客多少无关)
b 乘客准时到达机场而未登上飞机的赔偿费
PK K个乘客迟到的概率
p 每位乘客迟到的概率
m 发售机票数
ES 公司的平均利润
P( j) 超过 j个乘客不能按时登机的概率(声誉指标)
返回
四、实验内容与要求
1,建立平均利润 ES的数学模型 。
设 N=300,b/g=0.1,p=0.03.取 m=N+5,N+6,…, N+50。
2,利用 FORTRAN语言编程计算 ES/f和 p( 5) 并画出它们随
m变化的关系图 。
3,利用 Mathmatica软件计算 ES/f和 p( 5) 并画出它们随 m变
化的关系图 。
五、思考问题
请自己假设一组数据, 再运行上述程序,
分析结果的变化情况 。
问题解答
一、问题分析与建立模型。
二、计算过程。
三、结果分析。
实验解答
实验 2 飞机票的预定策略问题
一, 问题分析与建立模型
设迟到的乘客数为 k,则利润为:
?
?
?
????
??
?
bNkmfNg
fgkm
S
])[(
)(
m-k≤N
m-k﹥ N
于是平均利润为
?
? ?
??
?
??
? ??
???????
????????
1
0
1
0
)()()(
])[(}])[((
Nm
k
k
Nm
k
m
Nmk
kk
pNkmgbfgEkm
pfgkmpbNkmfNgES
表示平均迟到人数。其中 ?
?
?
m
k
kkpEk
0
.1
0
1
0
]111[
6.0
1
6.0
1
1
11
1
Km
p
jNm
k
k
p
k
m
CjP
Nm
k
km
p
k
p
k
m
CNkm
g
b
mp
Nf
ES
fNg
Nm
k
km
p
k
p
k
m
CNkmgbfmgpES
mpEk
km
p
k
p
k
m
C
K
pk
?
?
?
??
?
?
?
??
?
?
??????
?
?
??
?
?
????????
?
?
??
)()(另易知
)()()()(
,所以又因为
)()()()(
。因此,所以)(服从二项分布且又易知
二、计算过程
当 N=300,b/g=0.1,p=0.03时, 取 m=305,306,…,350。
1,用 FORTRAN语言编程计算 ES/f,p( 5) 的值 。
运行如下 FORTRAN源程序:
SUBROUTINEZUHE( F,M,K)
DOUBLE PRECISIONF
P=1
F=1
DO 10,I=K+1,M
F=F*I/P
P=P+I
CONTINUE
RETURN
END
DOUBLE PRECISIONF,SUM1,ESF,T1,T2,SUM2
OPEN( 2,FILE=?1.DAT?,STATUS=?NEW?)
DO 10,M=305,350
SUM1=0
DO 20,K=0,M=301
CALLZUHE( F,M,K)
T1=( M-K-300) *F*(( 0.03) **K) *((0.97)**(M-K))
SUM1=SUM1+T1
CONTINUE
ESF=(1.0/180.0)*(0.97*M-1.1*SUM1)-1
SUM2=0
DO 30,K=0,M-305
CALLZUHE( F,M,K)
T2=F*(( 0.03) **K) *((0.97)**(M-K))
SUM2=SUM2+T2
CONTINUE
WRITE(2,3)M,ESF,SUM2
FORMAT( 1X,‘ M=?,I3,5X,‘ ES/f=?,F12.6,5X,‘ P( 5) =?,D15.6)
CONTINUE
END
综上所知,ES/f在 m=314时取得最大值 0.663441且 p( 5)随 m取值的增大而单调递增,
又因为当 m=309时 p( 5) =.442232D-01,m=310时 p( 5) =.952122D-01;所以为了使
ES/f最大,且要满足条件 p( 5) <=5%,我们取 m=309。
2,利用 mathmatica软件求出 m的值, 并画出 ES/f,p( 5) 随 m变化的关系
图 。
运行 mathmatica源程序:
In[1],=( *N=300,b/g=0.1,p=0.03,p(5)<=0.05*)
ClearAll[];
Esf={};t1={0,0};t={0,0};
f1[x_,y_],=Product[i,{i,y-x+1,y}]/Product[i,{i,1,x}];
f2[x_,y_],=(1.1/180)(y-x-300)(0.03^x)(0.97^(y-x));
f3[y_],=(y 0.97)/180-1;
For[m=305,m<351,m++,
g2=0;
For[k=0,k<m-298,k++
g1=f1[k,m]f2[k,m];
g2=g2+g1; ];
tt=f3[m]-g2;
AppendTo[esf,{m,tt}];
If[t1[[2]]<tt,t=t1=esf[[m-304]],t=t1]
];
Return[t];
ListPlot[esf,PlotJoined->True,AxesLabel->{“m”,”es/f”}] ClearAll[];
p5={};k={0,0};k1={0,0};
fp[x_,y_],=Product[i,{i,y-x+1,y}]/Product[i,{i,1,x}];
ffp[x_,y_],=(0.03^x)(0.97^(y-x));
For[m=305,m<351,m++,
h1=0,
For[k=0,k<m-304,k++,
h2=fp[k,m]ffp[k,m];
h1=h1+h2;
];
If[k1[[2]]<h1<0.05,k=k1={m,h1},k=k1];
AppendTo[p5,{m,h1}]
];
Return[k];
ListPlot[p5,PlotJoined->True,AxesLabel->{“m”,”p5”}]
If[t[1]]<k[[1]],answer=t[[1]],answer=k[[1]];
Return[answer];
三、结果分析
1,当 N=300,b/g=0.1,p=0.03,m=N+5,N+6,…,N+50时, 我们分别
利用 FORTRAN语言编程与 Mathmatica软件编程计算得到相同的
结果, 即当 m=309时 ES/f最优且 p( 5) 不超过 5%;此外当固定
N=300,b/g=0.1:
变化 p,如 p=0.1,p=0.01,p=0.05,p=0.07,最优结果将
随之变化, 变化幅度大 。
2,变化声誉指标 p( j), 如 p( 3) <=5%,p(7)<=5%,p(9)<=5%,
最优结果亦将有一定变化, 只是变化幅度较小 。
3,变化声誉水平, 若 p(5)<=1%,p(5)<=3%,p(5)<=7%,最优结果
亦将有一定变化, 只是变化幅度较小 。
作为练习, 学生不妨自己假设一组数据, 再运行上述程序, 分
析结果的变化情况 。