matlab-note-5
matlab-note-5
数据分析与多项式计算
数据统计分析
求最大元素和最小元素
max():求向量或矩阵的最大元素。
min():求向量或矩阵的最小元素。
1 | x = [-43, 72, 9, 16, 23, 47]; |
对矩阵而言max(A,[],dim):dim取1或2。dim为1时与max(A)功能相同(返回行向量),取2时返回一个列向量,其中第i个元素时A矩阵的第i行的最大值。
求平均值与中值
mean():求向量或矩阵的算数平均值。
median():求向量或矩阵的中值。
1 | x = [-43, 72, 9, 16, 23, 47]; |
求和与求积
sum():求向量或矩阵的和。
prod():求向量或矩阵的积。
1 | x = [-43, 72, 9, 16, 23, 47]; |
累加和与累乘积
cumsum():求向量或矩阵的累加和。
cumprod():求向量或矩阵的累乘积。
1 | x = [-43, 72, 9, 16, 23, 47]; |
求标准差与相关系数
std():计算标准差函数
MATLAB中计算标准差的函数为std(),其调用格式为:
- std(X):计算向量X的标准差。
- std(A):计算矩阵A的各列的标准差。
- std(A,flag,dim):flag取0或1,当flag=0时,计算样本方差,当flag=1时,计算二阶中心矩。默认flag=0,dim=1(按列计算)。
1 | x = randn(50000, 4); |
corrcoef():相关系数函数。
在MATLAB中,计算相关系数的函数为corrcoef(),其调用格式为:
- corrcoef(A):返回由矩阵A所形成的一个相关系数矩阵,其中,第i行第j列的元素表示原矩阵A中第i列和第j列的相关系数。
- corrcoef(X,Y):在这里,X,Y是向量,它们与corrcoef([X,Y])的作用一样,用于求X、Y向量之间的相关系数。
1 | A = [5032, 6000, 5100, 5200; 6532, 6500, 6600, 5800; |
排序
sort():排序函数。
在MATLAB中,排序函数为sort(),其调用格式为:
- sort(X):对向量X按升序排列。
- [Y,I]=sort(A,dim,mode),其中,dim指明对A的列还是行进行排序。mode指明按升序还是降序,若取"ascend",则按升序;若取"descend",则按降序,默认为升序。输出参数中,Y是排序后的矩阵,而I记录Y中元素在A中的位置。
1 | A = [1, -8, 5; 4, 12, 6; 13, 7, -13]; |
多项式计算
多项式的表示
在MATLAB中,n次多项式用一个长度为n+1的行向量表示。分别为各次多项式系数的从高到低的排列。
在MATLAB中创建多项式向量时,要注意三点:
(1)多项式系数向量的顺序是从高到低。
(2)多项式系数向量包含0次项系数,所以其长度为多项式最高次数加1。
(3)如果有的项没有,系数向量相应位置应用0补足。
多项式的四则运算
多项式的加减运算
多项式加减即为相应向量加减。
多项式乘法
conv(P1,P2):多项式相乘,其中,P1、P2是两个多项式系数向量。
多项式除法
[Q,r]=deconv(P1,P2): 多项式相除,其中Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。这里,Q和r仍是多项式系数向量。deconv是conv的逆函数,因此有下式成立。
$P1=conv(Q,P2)+r$
1 | f = [3, -5, 0, -7, 5, 6]; |
多项式的求导
polyder():多项式求导函数。
调用格式:
p=polyder§:求多项式P的导函数
p=polyder(P,Q):求P*Q的导函数
[p,q]=polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。
1 | a = [3, 1, 0, -6]; |
多项式的求值
polyval(p,x):代数多项式求值。
polyvalm(p,x):矩阵多项式求值。
1 | a = [1, 8, 0, 0, -10]; |
多项式的求根
roots§:多项式求根函数。其中,p为多项式的系数向量。
1 | a = [1, 8, 0, 0, -10]; |
若已知多项式的全部根,则可以用poly函数建立该多项式。
1 | a = [1, 8, 0, 0, -10]; |
数据插值
1 | x = [0, 3, 5, 7, 9, 11, 12, 13, 14, 15]; |
从数学上来说,数据插值是一种函数逼近的方法。
一维插值函数
interp1():一维插值函数。
调用格式:Y1=interp1(X,Y,X1,method);
根据X,Y的值,计算函数在X1处的值。其中,X,Y是两个等长的已知向量,分别表示采样点和采样值。X1是一个向量或标量,表示要插值的点。
method:
- linear:线性插值。(默认)将与插值点靠近的两个数据点用直线连接,然后在直线上选取对应插值点的数据。
- nearest:最近点插值。选择最近样本点的值作为插值数据。
- pchip:分段三次埃尔米特插值。采用分段三次多项式,除满足插值条件,还需满足在若干节点处相邻段插值函数的一阶导数相等,使得曲线光滑的同时,还具有保形性。
- spline:三次样条插值。每个分段内构造一个三次多项式,使其插值函数除满足插值条件外,还要求在各节点处具有连续的一阶和二阶导数。
1 | x = [0, 3, 5, 7, 9, 11, 12, 13, 14, 15]; |
四种方法的比较
- 线性插值和最近点插值方法比较简单。其中线性插值方法的计算量与样本点n无关。n越大,误差越小。
- 3次埃尔米特插值和3次样条插值都能保证曲线的光滑性。相比较而言,3次埃尔米特插值具有保形性;而3次样条插值要求其二阶导数也连续,所以插值函数的性态更好。
二维插值函数
interp2():二维插值函数。
$Z1=interp2(X,Y,Z,X1,Y1,method);$
曲线拟合
与数据插值类似,曲线拟合也是一种函数逼近的方法。
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)。
1 | x = 1790:10:2010; |
- Title: matlab-note-5
- Author: Charles
- Created at : 2023-02-03 22:36:33
- Updated at : 2023-08-17 09:48:16
- Link: https://charles2530.github.io/2023/02/03/matlab-note-5/
- License: This work is licensed under CC BY-NC-SA 4.0.