Matlab操作(2):线性代数中求矩阵相关数据的高级方法

Matlab操作(2):线性代数中求矩阵相关数据的高级方法_第1张图片

文章目录

  • 1.特征多项式
  • 2.特征值与特征向量
  • 3.若当标准型
  • 4.求解线性方程组
  • 5.常用函数汇总 (求逆,化简(高斯法),转置,求秩)
  • 6.其他高级函数

1.特征多项式

poly(A),返回矩阵A的特征多项式的向量表示形式,例如:

>>A=[1 0;2 3];
>>p=poly(A)         %矩阵A的特征多项式的向量表示形式

>>p =

     1    -4     3

>>f=poly2str(p,’x’)     %矩阵A的特征多项式


>>f =

   x^24 x + 3

或者由定义出发,计算特征多项式.例如:

>> A=[1 0;2 3];

>> E=eye(2);        %2阶单位阵

>> syms x

>> f=det(x*E-A)      %矩阵A的特征多项式

>>f =

    (x-1)*(x-3)

2.特征值与特征向量

求一个方阵的特征值与特征向量可以使用函数eig( ).

命令 具体功能
d=eig(A) 返回A所有特征值们组成的列向量d
[V,D]= eig(A) 返回A所有特征值组成的矩阵D和特征向量组成的矩阵V
[V,D]= eigs(A) 返回A所有特征值(按大小次序)组成的对角矩阵D和特征向量组成的矩阵V,且满足D=V-1AV
d=eig(A,B) 返回复数矩阵A+Bi所有特征值组成的向量d
[V,D]= eig(A,B) 返回复数矩阵A+Bi所有特征值组成的矩阵D和特征向量组成的矩阵V

例如:


>> eig(A)

ans =

    6.0000
   -2.0000
   -1.0000

>> poly(A)

ans =

    1.0000   -3.0000  -16.0000  -12.0000

>> d = eig(A)

d =

    6.0000
   -2.0000
   -1.0000

>> [V,D] = eig(A)

V =

   -0.5774   -0.4575    0.3482
   -0.5774   -0.4575   -0.8704
   -0.5774    0.7625    0.3482


D =

    6.0000         0         0
         0   -2.0000         0
         0         0   -1.0000
>>%说明(1)矩阵D的主对角线上的元素为特征值,所以方阵A的特征值为6,-2,-1(几何重数都为1)
>>%说明(2)D中第一列表示的特征值6对应的特征向量为V中的第1列,即  (-0.5774,-0.5774,-0.5774)T

3.若当标准型

若当标准型可用函数jordan( ) 来求.

J = jordan(A), 其中J为A的若当标准型。例如matlab代码:

>> clear

>> A=[2 1 0;-1 0 0;-1 1 2];    %矩阵A

>> jordan(A)      %矩阵A的若当标准形

ans =

      2            0            0     

      0            1            1     

      0            0            1     
>>%注意:Matlab中若当块是按上三角形定义的。

4.求解线性方程组

矩阵A表示线性方程组,矩阵B是

undefined

5.常用函数汇总 (求逆,化简(高斯法),转置,求秩)

tip:高斯rref化简后方便找根向量

pinv(A): 矩阵的逆

rref(A):化简矩阵!!! (高斯)

A':矩阵的转置

rank(x):矩阵的秩

>> A = [[1;3;5], [2,4,6]]

% 矩阵的转置
>> A'
ans =
   1   3   5
   2   4   6

% 求矩阵的逆
>> pinv(A)
ans =
   0.147222  -0.144444   0.063889
  -0.061111   0.022222   0.105556
  -0.019444   0.188889  -0.102778
 
% 化简矩阵
>> rref(A)
ans =

   1   0  -1
   0   1   2
   0   0   0

%矩阵的秩
>> rank(A)
ans =
		2

6.其他高级函数

命令 具体功能
trace(A) 矩阵的迹
[V,D]=cdf2rdf(v,d) 将复对角矩阵转换为实对角矩阵 (在对角线上用2*2实数块代替共轭复数对)
sum(A,dim) 矩阵元素求和函数 ,dim=1则按列求和,dim=2则按行求和
sum(sum(A,1),2) 返回矩阵A的所有元素之和.
prod(A,dim) dim=1则按列求积,dim=2则按行求积。 矩阵元素求积函数
prod(prod(A, 1),2) 返回矩阵A的所有元素之积.
V=sym(V) 以符号的形式输出矩阵V(当元素为复杂的小数时,可以化出明了的形式)
>>V=sym(V)

V =

[ -sqrt(1/2),         0,          0,  sqrt(1/2)]

[ sqrt(1/2),          0,          0,  sqrt(1/2)]

[       0,   -sqrt(1/2),    sqrt(1/2),       0]

[       0,    sqrt(1/2),    sqrt(1/2),       0]

你可能感兴趣的:(Matlab,matlab,线性代数)