MATLAB学习笔记5 数值分析与多项式计算
文章目录
5.1 数据统计分析
求最大元素与最小元素
- max():求向量或矩阵的最大元素
- min():求向量或矩阵的最小元素
当参数为向量时,函数有两种调用格式:
- y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值
- [y,k]=max(X):返回向量X的最大值存入y,最大值元素的序号存入k,如果X中包含复数元素,则按模取最大值
当参数为矩阵时,函数有三种调用格式:
- max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值
- [Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值元素的行号
- max(A,[],dim):dim取1或2。dim取1时,该函数的功能和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值
求平均值与中值
- 平均值:指算数平均值,即每项数据之和除以项数
- 中值:是指将统计总体当中的各个变量值按大小顺序排列起来,形成一个数列,处于变量数列中间位置的变量值就称为中位数
- mean():求算数平均值
- median():求中值
求和与求积
- sum():求和函数
- prod():求积函数
累加和与累乘积
- cumsum:累加和函数
- cumprod:累乘积函数
求标准差与相关系数
std():计算标准差函数
S
1
=
1
N
−
1
∑
i
=
1
N
(
x
i
−
x
ˉ
)
2
S_1=\sqrt{\frac{1}{N-1}\sum_{i=1}^{N}(x_i-\bar{x})^2}
S1=N−11i=1∑N(xi−xˉ)2
S 2 = 1 N ∑ i = 1 N ( x i − x ˉ ) 2 S_2=\sqrt{\frac{1}{N}\sum_{i=1}^{N}(x_i-\bar{x})^2} S2=N1i=1∑N(xi−xˉ)2
调用格式:
- std(X):计算向量X的标准差
- std(X):计算矩阵A的各列的标准差
- std(A,flag,dim):flag取0或1,当flag=0时,按s1所示公式计算样本标准差,当flag=1时,按s2所示公式计算总体标准差。默认情况下,flag=0,dim=1
corrcoef():相关系数函数
相关系数:能够反映两组数据序列之间的相互关系,其计算公式为
r
=
∑
(
x
i
−
x
ˉ
)
(
y
i
−
y
ˉ
)
∑
(
x
i
−
x
ˉ
)
2
∑
(
y
i
−
y
ˉ
)
2
[
−
1
,
+
1
]
r=\frac{\sum{(x_i-\bar{x})(y_i-\bar{y})}}{\sqrt{\sum{(x_i-\bar{x})^2\sum(y_i-\bar{y})^2}}} [-1,+1]
r=∑(xi−xˉ)2∑(yi−yˉ)2∑(xi−xˉ)(yi−yˉ)[−1,+1]
调用格式:
- corrcoef(A):返回由矩阵A所形成的一个相关系数矩阵,其中,第i行第j列的元素表示原矩阵A中第i行和第j列的相关系数
- corrcoef(X,Y):在这里,X、Y是向量,它们与corrcoef([X,Y])的作用一样,用于求X、Y向量之间的相关系数
排序
sort():排序函数
调用格式:
- sort(X):对向量X按升序排序
- [Y,I]=sort(A,dim,mode)
其中,dim指明对A的列还是行进行排序。mode指明按升序还是降序排序,若取“ascend",则按升序;若取”descend",则按降序,默认为升序。输出参数中,Y是排序后的矩阵,而I记录Y中的元素在A中位置
5.2 多项式计算
多项式的表示
在MATLAB中,n次多项式用一个长度为n+1的行向量表示。如有n次多项式:
p
(
x
)
=
a
n
x
n
+
a
n
−
1
x
n
−
1
+
a
n
−
2
x
n
−
2
+
.
.
.
a
1
x
1
+
a
0
p(x)=a_nx^n+a_{n-1}x^{n-1}+a_{n-2}x^{n-2}+...a_{1}x^{1}+a_0
p(x)=anxn+an−1xn−1+an−2xn−2+...a1x1+a0
则在MATLAB中,p(x)表示为向量形式:
[
a
n
,
a
n
−
1
,
a
n
−
2
,
.
.
.
,
a
1
,
a
0
]
[a_n,a_{n-1},a_{n-2},...,a_{1},a_{0}]
[an,an−1,an−2,...,a1,a0]
在MATLAB中创建多项式向量时,注意三点:
- 多项式系数向量的顺序是从高到低
- 多项式系数向量包含0次项系数,所以其长度为多项式最高次数加一
- 如果有的项没有,系数向量相应位置应用0补足
多项式的四则运算
-
多项式的加减运算
相应向量相加减
-
多项式乘法
conv(P1,P2):多项式相乘函数
在这里,P1、P2是两个多项式系数向量
-
多项式除法
[Q、r]=deconv(P1,P2):多项式相除函数
Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。这里,Q和r仍然是多项式系数向量
多项式的求导
polyder():多项式求导函数
调用格式:
- p=polyder§:求多项式P的导函数
- p=polyder(P,Q):求P·Q的导函数
- [p,q]=polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q
多项式的求值
-
polyval(p,x):代数多项式求值
其中,p为多项式系数向量;x可以是标量、向量或矩阵。若x为标量,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求多项式的值
-
polyvalm(p,x):矩阵多项式求值
要求x为方阵,以方阵为自变量求多项式的值
多项式求根
roots§:多项式求根函数
其中,p为多项式的系数向量
若已知多项式的全部根,则可以用poly函数建立起该多项式,其调用格式为:p=poly(x)
5.3 数据插值
interp1() 一维插值函数
调用格式:
Y1=interp1(X,Y,X1,method)
根据X、Y的值,计算函数在X1处的值。其中,X、Y是两个等长的已知向量,分别表示采样点和采样值。X1是一个向量或者标量,表示要插值的点
method用于指定插值方法,常用的取值有以下四种:
- linear:线性插值,默认方法。将与插值点靠近的两个数据点用直线连接,然后在直线上选取对应的插值点的数据
- nearest:最近点插值。选择最近样本点的值作为插值数据
- pchip:分段3次埃尔米特插值。采用分段三次多项式,除满足插值条件,还需满足在若干节点处相邻段插值函数的一阶导数相等,使得曲线光滑的同时,还具有保形性
- spline:3次样条插值。每个分段内构造一个三次多项式,使其插值函数除满足插值条件外,还要求在个节点处具有连续的一阶和二阶导数
interp2() 二维插值函数
调用格式:
Z1=interp2(X,Y,Z,X1,Y1,method)
其中,X、Y是两个向量,表示两个参数的采样值,Z是采样点对应的函数值。X1、Y1是两个标量或向量,表示要插值的点
method不支持pchip
5.5 曲线拟合
曲线拟合的原理
最小二乘法是一种数学优化技术。它通过最小化误差的平方和来寻找数据的最佳函数匹配
polyfit():多项式拟合函数
函数功能:求得最小二乘拟合多项式系数
调用格式:
- P=polyfit(X,Y,m)
- [P,S]=polyfit(X,Y,m)
- [P,S,mu]=polyfit(X,Y,m)
根据样本数据X和Y,产生一个m次多项式P及其在采样点的误差S,mu是一个二元向量,mu(1)是mean(X),而mu(2)是std(X)
曲线拟合的三种功能
- 估计数据
- 预测趋势
- 总结规律
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)
曲线拟合的三种功能
- 估计数据
- 预测趋势
- 总结规律