• 线性代数之——对角化和 A 的幂


    利用特征向量的属性,矩阵 (A) 可以变成一个对角化矩阵 (Lambda)

    1. 对角化

    假设一个 (n×n) 的矩阵 (A)(n) 个线性不相关的特征向量 (x_1,cdots,x_n) ,把它们作为特征向量矩阵 (S) 的列,那么就有 (S^{-1}AS=Lambda)

    矩阵 (A) 被对角化了,因为所有的特征向量位于矩阵 (Lambda)的对角线上。

    证明过程也很简单,首先我们计算 (AS)

    一个技巧就是将 (AS) 分解成 (SLambda)

    所以我们有

    [AS=SLambda quad S^{-1}AS=Lambda quad A=SLambda S^{-1} ]

    矩阵 (S) 有逆矩阵,因为我们假设它的列是 (n) 个线性不相关的特征向量。如果没有 (n) 个线性不相关的特征向量,我们就不能进行对角化。

    (A=SLambda S^{-1}) 可得,(A^2=SLambda S^{-1}SLambda S^{-1} = SLambda^2 S^{-1}),平方后我们得到(S) 中相同的特征向量和 (Lambda) 中平方的特征值。同理,我们可以得到 (k) 次方为 (A^k=SLambda^k S^{-1})

    (k=1) 时,我们得到 (A).当 (k=0) 时,我们得到 (A^0=I)。当 (k=-1) 时,我们得到 (A^{-1})

    再继续往下进行之前,有几点需要我们注意。

    • 如果特征值 (lambda_1,cdots,lambda_n) 全部都不相同,那么自动地特征向量 (x_1,cdots,x_n) 就是线性不相关的。任意没有重复特征值的矩阵都可以被对角化。

    证明:

    假设 (c_1x_1 + cdots+c_nx_n = 0),我们乘以矩阵 (A),有

    [ ag{1} c_1lambda_1x_1 + cdots+c_nlambda_nx_n = 0 ]

    然后,乘以 (lambda_{n}) 并减去上面的式子 (1),有

    [ ag{2} c_1lambda_{n}x_1 + cdots+c_nlambda_{n}x_n = 0 ]

    [ ag{3} c_1(lambda_{n}-lambda_1)x_1 + cdots+c_{n-1}(lambda_{n}-lambda_1)x_{n-1} = 0 ]

    这会消去 (x_n),我们继续用 (3) 式分别乘以 (A)(lambda_{n-1}),再相减, (x_{n-1}) 就也被消去了。一直重复这个过程,最后,我们就只剩下了 (x_1)

    [ ag{4} c_1(lambda_{n}-lambda_1)(lambda_{n-1}-lambda_1)cdots(lambda_{2}-lambda_1)x_1= 0 ]

    因为特征值互不相同,因此有 (c_1 = 0),同理我们可得所有的系数都为 0,也即零空间只有零向量,所以这些特征向量是线性不相关的。

    • 特征向量乘以任意非零常数后,(Ax = lambda x) 仍然成立。

    • 特征向量在 (S) 中的顺序和特征值在 (Lambda) 中的顺序是一样的,也就是特征向量和特征值必须一一对应。

    在上面的例子中,如果我们互换特征向量的顺序,那么 (Lambda) 中特征值的顺序也要相应改变。

    • 一些矩阵没有足够的特征向量,因此不能被对角化,特别是注意有重复特征值的情况。

    而且要注意,可逆性和可对角化性之间没有联系。可逆性和是否存在零特征值有关,而可对角化性和是否有足够的特征向量有关

    2. 斐波那契数列

    斐波那契序列满足 (F_{k+2} = F_{k+1} + F_{k})。为了找到 (F_{100}),我们可以从 (F_{2}) 开始,每次求出一个新的值,直至得到 (F_{100})。线性代数则给出了一个更好的方法,我们将之转化为 (u_{k+1}=Au_k) 的问题。

    每一次我们都乘以矩阵 (A),100 次后我们就得到了 (u_{100}=A^{100}u_0)

    这样,我们就可以利用特征值来求解了。

    求解特征方程,我们可以得到两个特征值分别为:

    进而得到两个特征向量分别为:

    [x_1 = egin{bmatrix}lambda_1\ 1end{bmatrix} quad x_2 = egin{bmatrix}lambda_2\ 1end{bmatrix} ]

    然后我们将 (u_0) 表示为特征向量的线性组合。

    那么就有

    [u_{100}=A^{100}u_0 = frac{1}{lambda_1 - lambda_2}A^{100}(x_1-x_2) = frac{lambda_1^{100}x_1 - lambda_2^{100}x_2}{lambda_1 - lambda_2} ]

    上式中的第二项底数小于 0.5,因此会渐渐趋向于 0,也就是说随着 (n) 增大逐渐只有第一项有效。

    [frac{F_{101}}{F_{100}} approx frac{1+sqrt{5}}{2}approx 1.618 ]

    这个数字就是我们众所周知的黄金比例。

    3. (A) 的幂

    斐波那契数列是一个典型的差分方程,每一步我们都乘以矩阵 (A)。下面我们来看一下对角化是怎么来快速计算 (A^k) 的。

    [A^k u_0= (SLambda S^{-1})cdots(SLambda S^{-1})u_0 = SLambda^{k} S^{-1}u_0 ]

    然后我们将 (u_0) 表示为特征向量的线性组合

    • [u_0 = c_1x_1+cdots+c_nx_n o u_0=Sc o c = S^{-1}u_0 ]

    • [Au_0 = c_1Ax_1+cdots+c_nAx_n =c_1lambda_1x_1+cdots+c_nlambda_nx_n ]

    • [A^ku_0 = c_1lambda_1^kx_1+cdots+c_nlambda_n^kx_n = SLambda^kc ]

    4. 不可对角化矩阵

    特征值 (lambda) 可能会有重复情况,这时候我们想知道它的重复度(multiplicity),有两种方法来计量。

    • 几何重数(Geometric Multiplicity)与特征值 (lambda) 对应的线性不相关的特征向量的个数
    • 代数重数(Algebraic Multiplicity)特征值 (lambda) 的重复次数,也就是 (det(A-lambda I)) 的重根数

    几何重数小于等于代数重数。

    几何重数小于代数重数说明特征向量数量不够,也就是说 (A) 不能被对角化。

    5. (AB)(A+B) 的特征值

    让我们来猜一猜 (AB) 的特征值是多少?

    你可能会说是它们各自特征值的积。

    [ABx = Aeta x = eta Ax=etalambda x ]

    但是,通常情况下 (A)(B) 的特征向量是不相同的,因此上面的证明是错误的。同样,两个矩阵各自特征值的和也通常不是两个矩阵和的特征值。

    但是,如果 (x) 同时是 (A)(B) 的特征向量。那么有

    [ABx = lambdaeta x = BAx o AB = BA ]

    因此,如果 (A)(B) 都可以被对角化,它们拥有相同的特征向量当且仅当 (AB=BA)

    获取更多精彩,请关注「seniusen」!

  • 相关阅读:
    分布式系统唯一ID生成方案汇总
    百度开源的分布式 id 生成器
    全局唯一ID生成器
    VisualSVN Server迁移的方法
    SQL Server 函数 LEN 与 DATALENGTH的区别
    SQLServer中DataLength()和Len()两内置函数的区别
    sql server 查询ntext字段长度
    JAVA使用POI如何导出百万级别数据
    Java 使用stringTemplate导出大批量数据excel(百万级)
    Java 两个日期间的天数计算
  • 原文地址:https://www.cnblogs.com/seniusen/p/10036858.html
Copyright © 2020-2023  润新知