最优乘车问题数学建模
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
问题二:本市出租车收费制度在98年进行了调整,由原来5公里起步价14.4元、每公里车费1.8元变为3公里起步价10元、每公里2元,并且10公里以上每公里增收50%、特殊时段(23:00~6:00) 每公里增收30%。
制度改变后,一些精明的乘客在行驶一定里程后,利用换车或让司机重新计价的方法来节省车费。
可现在,这种乘客越来越少见了。
请问适当换车真的省钱吗?建立数学模型解释上述现象。
解答:
1、基本假设
①假设1998年以前顾客无论乘车距离多远都不会考虑换乘;
②假设收费制度改革后,乘车距离小于或等于3公里,乘客也不会考虑换乘; ③假设乘车距离不足1公里的不按1公里计算。
④假设不考虑在正常时段和特殊时段之间的临界换车情况
⑤假设计价器准确无误并且不考虑中途停留的情况。
⑥假设在特殊时段乘车时乘客不会考虑换乘
2、符号说明 x 表示乘车的距离 (m )
y 表示乘车所需费用 (元)
[]x 表示x 的整数 (m )
3、问题分析
本题针对换乘后相对制度改革前是否会节省车费的问题,讨论了不同乘车方式下的费用。
题目给出了不同乘车区间的单价,所以要想知道换乘是否节约费用,只有根据乘车的距离计算出具体费用然后再加以比较才能得出结论。
经分析可知,当行驶的距离在10公里之类时换乘是不划算的,所以本文对于问题的解答,建立了简单的方程模型,只对乘车区间超过10公里的不同乘车方式下的费用进行了计算,通过比较,最终问题得以解决。
4、模型的建立与求解
4.1 模型建立
4.1.1 制度改变前
⎩
⎨⎧>+≤=54.58.154.14x x x y (1)
4.1.2 制度改变后但不在特殊时段乘车
⎪⎩
⎪⎨⎧>-≤<+≤=106310342310x x x x x y (2)
4.1.3 制度改变后在特殊时段乘车
⎪⎩
⎪⎨⎧>-≤<+≤=10159.31032.26.2310x x x x x y (3)
4.2
模型求解
上图给出了不同乘车方式距离与费用的线形图(程序代码见附录一),可以看出:收费制度改革后,行驶的距离越远,所收的费用相对制度改革前越多。
下面针对行驶距离超过10公里进行比较:
4.2.1 行驶距离2010<=<x 时收费情况(不考虑在特殊区段乘车)
(1) 制度改革前
4.148.11+=x y (4)
(2) 制度改革后换乘最低收费情况(先乘10公里然后再换乘)
8*22+=x y (5)
(3) 费用之差
4.6*2.012-=-=∇x y y y (6)
由于2010<=<x 故0<∇y ,所以换乘比较省钱,且最多可省4.4。
4.2.2 行驶距离20>x 时收费情况(不考虑在特殊区段乘车)
(1) 制度改革前
4.148.11+=x y (7)
(2) 制度改革后换乘最低收费情况(每次达到10公里后换乘)
4*10*2*242+-+=)(n x n y (]10
[x n =) (8) (3) 费用之差
4.10*42.0-+=∇n x y (9)
由(9)式可以知道当3>n 时0>∇y ,所以行驶的距离越远,相对于制度改革前换乘并不划算,反而会浪费时间。
结果分析:从上面的计算可以知道,如果乘车距离较短,选择合适的换乘方式可能会节省一点费用,但节省的费用是相当少的,如果乘车距离较远,选择换乘不但不会节省费用还很有可能花费更多的钱,而且浪费了时间。
综上,所以换乘的现象越来越少了。
根据合理的分析,建议各位乘客,在时间就是金钱的当今社会,交通也越来越堵塞的社会情况下还是不要选择换乘,以免得不偿失。
5、附录一:
x=0:1:50;
y1=zeros(size(x));
y2=zeros(size(x));
N=length(x);
for k=1:N
if x(k)<=5;
y1(k)=14.4;
elseif x(k)>=5;
y2(k)=1.8*x(k)+5.4;
end
end
y=y1+y2;
plot(x,y,'-b')
hold on;
x=0:1:50;
y1=zeros(size(x));
y2=zeros(size(x));
y3=zeros(size(x));
N=length(x);
for k=1:N
if x(k)<=3;
y1(k)=10;
elseif x(k)>3&x(k)<=10;
y2(k)=2*x(k)+4;
else x(k)>10 ;
y3(k)=3*x(k)-6;
end
end
y=y1+y2+y3;
plot(x,y,'-r')
hold on;
x=0:1:50;
y1=zeros(size(x));
y2=zeros(size(x));
y3=zeros(size(x));
N=length(x);
for k=1:N
if x(k)<=3;
y1(k)=10;
elseif x(k)>3&x(k)<=10;
y2(k)=2.6*x(k)+2.2;
else x(k)>10 ;
y3(k)=3.9*x(k)-15;
end
end
y=y1+y2+y3;
>> plot(x,y,'-k')。