1.数据统计分析
求矩阵的最大元素和最小元素
- 当参数为向量时,函数有两种调用格式:
(1) y=max(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行上的最大值。
求矩阵的平均值和中值
- 平均值:指算术平均值,即每项数据之和除以项数。
- 中值:指在数据序列中其值的大小怡好处在中间的元素。如果数据个数为奇数,则取值为大小位于中间的元素;如果数据个数为偶数,则取中间两个元素的平均值。
- maen():求算术平均值。
- madan():求中值。
用法与max函数相同
求和与求积
- sum():求和函数。
- prod():求积函数。
累加和累乘积
- cumsum():累加和函数。
- cumprod():累加积函数。
标准差与相关系数
- 标准差用于计算数据偏离平均数的距离的平均值,其计算公式为:
std():计算标准差函数。
调用格式:
(1) std(X):计算向量X的标准差。
(2) std(A):计算矩阵A的各列的标准差。
(3) std(A,flag,dim):flog取0或1,当flag=0时,按S1所列公式计算样本标准差;当flag=1时,按S2所列公式计算总体标准差,dim=1,按列求;dim=2,按行求。默认情况下,flag=0,dim=1。 - 相关系数:能够反应两组数据序列之间的相互关系,其计算公式为:
corrcoef():相关系数函数。
调用格式:
(1) corrcoefl(A):返回由矩阵A所形成的一个相关系数矩阵,其中第i行第j列的元素表示原矩阵A中第i列和第j列的相关系数。
(2) corrcoef(X,Y):在这里,X、Y是向量,它们与corrcoef([X,Y])的作用一样,用于求X、Y向量之间的相关系数。
排序
sort():排序函数。
调用格式:
(1)sort(X):对向量X按升序排列。
(2)[Y,I]=sort(A, dim, mode)
其中,dim指明对A的列还是行进行排序。mode指明按升序还是降序排序,若取“ ascend”,则按升序;若取“ descend”,则按降序,默认为升序。输出参数中,Y是排序后的矩阵,而I记录Y中的元素在A中位置。
2.多项式计算
多项式的表示
在 MATLAB中,n次多项式用一个长度为n+1的行向量表示。
如有n次多项式:
则在 MATLABI中,p(x)表示为向量形式:
在 MATLAB中创建多项式向量时,注意三点
(1)多项式系数向量的顺序是从高到低。
(2)多项式系数向量包含0次项系数,所以其长度为多项式最高次数加1。
(3)如果有的项没有,系数向量相应位置应用0补足。
多项式的四则运算
(1)多项式的加减运算
多项式的加减运算非常简单,即相应向量相加减。
(2)多项式乘法
conv(P1,P2):多项式相乘函数。
在这里,P1、P2是两个多项式系数向量。
(3)多项式除法
[Q,r]= deconv(P1,P2):多项式相除函数。
其中,Q返回多项式P1除以P2的商式,r返回P1除以P2的余
式。这里,Q和r仍是多项式系数向量。
decon是conv的逆函数,因此有 Pl=conv(Q, P2)+r
多项式的求导
polyder():多项式求导函数。
调用格式:
(1) p= polyder(P):求多项式P的导函数。
(2) p= polyder(F,Q):求P·Q的导函数。
(3) [p,q]= polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。
多项式的求值
- polyval(p,x)
其中,p为多项式系数向量;x可以是标量、向量或矩阵。若x为标量,则求多项式在该点的值;若×为向量或矩阵,则对向量或矩阵中的每个元素求多项式的值。 - polyvalm(p,x)
其调用格式与polyval相同,但含义不同。 polyvalm函数要求×为方阵,以方阵为自变量求多项式的值。
多项式求根
roots(p):多项式求根函数。
其中,p为多项式的系数向量。
若已知多项式的全部跟,则可以用poly函数建立该多项式,其调用格式为:p=poly(x)
3.数据插值
数据插值可以根据有限个点的取值状况,合理估算出附近其
他点的取值,从而节约大量的实验和测试资源,节省大量的人力、物力和财力。
数据插值的实现方法
(1)interp1():一维插值函数。
调用格式:
Y=interp1(X, Y, X1, method)
根据X、Y的值,计算函数在Ⅺ处的值。其中,X、Y是两个等长的已知向量,分别表示采样点和采样值。Ⅺ是一个向量或标量表示要插值的点。
method用于指定插值方法,常用的取值有以下四种:
- linear:线性插值,默认方法。将与插值点靠近的两个数据点用直线连接,然后在直线上选取对应插值点的数据。
- nearest:最近点插值。选择最近样本点的值作为插值数据。
- pchip:分段3次埃尔米特插值。采用分段三次多项式,除满足插值条件,还需满足在若干节点处相邻段插值函数的一阶导数相等,使得曲线光滑的同时,还具有保形性。
- spline:3次样条插值。每个分段内构造一个三次多项式,使其插值函数除满足插值条件外,还要求在各节点处具有连续的一阶和二阶导数。
四种方法的比较:
- 线性插值和最近点插值方法比较简单。其中线性插值方法的计算量与样本点n无关。n越大,误差越小。
- 3次埃尔米特插值和3次样条插值都能保证曲线的光滑性。相比较而言,3次埃尔米特插值具有保形性:而3次样条插值要求其二阶导数也连续所以插值函数的性态更好。
(2)interp2():二维插值函数。
调用格式:
Z1=interp2(X,Y, Z, X1, Y1, method)
其中,X、Y是两个向量,表示两个参数的采样点,Z是采样点对应的函数值。X1、Y1是两个标量或向量,表示要插值的点。
4.数据插值应用举例
机动车刹车距离问题
沙盘制作问题
5.曲线拟合
曲线拟合的原理
与数据插值类似,曲线拟合也是一种函数逼近的方法。
有函数y=f(x),构造一个函数g(x)去逼近未知函数f(x),使得误差g(x)- f(x)在某种意义下(最小二乘法)最小。
曲线拟合的方法
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)是 mean(X)而mu(2)是std(X)。
曲线拟合的功能
- 估算数据
- 预测趋势
- 总结规律
实际应用
6.曲线拟合应用举例
股票预测问题
算法的参数优化问题
在群体智能优化算法的设计中,搜索行为具有一定的随机性,以免于陷入局部最优。但是,随机性参数的设置却是一个普遍性的难题。如果随机性过高,算法的多样性增加,但是难以收敛;若随机性太低,算法收敛速度快,但多样性降低,极有可能陷入局部最优。现在算法的设计者既不愿意降低收敛性,又不愿意牺牲多样性,只能在两者之间取得一个平衡点。
数据插值与曲线拟合的比较
相同点:
- 都属于函数逼近的方法
- 都能进行数据估算
不同点:
- 实现方法不同
- 结果形式不同
- 侧重点不同
- 应用场合不同