1、32.947.684.7利用上述数据,确定停车行驶距离随速度变化的函数关系,并估计使一辆以110km/h速度行驶的汽车停止下来需要行驶的距离。题目分析:停车距离=思考距离+刹车距离,根据题目中的数据,可得停车距离与速度的对应关系为:停车距离m10.620.832.147.464.3107.1在MATLAB中作出这6个点的散图%the scatter plotX=30 45 60 75 90 120; %the speedY=10.6 20.8 32.1 47.4 64.3 107.1; %the stopping distanceset(0,defaultfigurecolor,w); %se
2、t the background color to whitescatter(x,y,*b)xlabel(Speed (km/h)ylabel(Stopping distance (m)hold on图形如下:下面分别使用插值法和拟合法两类方法对一辆以110km/h速度行驶的汽车停止下来需要行驶的距离作出预测。Lagrange插值法n次基本插值多项式为:Lagrange插值多项式取为基函数,令其权重系数为,则插值函数如下:本题中一共有6个点,故采用5次插值。MATLAB代码如下%Lagrange polynomialformat long %speed %stopping distancesy
3、ms la x;m=length(X); %the number of known pointsla=sym(0);for i=1:m temp=sym(Y(i); for j=1: if j=i temp=temp*(x-X(j)/(X(i)-X(j); end la=la+temp;endla=expand(la);la=vpa(p,5)计算得到的插值函数为:将代入插值函数,得停车距离的估计值为88.7m。(该插值函数与五次多项式拟合结果相同)使用MATLAB作该函数的图像scatter(X,Y,ezplot(p,20 130)图像如下所示:分析:可以看到,该插值函数是在各个节点处是不太光
4、滑的,这不符合实际上的情况,在之后的三次样条插值法会对此作出改善。Newton插值法Newton插值法与Lagrange插值法计算结果是相同的,此处不再赘述,下面仅提供计算方法和MATLAB代码%Newton interpolation polynomialsyms fx x;f=zeros(m,m);f(:,1)=Y;for i=2: for j=i: f(j,i)=(f(j,i-1)-f(j-1,i-1)/(X(j)-X(j-i+1);p=f(1,1); t=1;i-1 t=t*(x-X(j); p=p+f(i,i)*t;p=expand(p);p=vpa(p,5)三次样条差值设f(x)
5、是区间a, b上的一个二次连续可微函数。在区间上给定一组节点:,设函数:满足条件:(1) S(x)在区间a,b上存在二阶(m-1阶)的连续导数;(2) 每个子区间xi1,xi上Si(x)都是一个不高于3次(m次)的多项式;(3) 满足插值条件S(xi) = f (xi) ,i=0,n。则称S(x)为函数f(x)关于节点x0、x1、xn的三次(m次)样条插值函数,简称三次(m次)样条。由于三次样条曲线有连续的一阶和二阶导数,比较符合实际情况,因此主要采取三次样条插值。使用MATLAB内置函数csape,代码如下x=30 45 60 75 90 120;y=10.6 20.8 32.1 47.4
6、64.3 107.1;pp=csape(x,y,second) %use natural boundary conditionsco=pp.coefssyms ts1=co(1,1)*(t-30)3+co(1,2)*(t-30)2+co(1,3)*(t-30)+co(1,4)s2=co(2,1)*(t-45)3+co(2,2)*(t-45)2+co(2,3)*(t-45)+co(2,4)s3=co(3,1)*(t-60)3+co(3,2)*(t-60)2+co(3,3)*(t-60)+co(3,4)s4=co(4,1)*(t-75)3+co(4,2)*(t-75)2+co(4,3)*(t-75
7、)+co(4,4)s5=co(5,1)*(t-90)3+co(5,2)*(t-90)2+co(5,3)*(t-90)+co(5,4)最终解得样条函数为代入插值函数中,得停车距离的估计值为91.9m。使用MATLAB作该插值函数的图像:%Cubic Spline Interpolationt=20:0.01:130;plot(x,y,*,t,spline(x,y,t)线性拟合线性拟合的函数形式为,在本题中,自变量为速度,因变量为停车距离。根据最小二乘法的原理,拟合函数中各项系数的计算方法如下:此时系数矩阵为,%linear fitA=m sum(X);sum(X) sum(X.2);b=sum(
8、Y);sum(X.*Y);coe=Ab %the value of coefficient计算结果为,则线性拟合函数为代入该拟合函数中,得停车距离的估计值为89.8m。使用MATLAB作出该拟合函数的图像:fplot(-27.7900+1.0691*x,20 130)拟合的图形如下二次多项式拟合二次多项式拟合的函数形式为为,同样根据最小二乘原则,函数中各项系数的方程如下所示:利用MATLAB计算:%quadratic polynomial fitA=m sum(X) sum(X.2);sum(X) sum(X.2) sum(X.3);sum(X.2) sum(X.3) sum(X.4);sum
9、(X.*Y);sum(X.2.*Y);可解得,则函数表达式为代入该拟合函数中,得停车距离的估计值为91.6m。-0.3650+0.1985*x+0.0058*x2三次多项式拟合原理同线性拟合和二次拟合,不再赘述,MATLAB代码如下:%cubic polynomialA=m sum(X) sum(X.2) sum(X.3); sum(X) sum(X.2) sum(X.3) sum(X.4); sum(X.2) sum(X.3) sum(X.4) sum(X.5); sum(X.3) sum(X.4) sum(X.5) sum(X.6);sum(X.2.*Y);sum(X.3.*Y);解得拟合
10、函数为代入该拟合函数中,得停车距离的估计值为82.8m。作出三次多项式拟合函数的图像:-2.3783+0.3011*x+0.0043*x2+0在三次多项式拟合中,求系数的方程组的系数方程组的系数矩阵(即MATLAB代码中的A)的谱条件数为2.005*1014,显然此时已经是病态方程组,当拟合次数更高时,谱条件数更大,方程组也更加地病态。从拟合的函数可以看到,最高次项的系数已经为0了;从图形中也可以看到,当x较大时,拟合曲线已经偏离了样本点,所以此时已经的拟合函数是没有意义的,或者说是不准确的。小结:各方法对速度为110km/h时的停车距离的估计值如下表所示:方法Lagrange/ Newton
11、插值法三次样条插值法估值88.791.989.891.682.8首先,三次多项式拟合及更高次数的多项式拟合是显然不合适的,前文已有说明,所以显然不能采用该方法。对于本问题,由于对思考距离、停车距离的测量计算在实际操作中显然是有较大的误差的,而插值法将所取的测量值当做精确值来计算,保留了全部误差,所以结果可能有较大误差。而拟合法的主要思想是逼近测量数据,使各数据点从总体上最贴近,不要求拟合曲线通过数据点,所以能够在一定程度上消除误差,得到更加客观的结果。线性拟合和二次多项式拟合的图像如下所示,可以看出,二次拟合的函数曲线与数据点更为贴近,所以在本题中认为二次多项式拟合的估计结果91.6m为最佳估计值。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1