广西民族大学数学建模竞赛选拔赛2011A题消防站的最佳位置一个城郊的社区计划更新消防站.原来的消防站在旧城中心.规划要将新的消防站设置得更科学合理.消防队员到达火灾现场的时间(行车时间)依赖于火灾现场的距离.行车时间的资料列于表1.在前一个季度收集了火警行车时间的资料:平均行车时间为3.2分钟;表1行车时间距离1.223.485.13.394.131.752.951.30.762.521.661.84时间2.628.356.443.516.522.465.021.731.144.562.93.19距离3.194.113.094.961.643.233.074.264.42.422.96时间4.2675.497.643.093.885.496.825.534.33.55从社区的不同区域打来的求救电话频率的数据列于图1.其中每一格代表一平方英里,格内的数字为每年从此区域打来的紧急求救电话的数量.图1从社区的各个区域打来的求救电话频率请您解决如下问题:1)求行车时间。消防队对离消防站r英里处打来的一个求救电话需要的行车时间估计为d分钟。给出消防队对求救电话的行车时间的模型d(r).2)求平均行车时间。设社区位于区域[0,6]×[0,6]内,(x,y)是新的消防站的位置。根据求救电话频率,确定消防队对求救电话的平均行车时间z=f(x,y).3)求新的消防站,使平均行车时间最小.解:假设:1.消防队反应时间只依赖于派遣消防队员时间和火灾现场的距离,不考虑其它因素。3014212112325330128521001063131023111广西民族大学数学建模竞赛选拔赛20112.每一次火灾呼救都发生在小正方形的中心。3.消防队前往火灾现场的行车距离近似于消防站址到火灾现场的直线距离。(1)由表1画出所列的行车时间d与距离r的散点图。第一种情况:使用线性模型brad进行拟合。第二种情况:使用幂函数bard进行拟合。计算源程序为:x=[1.223.485.103.394.131.752.951.300.762.521.661.843.194.113.094.961.643.233.074.264.402.422.96];y=[2.628.356.443.516.522.465.021.731.144.562.903.194.267.005.497.643.093.885.496.825.534.303.55];b=polyfit(x,y,1)z=b(2)+b(1).*x;plot(x,y,'bo',x,z)holdony1=log(y);c=polyfit(x,y1,1)z1=exp(c(2))*exp(c(1).*x);plot(x,y,'r*',x,z1,'g+')holdoff用Matlab运行后得到的散点图分别为:(其中蓝色的线为线性模型的拟合,绿色的+号为幂函数的拟合)广西民族大学数学建模竞赛选拔赛2011则40.157.0rd和)*.35.0exp(*)395.0exp(rd。比较拟合效果,则非线性拟合比线性拟合更好。而且我们结合实际,当距离为0时,行车时间必为0,这与我们线性拟合的得出的结论不一致。故行车时间d与距离r的关系为4844.1d*)*.35.0exp(r:。则对离消防站r英里处广西民族大学数学建模竞赛选拔赛2011打来求救电话需要的反应时间)*.35.0exp(*4844.12.3)(rrd。(2)模型的假设:设:各地点(iiy,x)火灾发生的频率为nin(inn)。因为新消防站的位置为(x,y),则消防队对求救电话的平均行车时间z=f(x,y)为:z=f(x,y)=3.2+*844.41))()(*35.0exp(*22361iiiiyyxxnn。(3)模型的求解:要求新的消防站,使平均行车时间最小,即要求平均行车时间函数z=f(x,y)=3.2+))()(*35.0exp(**844.4122361iiiiyyxxnn的最小值点。且约束条件为:60x,60y,即点f(x,y)必须在社区区域[0,6]×[0,6]内。用随机搜索方法确定最小值初值。计算源程序为:functionl=)(xfn=[023111;1063131;852100;533012;211232;301421;];s=sum(sum(n));l=0;fori=0:5;forj=0:5;l=l+(n(j+1,i+1)/s)*(3.2+1.4844*exp(0.35*sqrt((i-x(1))^2+(j-x(2))^2)));endend广西民族大学数学建模竞赛选拔赛2011zmin=100;x0=[0,0,100];k=3;forn=0:1000x=[unifrnd(-0.5,5.5),unifrnd(-0.5,5.5)];z=min()(xf,x0(end));ifzzminxmin=x(1);ymin=x(2);zmin=z;endendx0=[xmin,ymin,zmin]用Matlab运行后得到:最后由命令X=fminunc(@f,[1.7122,2.3104])得到:即最小值点为x=1.6795,y=2.3202,在该处平均时间为最小值,即:f([1.67952.3202]])=6.4561