【Matlab学习2.3】矩阵求值

方阵的行列式值

把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为所对应的行列式的值。

det(A):求方阵A所对应的行列式的值。 

例2.3.1:

验证 det(A-1)=1/det(A)。

>> format rat
>> A = [1 3 2; -3 2 1; 4 1 2]
A =
       1              3              2       
      -3              2              1       
       4              1              2       
>> det(inv(A))
ans =
       1/11    
>> 1/det(A)
ans =
       1/11    

矩阵的秩

矩阵线性无关的行数或列数称为矩阵的秩。

rank(A):求矩阵A的秩。

例2.3.2:

求 3~20 阶魔方阵的秩。

>> for n = 3:20
r(n) = rank(magic(n));
end
>> bar(r)
>> grid on
>> axis([2,21,0,20])
>> [3:20;r(3:20)]

例2.3.2

矩阵的迹

矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。

trace(A):求矩阵A的迹。

例2.3.3:

>> A=[1,3,2; -3,2,1; 4,1,2]
A =
       1              3              2       
      -3              2              1       
       4              1              2       
>> b = trace(A)
b =
       5       
>> t = sum(diag(A))
t =
       5     

矩阵的范数

矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。 

向量的3种常用范数

向量 1-范数:向量元素的绝对值之和。

$$ \begin{Vmatrix} V \end{Vmatrix}_1= \sum_{i=1}^n |v_i| $$

向量 2-范数:向量元素绝对值的平方和的平方根。

$$\begin{Vmatrix} V \end{Vmatrix}_2 = \sqrt{\sum_{i=1}^n |v_i|^2}$$

向量 ∞-范数:所有向量元素绝对值中的最大值。

$$\begin{Vmatrix} V \end{Vmatrix}_\infty = \max_{1\leq i\leq n}{\lbrace|v_i|\rbrace}$$

在 Matlab 中,求向量范数的函数为:

norm(V)norm(V,2):计算向量 V 的 2-范数。

norm(V,1):计算向量 V 的 1-范数。

norm(V,inf):计算向量 V 的 ∞-范数。

矩阵的范数

矩阵 A 的 1-范数:所有矩阵元素绝对值之和的最大值。

$$\begin{Vmatrix} A \end{Vmatrix}_1 = \max_{1\leq j\leq n}{\lbrace\sum_{i=1}^m|a_{ij}|\rbrace}$$

矩阵 A 的 2-范数:A'A 矩阵的最大特征值的平方根。

$$\begin{Vmatrix} A \end{Vmatrix}_2 = \sqrt{\lambda_1}$$

其中 λ1 为 A'A 的最大特征值。

矩阵 A 的 ∞-范数:所有矩阵元素绝对值之和的最大值。

$$\begin{Vmatrix} A \end{Vmatrix}_\infty = \max_{1\leq i\leq m}{\lbrace\sum_{j=1}^m|a_{ij}|\rbrace}$$

Matlab 提供了求3种矩阵范数的函数,其函数调用格式与求向量的范数的函数完全相同。

例2.3.4:

>> x = [2 0 1; -1 1 0; -3 3 0]
x =
       2              0              1       
      -1              1              0       
      -3              3              0       
>> n = norm(x)
n =
    5909/1251  
>> n = norm(x,1)
n =
       6       

矩阵的条件数

矩阵 A 的条件数等于 A 的范数与 A 的逆矩阵的范数的乘积。

条件数越接近于1,矩阵的性能越好,反之,矩阵的性能越差。

在 Matlab 中,计算矩阵A的3种条件数的函数是:

cond(A,1):计算 A 的 1-范数下的条件数。

cond(A)cond(A,2):计算 A 的 2-范数数下的条件数。

cond(A,inf):计算 A 的 ∞-范数下的条件数。

例2.3.5:

求 2~10 阶希尔伯特矩阵的条件数。

>> for n = 2:10
c(n) = cond(hilb(n));
end
format long
c'

例2.3.5

posted @ 2023-01-31 20:39  SplendidCrepuscule  阅读(403)  评论(0编辑  收藏  举报