一、数据统计分析
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列上的最大值。
例子:求矩阵A=[13,-56,78;25,63,-235;78,25,563;1,0,-1]每行每列的最大元素,以及整个矩阵的最大元素。
2、求矩阵的平均值与中值
- 平均值:算术平均值,值每项数据之和除以项数。用mean()函数。
- 中值:数据序列中其值的大小恰好处在中间的元素。如果数据个数为奇数,则取值为位于中间的元素;如果数据个数为偶数,则取值为中间两个元素的平均值。用median()函数。
3、求和与求积
- sum():求和函数
- prod():求积函数
4、累加和与累乘积
cumsum():累加和函数
cumprod():累乘积函数
5、求标准差与相关系数
- 标准差用于计算数据偏离平均数的距离的平均值,计算公式为
计算标准差的函数为std(),调用格式为:
(1)std(X):计算向量X的标准差。
(2)std(A):计算矩阵A的各列的标准差。
(3)std(A,flag,dim):当flag取0时,按S1所列公式计算样本标准方差;当flag取1时,按S2所列公式计算总体标准方差。默认情况下,flag=0,dim=1.
相关系数能反映两组数据序列之间相互关系,其计算公式为
计算相关系数函数为corrcoef():
(1)corrcoef(A):返回由矩阵A所形成的一个相关系数矩阵。其中,第i行第j列的元素表示原矩阵A中第i列和第j列的相关系数。
(2)corrcoef(X,Y):在这里X,Y是向量,与corrcoef([X,Y])的作用一样,用于求X、Y向量之间的相关系数。
例子:评估哪个产品分配方案最为合理。
6、排序
- sort(X):对向量X按升序排列
- [Y,I]=sort(A,dim,mode):其中dim指明对A的列还是行进行排序。mode指明按升序还是降序,若取“ascend”为升序,若“descend”为降序,默认为升序。输出参数中,Y是排序后的矩阵,I记录Y中的元素在A中的位置。
二、多项式计算
1、多项式的表示
n次多项式:f(x)=anxn+an-1xn-1+……+a1x+a0
在MATLAB中,f(x)表示为向量形式[an,an-1,……,a1,a0]
在MATLAB中创建多项式向量时,需要注意:
(1)多项式系数向量的顺序是从高到低。
(2)多项式系数向量包含0次项系数,所以其长度为多项式最高次数加1.
(3)如果有的项没有,系数向量相应位置应用0补足。
2、多项式的四则运算
(1)多项式的加减运算
相应的向量相加减。注意,只有同次项才能相加减。不足的项添0。
(2)多项式乘法
conv(P1,P2):多项式相乘。其中,P1,P2是两个多项式系数向量。
(3)多项式除法
[Q,r]=deconv(P1,P2):多项式相除,Q返回多项式P1除以P2的商式,r返回余式。Q和r仍是多项式系数向量。deconv是conv的逆函数,因此下式成立:P1=conv(Q,P2)+r
例子:f(x)=3x5-5x4-7x2+5x+6,g(x)=3x2+5x-3,求f(x)+g(x),f(x)-g(x),f(x)*g(x),f(x)/g(x)
3、多项式的求导
(1)polyder( P):求多项式P的导函数。
(2)polyder( P,Q):求P*Q的导函数。
(3)[p,q]=polyder( P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。
例子:已知两个多项式
a(x)=3x3+x2-6;b(x)=x+2
计算两个多项式的乘积的导函数、商的导函数。
4、多项式的求值
(1)polyval(p,x):代数多项式求值,其中p为多项式系数向量,x可以是标量、向量或者矩阵。若x为标量,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求多项式。
(2)polyvalm(p,x):矩阵多项式求值,其中x要求为方阵,以方阵为自变量求多项式的值。
- 若x都为方阵,对比polyval和polyvalm。ployval执行的是点乘运算,而polyvalm执行的是矩阵运算。
设A为方阵,P代表多项式x3-5x2+8,那么polyvalm(P,A)的含义是:
A3-5A2+8 * eye(size(A))
而ployval(P,A)的含义是:A.3-5A.2+8*ones(size(A))
例子:P为多项式x4+8x3-10,x为方阵[-1,1.2;2,-1.8]
5、多项式的求根
(1)roots( p):多项式求根函数
例子:求多项式x4+8x3-10的根
(2)若一直多项式的全部根x,poly(x)函数建立起该多项式.
(3)求函数p(x)=-38.89x2+126.11x-3.42在[0.2]区间上的最大值。