5. 数据分析与多项式计算

A 数据统计分析

A.a 求最大值与最小元素

在这里插入图片描述
在这里插入图片描述
例子:

x = [-43,72,9,16,23,47];
y = max(x)
[y,k] = max(x)

在这里插入图片描述
在这里插入图片描述
(3)中的[]不可省略
在这里插入图片描述
例子:

A = [13,-56,78;25,63,-235;78,25,563;1,0,-1];
max(A)
max(A,[],2)
max(max(A))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

A.b 求平均值和中值

在这里插入图片描述

mean()      % 求算术平均值
median()  % 求中值 
x = [1200,800,1500,1000,5000];
mean(x)
median(x)

A.c 求和与求积

sum()    % 求和
prod() % 求积

A.d 累加和与累乘积

在这里插入图片描述

x = [1,2,3,4,5,6,7,8,9,10]
y1 = prod(x)
y2 = cumprod(x)

A.e 求标准差与相关系数

在这里插入图片描述

在这里插入图片描述

x = randn(50000,4);
y1 = std(x,0,1)
y2 = std(x,1,1)
x1 = x';
y3 = std(x1,0,2)
y4 = std(x1,1,2)

在这里插入图片描述
在这里插入图片描述


A.f 排序

在这里插入图片描述例子:
在这里插入图片描述

A = [1,-8,5;4,12,6;13,7,-13];
sort(A)
sort(A,2,'descend')
[X,I] = sort(A)

B 多项式计算

B.a 多项式的表示

在这里插入图片描述


B.b 多项式的四则运算

在这里插入图片描述
在这里插入图片描述
例子:

f = [3,-5,0,-7,5,6];g = [3,5,-3];g1 = [0,0,0,g];f + g1f- g1conv(f,g)

在这里插入图片描述


B.c 多项式的求导(polyder)

在这里插入图片描述
例子:

a = [3,1,0,-6];b = [1,2];polyder(a)c = polyder(a,b)[p,q] = polyder(a,b)

在这里插入图片描述
在这里插入图片描述

B.d 多项式积分(polyint)

q = polyint(p,k) 使用积分常量 k 返回 p 中系数所表示的多项式积分。
示例:计算定积分
在这里插入图片描述

在这里插入图片描述

B.e 多项式的求值(polyval;polyvalm)

在这里插入图片描述

a = [1,8,0,0,-10];x = [-1,1.2;2,-1.8];y1 = polyval(a,x)y2 = polyvalm(a,x)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

B.f 多项式的求根(roots;poly)

在这里插入图片描述

a = [1,8,0,0,-10];x = roots(a)p = ploy(x)

在这里插入图片描述在这里插入图片描述

p = [-38.89,126.11,-3.42];q = polyder(p);r = roots(q);y = polyval(p,r);x = 0:0.1:2;plot(x,polyval(p,x),r,y,'rp')

C 数据插值(interp)

在这里插入图片描述

C.a 引例-零件加工问题

在这里插入图片描述
在这里插入图片描述

x = [0,3,5,7,9,11,12,13,14,15];y = [0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6];x1 = 0:0.5:15;y1 =interp1(x,y,x1,'spline');plot(x1,y1)

C.b 数据插值的计算机制

在这里插入图片描述
在这里插入图片描述

C.c 数据插值的实现方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
引例用四种方法插值:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

C.d 应用案例1-粮储仓的通风控制问题

在某粮情自动测控系统中,根据粮温、粮湿计算平衡点湿度,与大气湿度进行比较,再根据通风模拟情况决定是否自动进行通风。已测得平衡点湿度与粮温、粮湿关系的部分数据如下表,请推算相应范围内温度每变化1度、湿度每变化1个点的平衡点湿度。

平衡点湿度与粮温、粮湿度关系表

(第一列:粮温,第一行:粮湿,其余:平衡点湿度)

粮温\粮湿2030405060708090
08.910.3211.312.513.915.317.821.3
58.710.81112.113.214.816.5520.8
108.39.6510.881213.214.616.420.5
158.19.410.711.913.114.516.220.3
208.19.210.81213.214.816.920.9
x=20:10:90;y=(0:5:20)';z=[8.9,10.32,11.3,12.5,13.9,15.3,17.8,21.3;8.7,10.8,11,12.1,13.2,14.8,16.55,20.8;8.3,9.65,10.88,12,13.2,14.6,16.4,20.5;8.1,9.4,10.7,11.9,13.1,14.5,16.2,20.3;8.1,9.2,10.8,12,13.2,14.8,16.9,20.9];xi=20:90;yi=(0:20)';zi=interp2(x,y,z,xi,yi,'spline');surf(xi,yi,zi)1234567

fig3

C.e 应用案例2-机动车刹车距离问题

在车辆行驶中,从驾驶员看到障碍物开始,到作出判断而采取制动措施停车所需的最短距离叫停车视距。停车视距由三部分组成:一是驾驶员反应时间内行驶的距离(即反应距离);二是开始制动到车辆完全停止所行驶的距离(即制动距离);三是车辆停止时与障碍物应该保持的安全距离。其中,制动距离主要与行驶速度和路面类型有关。根据测试,某型车辆在潮湿天气于沥青路面行驶时,其行车速度(单位:km/h)与制动距离(单位:m)的关系如下表所示。

速度2030405060708090100110120130140150
制动距离3.157.0812.5919.6828.3438.5750.463.7578.7195.22113.29132.93154.12176.87

假设驾驶员的反应时间为10s,安全距离为10m。请问:
①根据某驾驶员的实际视力和视觉习惯,其驾驶时的有效视距为120m,则其在该路面行车时,时速最高不能超过多少(结果取整)?
②若以表中数据为参考,设计一条最高时速为125km/h的高速公路,则设计人员应该保证驾驶者在公路上任一点的可视距离为多少米?
设速度为v vv,停车视距为d dd,反应距离为d 1 d_1d1​,制动距离为d 2 d_2d2​,安全距离为d 3 d_3d3​,反应时间为a s a_sa**s​,则
d = d 1 + d 2 + d 3 d=d_1+d_2+d_3d=d1​+d2​+d3​其中,d 1 = a s v d_1=a_svd1​=a**sv,d 2 d_2d2​为v的函数,d 3 d_3d3​已知。
第一问:根据某驾驶员的实际视力和视觉习惯,其驾驶时的有效视距为120m,则其在该路面行车时,时速最高不能超过多少(结果取整)?
已知反应时间为10s,安全距离为10m,可采用解方程方法:
10 v + d 2 + 10 = 120 10v+d_2+10=12010v+d2​+10=120存在的问题是,d 2 d_2d2​是v vv的函数,但是函数关系未知,方程不可解。
下面考虑数据插值方法,以表格中的数据为样本,进行数据插值,计算出与120m的停车视距所对应的速度指标。
编程思路:
第一步:建立速度和停车视距向量。
第二步:以1为单位,对采样区间内所有速度进行插值,计算出相应的停车视距。
第三步:求出停车视距120所对应的速度。
第四步:绘图展示。
如何根据停车视距120找到对应的速度?
第一步:令代表停车视距的向量di减去120,再取绝对值,得到一个新的向量x。
第二步:将x按升序排列,并记录最小元素的序号,该序号即为停车视距120所对应的速度数据在向量vi中的序号。
第三步:根据序号取得速度数据。

v=20:10:150;vs=v.*(1000/3600);d1=10.*vs;d2=[3.15,7.08,12.59,19.68,28.34,38.57,50.4,63.75,78.71,95.22,113.29,132.93,154.12,176.87];d3=10;d=d1+d2+d3;vi=20:1:150;di=interp1(v,d,vi,'spline');x=abs(di-120);[y,i]=sort(x);vi(i(1))plot(vi,di,vi(i(1)),di(i(1)),'rp')123456789101112

fig4
停车视距的增长随着车速增加呈非线性增长。速度越快,要求视线越远。
第二问:设计一条最高时速为125km/h的高速公路,则设计人员应该保证驾驶者在公路上任一点的可视距离为多少米?

>>j=find(vi==125);>>di(j)>>ans= 480.14>>plot(vi,di,125,480.14,'rp')12345

C.f 应用案例3-沙盘制作问题

某地面部队分成红蓝两方在指定的陌生区域(平面区域[0,2000]*[0,2000]内,单位:m)进行作战演习。在演习过程中,红方侦查单位已经测得一些地点的高程如下表所示。

y/x020040060080010001200140016001800
02000200020011992195419381972199519991999
2002000200220061908153313811728195919982000
40020002005204319219778971310193020032000
6001997197820092463237414451931220920502003
8001992189215661971276821112653261021212007
10001991187515111556222119862660260121192007
12001996195017972057284927982608230320522003
14001999199920792685339033842781216520162000
16002000200220432271266826682277204920032000
18002000200020042027206720672027200420002000

①根据表中数据,制作军事沙盘。
②在演习范围内,占领最大高地的一方将获得居高临下的优势。请问红方应第一时间抢占哪块区域。
解题思路:
第一问:用二维插值估算数据,以方便制作军事沙盘。
第二问:在插值的基础上,绘制等高线图,找到最大高地。

x=0:200:1800;y=x';z=[2000,2000,2001,1992,1954,1938,1972,1995,1999,1999;2000,2002,2006,1908,1533,1381,1728,1959,1998,2000;2000,2005,2043,1921,977,897,1310,1930,2003,2000;1997,1978,2009,2463,2374,1445,1931,2209,2050,2003;1992,1892,1566,1971,2768,2111,2653,2610,2121,2007;1991,1875,1511,1556,2221,1986,2660,2601,2119,2007;1996,1950,1797,2057,2849,2798,2608,2303,2052,2003;1999,1999,2079,2685,3390,3384,2781,2165,2016,2000;2000,2002,2043,2271,2668,2668,2277,2049,2003,2000;2000,2000,2004,2027,2067,2067,2027,2004,2000,2000];surf(x,y,z);x1=0:100:1800;y1=x1';z1=interp2(x,y,z,x1,y1,'spline');surf(x1,y1,z1);x2=0:50:1800;y2=x2';z2=interp2(x1,y1,z1,x2,y2,'spline');surf(x2,y2,z2);contour(x2,y2,z2,12)12345678910111213141516171819202122

fig5
从图中可以看出最大高地的位置。

D 曲线拟合(plotfit)

插值要求逼近函数在采样点的数值与原函数相等,然而在实验中,测量的数据不一定准确,如果强求逼近函数过样本点,显然是不合理的。使用曲线拟合可以避免这种情况。

D.a 引例-人口预测问题

在这里插入图片描述

在这里插入图片描述

x = 1790:10:2010;y = [3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,63,76,92,105.7,122.8,131.7,150.7,179.3,203.2,226.5,248.7,281.4,308.7];plot(x,y,'*');%生成多项式 拟合曲线p = polyfit(x,y,3);%计算在2020处的值polyval(p,2020)%画两个图plot(x,y,'*',x,polyval(p,x))

D.b 曲线拟合的原理

在这里插入图片描述

在这里插入图片描述


D.c 曲线拟合的实现方法

在这里插入图片描述


股票预测

x = [2,3,4,5,8,9,10,11,12,15,16,17,18,19,22,23,24,25,26,29,30];y = [7.74,7.84,7.82,7.78,7.91,7.97,7.9,7.76,7.9,8.04,8.06,8.11,8.08,8.13,8.03,8.01,8.06,8.0,8.3,8.41,8.28];plot(x,y,'*')p = polyfit(x,y,3);plot(x,y,'*',x,polyval(p,x))%时间太长 选一部分x1 = [31,32,33];%替代xi = [x,x1];plot(x,y,'*',xi,polyval(p,xi));y1 = [8.27,8.17,9.54];%原来的  推测出来的 真实的plot(x,y,'*',xi,polyval(p,xi),x1,y1,'rp')

D.d 算法参数优化问题

多样性和收敛性的交点

x = 0.03:0.03:0.3;y1 = [0.01,0.01,0.02,0.03,0.06,0.07,0.13,0.17,0.25,0.37];y2 = [0.85,0.76,0.68,0.62,0.56,0.52,0.49,0.46,0.43,0.39];plot(x,y1,'*',x,y2,'o')p1 = polyfit(x,y1,2);p2 = polyfit(x,y2,2);p = p1-p2;xi = roots(p);xj = 0:0.03:0.36;yj1 = polyval(p1,xj);yj2 = polyval(p2,xj);%第一个根为负数 选第二个yi = polyval(p1,xi(2))plot(x,y1,'*',x,y2,'o',xj,yj1,xj,yj2,xi(2),yi,'rp')

D.e 实际应用-家庭储蓄规律问题

以下是某市家庭收入x与家庭储蓄y之间的一组调查数据(单位:万元),试建立x与y的线性函数经验公式。

x0.61.01.41.82.22.63.03.43.84
y0.080.220.310.40.480.560.670.750.81.0
x=[0.6,1.0,1.4,1.8,2.2,2.6,3.0,3.4,3.8,4];y=[0.08,0.22,0.31,0.4,0.48,0.56,0.67,0.75,0.8,1.0];p=polyfit(x,y,1)plot(x,y,'*',x,polyval(p,x))p=0.2390-0.0418  %经验公式:y=0.239x-0.0418123456

fig7

F 数据插值与曲线拟合的比较

功能

  • 估算数据
  • 预测趋势
  • 总结规律

相同点

  • 都属于函数逼近的方法;
  • 都可以通过离散有限的数据估算其他数据。

不同点

  • 实现方法上,数据插值要求逼近函数经过样本点,而曲线拟合只需要每个数据点的误差平方和最小;
  • 结果形式上,数据插值往往没有统一的逼近函数,而数据拟合有统一的逼近函数;
  • 侧重点上,数据插值一般用于样本点区间内的数据计算,而曲线拟合不光可以估算区间内的数据,也可以对区间外的进行预测;
  • 应用场合上,如果样本点为精确数据,使用数据插值比较好,如果数据为统计数据,则使用曲线拟合更优。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追寻远方的人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值