MATLAB入门到精通(五)

专题五 数据分析与多项式计算
5.1 数据统计分析
求最大元素和最小元素

max():求向量或矩阵的最大元素

min():求向量或矩阵的最小元素

当参数为向量时,函数有两种调用格式:

  1. y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。
  2. [y,k]=max(X):返回向量X的最大值存入y,最大值元素的序号存入k,如果X中包含复数元素,则按模取最大值。

当参数为矩阵时,函数有三种调用格式:

  1. max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值
  2. [Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值元素的行号。
  3. max[A,[],dim]:dim取1或2。dim取1时,该函数的功能和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。
求平均值与中值
  1. mean():求算数平均值
  2. median():求中值
求和与求积
  1. sum():求和函数
  2. prod():求积函数
累加和与累乘积

在这里插入图片描述

  1. cumsum():累加和函数
  2. cumprod():累乘积函数
求标准差与相关系数

std():计算标准差函数

调用格式:

  1. std(X):计算向量X的标准差
  2. std(A):计算矩阵A的各列的标准差
  3. std(A,flag,dim):flag取0或1,当flag=0,按S1所列公式计算样本标准差;当flag=1时,按S2所列公式计算总体标准差。标准情况下,flag=0,dim=1。dim=1时,按列计算,dim=时按行计算。

相关系数

corrcoef():相关系数函数

调用格式:

  1. corrcoef(A):返回由矩阵A所形成的一个相关系数矩阵,其中第i行第j列的元素表示原矩阵A中第i列和第j列的相关系数,由此说明相关系数矩阵是一个方阵。
  2. corrcoef(X,Y):在这里,X\Y是向量,他们与corrcoef(X,Y)的作用一样,用于求X\Y向量之间的系数。
排序
  1. sort[X]:对向量X按升序排列

  2. [Y,I]=sort(A,dim,mode)

    其中,dim指明对A的列还是行进行排序。mode指明按升序还是降序排序,若取“ascend”则按升序,若取“descend”则按降序,默认为升序。输出参数中,Y是排序后的矩阵,而I记录Y中的元素在A中的位置

5.2 多项式计算
多项式的表示

在MATLAB中,n次多项式用一个长度为n+1的行向量表示。

在这里插入图片描述

注意事项:

  • 多项式系数向量的顺序是从高到低
  • 多项式系数向量包含0次项系数,所以其长度为多项式最高次数加1
  • 如果有的项没有,系数向量相应位置应用0补足
多项式的四则运算
  1. 加减运算

    多项式加减运算十分简单,即相应向量相加减

  2. 乘法运算

    conv(P1,P2):多项式相乘函数

  3. 除法运算

    [Q,r]=deconv(P1,P2):多项式相除函数

    其中,Q返回多项式P1除以P2的商式,r返回P1除以P2的余式,Q和r仍是多项式系数向量。

    deconv是conv的逆函数,因此有P1=conv(Q,P2)+r

多项式的求导

polyder():多项式求导函数

调用格式:

  1. p=polyder(P):求多项式P的导函数
  2. p=polyder(P.Q):求P*Q的导函数
  3. [ ,q]=polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q
多项式的求值
  1. polyval(p,x):代数多项式求值

    p为多项式系数向量;x可以是标量、向量或矩阵。若x为标量,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求多项式的值

  2. polyvalm(p,x):矩阵多项式求值

    其调用格式与polyval相同,但含义不同。ployvalm函数要求x为方阵,以方阵为自变求多项式的值,相关运算计算的是矩阵运算。

多项式的求根

roots(p):多项式求根函数

其中,p为多项式的系数向量

若已知多项式的全部根,则可以用poly函数建立起该多项式,其调用格式为:p=poly(x)

5.3 数据插值

数据插值可以根据有限个点的取值状况,合理估算出附近其他点的取值,从而节约大量的实验和测试资源,节省大量的人力、物力和财力。

从数学上来说,数据插值是一种函数逼近的方法。

interp1():一维插值函数

调用格式:Y1=interp1(X,Y,X1,method)

根据X、Y的值计算函数在X1处的值,其中X、Y是两个等长的已知向量,分别表示采样点和采样值。X1是一个向量或标量,表示要插值的点。

method参数用于指定插值的计算方法,常用的取值有以下四种:

  1. linear:线性插值,默认方法。将与插值点靠近的两个数据点用直线连接,然后在直线上选取对应插值点的数据。
  2. nearest:最近点插值,选择最近样本点的值作为插值数据
  3. pchip:分段3此埃尔米特插值,采用分段三次多项式,除满足插值条件,还需满足在若干节点处相邻段插值函数的一阶导数相等,使得曲线光滑的同时,还具有保形性。
  4. spline:3次样条插值。每个分段内构造一个三次多项式,使其插值函数除满足插值条件外,还要求在各节点处具有连续地一阶和二阶导数。

多项式次数并非越高越好,次数越高,越容易产生震荡而偏离原函数,这种现象称为龙格现象。

线性插值和最近点插值方法比较简单。其中线性插值方法的计算量与样本点n无关,n越大,误差越小。

3次埃尔米特插值和3次样本插值都能保证曲线的光滑性。相比较而言,3次埃尔米特插值具有保形性,而3次样条插值要求其二阶导数也连续,所以插值函数的性态更好。

intrep2():二维插值函数

调用格式:Z1=interp2(X,Y,Z,X1,Y1,method)

X、Y是两个向量,表示两个参数的采样点,Z是采样点对应的函数值。X1、Y1是两个标量或向量,表示要插值的点。

5.4 曲线拟合

如果数据插值中的数据在测量时没有得到准确值,那么这样得到的数据会有很大的误差。

与数据插值类似,曲线拟合也是一种函数逼近的方法,已知x上的x个采样点以及函数值y,构造函数去逼近未知函数,使得误差在某种意义下达到最小。

在曲线拟合中,用于实现曲线拟合实现方法是polyfit(),多项式拟合函数,这个函数的功能是求得最小二乘拟合多项式系数。

调用格式:

  1. P=polyfit(X,Y,m)
  2. [P,S]=polyfit(X,Y,m)
  3. [P,S,mu]=polyfit(X,Y,m)

根据样本数据X和Y,产生一个m次多项式P及其在采样点误差数据S,mu是一个二元向量,mu(1)是meax(X),而mu(2)是std(X)

曲线拟合虽然功能强大,但是并不是适用于所有场景,对于一些敏感预测通常要采用多种预测方式。

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

相同点:

  1. 都属于函数逼近方法
  2. 都能根据有限的样本数据去估算其他数据

不同点:

  1. 在实现方法上,数据插值要求逼近函数经过样本点,而曲线拟合不要求逼近函数经过样本点,只要求总体误差最小
  2. 数据插值通过分段逼近,没有整体的逼近函数,而曲线拟合有整体的函数表示式
  3. 数据插值一般用于样本区间内的插值计算,而曲线拟合不仅可以估算区间内的其他点的函数值,还可以预测时序数据的发展趋势,以及从统计数据中总结一般性经验
  4. 如果样本数据是精确数据,适合数据插值,如果为统计数据或存在误差,则适合用曲线拟合的方法
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值