线性代数 --- 矩阵的对角化以及矩阵的n次幂

2024-04-24 07:28
文章标签 矩阵 线性代数 角化

本文主要是介绍线性代数 --- 矩阵的对角化以及矩阵的n次幂,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

矩阵的对角化以及矩阵的n次幂

(特征向量与特征值的应用)

前言:

        在上一篇文章中,我记录了学习矩阵的特征向量和特征值的学习笔记,所关注的是那些矩阵A作用于向量x后,方向不发生改变的x(仅有尺度的缩放)。
线性代数 --- 特征值与特征向量(上)-CSDN博客文章浏览阅读1.1k次,点赞9次,收藏21次。文章介绍了特征向量与特征值的基本概念,并给出了详细的说明图示和例子。至于如何求解矩阵的特征向量与特征值,我在下一篇文章中给出了说明。https://blog.csdn.net/daduzimama/article/details/136455766
此外,我也在另一篇文章中提到了一般矩阵的特征值与特征向量的求法。 线性代数 --- 特征值与特征向量(下)-CSDN博客文章浏览阅读1.3k次,点赞31次,收藏19次。本文介绍了求解一般矩阵的特征向量和特征值的具体方法。https://blog.csdn.net/daduzimama/article/details/136608493


正文: 

Part I 矩阵的对角化

        这里,我打算通过这篇文章整理/梳理一下矩阵对角化的学习笔记。既然已经知道了如何求出矩阵的特征向量和特征值现,那么找到这些东西有什么用呢?答案就是矩阵的对角化。

(截图来自于参考文献2) 

        假设一个n维方阵A经过计算后得到n个线性无关的特征向量x1,x2...,xn,对应n个λ1,λ2...,λn。我们有:

\left\{\begin{matrix} Ax_{1}=\lambda x_{1}\\ Ax_{2}=\lambda x_{2}\\ ...\\ Ax_{n}=\lambda x_{n} \end{matrix}\right.

        现在,我们把这些特征向量都放到一个矩阵中,合成一个新的矩阵X。看看矩阵A乘以矩阵X后会怎么样。首先,我们按照如下方式构建一个新矩阵X,我们称之为特征向量矩阵(Eigen-vector matrix)。因为该矩阵的每一列都是一个特征向量x_{i},所以用大写的X表示:

X=\begin{bmatrix} | & | & &| \\ | & | & & | \\ x_{1} & x_{2} &... &x_{n} \\ | & | & & | \\ | & | & & | \end{bmatrix}

        令A乘以X,根据矩阵的乘法原则,矩阵A与矩阵X的乘法可以看成是把矩阵X各列看成权重的线性组合的结果(这句话不好懂,可以看看下面的图示)

得到:

AX=A\begin{bmatrix} | & | & &| \\ | & | & & | \\ x_{1} & x_{2} &... &x_{n} \\ | & | & & | \\ | & | & & | \end{bmatrix}=\begin{bmatrix} | & | & &| \\ | & | & & | \\ Ax_{1} & Ax_{2} &... &Ax_{n} \\ | & | & & | \\ | & | & & | \end{bmatrix}

=\begin{bmatrix} | & | & &| \\| & | & &| \\ \lambda _{1}x_{1} & \lambda _{2}x_{2} &... &\lambda _{n}x_{n} \\ | & | & & | \\ | & | & & | \end{bmatrix}=\begin{bmatrix} | & | & &| \\ | & | & &| \\ x_{1} & x_{2} &... &x_{n} \\ | & | & & | \\ | & | & & | \end{bmatrix}\begin{bmatrix} \lambda _{1} &0 &... &0 \\0 & \lambda _{2} &... &0 \\... & ...&... & ...\\ 0 & 0&... & 0\\ 0 & 0 &... & \lambda _{n} \end{bmatrix}

        注意,之前用特征向量构造的新矩阵X,又再一次出现了。与此同时,他的旁边出现了一个新矩阵,这是一个对角矩阵,主对角线上的元素全是特征值λ。这也是一个新矩阵,称之为特征值矩阵(Eigen-value matrix)。因其主对角线上的元素都是特征值\lambda _{i},所以用大写的\Lambda(即,大写的λ)表示:

\Lambda =\begin{bmatrix} \lambda _{1} &0 &... &0 \\0 & \lambda _{2} &... &0 \\... & ...&... & ...\\ 0 & 0&... & 0\\ 0 & 0 &... & \lambda _{n} \end{bmatrix}

 最终得到:

AX=\begin{bmatrix} | & | & &| \\ | & | & &| \\ x_{1} & x_{2} &... &x_{n} \\ | & | & & | \\ | & | & & | \end{bmatrix}\begin{bmatrix} \lambda _{1} &0 &... &0 \\0 & \lambda _{2} &... &0 \\... & ...&... & ...\\ 0 & 0&... & 0\\ 0 & 0 &... & \lambda _{n} \end{bmatrix}=X\Lambda

The Key Equation 

AX=X\Lambda

         又因为,我之前所构建的特征向量矩阵X是由n个线性无关的特征向量组成的,列与列之间线性无关。因此,矩阵X是可逆的。现在我们把等式两边同时左乘一个X的逆矩阵,即完成了矩阵A的对角化:

\mathbf{X^{-1}AX=X^{-1}X\Lambda=\Lambda}

(对角化公式)

        反过来,如果把等式两边同时右乘X的逆矩阵,就得到了矩阵A的又一种分解公式(之前学过的分解有基于高斯消元的LU分解,基于gram-schmidt正交化的QR分解):

 \mathbf{AXX^{-1}=X\Lambda X^{-1}\Rightarrow A=X\Lambda X^{-1}}

(矩阵A的分解公式)

注意,这一切操作都基于一个前提:矩阵A有n个线性无关的特征向量

什么样的矩阵可以对角化?

        当n维方阵A有n个不同的特征值时,矩阵A才能用上述方式对角化。因为,如果A有n个不同的特征值,那么一定对应有n个相互独立的特征向量。但反过来就不一定成立,比如说单位矩阵有n个不同的特征向量,但他的特征值都是1。

 (截图来自于我用Jupyter notebook所生成的代码)

最后我们给出一个矩阵对角化的例子作为这部分的小结,假设方阵矩阵A为:

A=\begin{bmatrix} 1 &5 \\ 0 & 6 \end{bmatrix}

首先,用jupyter note book求出特征向量和特征值:

        为了方便,我把后面那个特征向量改成[1,1](我这里不是乱改的,如果自己动手算也能得到这个结果)。如此一来我们得到的两个特征值和他们各自对应的特征向量为:

\lambda _{1}=1,x_{1}=\begin{bmatrix} 1\\ 0 \end{bmatrix}        和        \lambda _{2}=6,x_{2}=\begin{bmatrix} 1\\ 1 \end{bmatrix}

相应的在这里我们就能写出特征值矩阵\Lambda

\Lambda =\begin{bmatrix} \lambda 1 & 0\\ 0 & \lambda 2 \end{bmatrix}=\begin{bmatrix} 1 & 0\\ 0 & 6 \end{bmatrix}

 齐次,用特征向量构建特征向量矩阵X:

X=\begin{bmatrix} | & |\\ x_{1} &x_{2} \\ |& | \end{bmatrix}=\begin{bmatrix} 1 &1\\ 0 &1 \end{bmatrix}

 求特征向量矩阵X的逆:

 X^{-1}=\begin{bmatrix} 1 &-1 \\ 0& 1 \end{bmatrix}

代入矩阵的对角化公式完成对角化,看乘法的结果是否正好等于特征向量矩阵\Lambda: 

 X^{-1}AX=\begin{bmatrix} 1 &-1 \\ 0& 1 \end{bmatrix}\begin{bmatrix} 1 &5 \\ 0& 6 \end{bmatrix}\begin{bmatrix} 1 &1 \\ 0& 1 \end{bmatrix}=\begin{bmatrix} 1 &0 \\ 0& 6 \end{bmatrix}

        这里要注意,矩阵的乘法在python里面的操作符是“@”,也就是上图中我用红框框出来的。如果写错了,计算结果就不对了,我在上图中也演示的错误的结果。 

同样的,代入矩阵A的分解公式验证等式两边是否相等:

A=X\Lambda X^{-1}


 (全文完) 

--- 作者,松下J27

参考文献(鸣谢):

1,Lec22_对角化和矩阵乘幂_哔哩哔哩_bilibili

2,《Introduction to Linear algebra》Fifth Edition --- Gilbert strang,page 304

(配图与本文无关) 

版权声明:所有的笔记,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27

这篇关于线性代数 --- 矩阵的对角化以及矩阵的n次幂的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/931105

相关文章

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

hdu 6198 dfs枚举找规律+矩阵乘法

number number number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description We define a sequence  F : ⋅   F0=0,F1=1 ; ⋅   Fn=Fn

线性代数|机器学习-P35距离矩阵和普鲁克问题

文章目录 1. 距离矩阵2. 正交普鲁克问题3. 实例说明 1. 距离矩阵 假设有三个点 x 1 , x 2 , x 3 x_1,x_2,x_3 x1​,x2​,x3​,三个点距离如下: ∣ ∣ x 1 − x 2 ∣ ∣ 2 = 1 , ∣ ∣ x 2 − x 3 ∣ ∣ 2 = 1 , ∣ ∣ x 1 − x 3 ∣ ∣ 2 = 6 \begin{equation} ||x

【线性代数】正定矩阵,二次型函数

本文主要介绍正定矩阵,二次型函数,及其相关的解析证明过程和各个过程的可视化几何解释(深蓝色字体)。 非常喜欢清华大学张颢老师说过的一段话:如果你不能用可视化的方式看到事情的结果,那么你就很难对这个事情有认知,认知就是直觉,解析的东西可以让你理解,但未必能让你形成直觉,因为他太反直觉了。 正定矩阵 定义 给定一个大小为 n×n 的实对称矩阵 A ,若对于任意长度为 n 的非零向量 ,有 恒成

python科学计算:NumPy 线性代数与矩阵操作

1 NumPy 中的矩阵与数组 在 NumPy 中,矩阵实际上是一种特殊的二维数组,因此几乎所有数组的操作都可以应用到矩阵上。不过,矩阵运算与一般的数组运算存在一定的区别,尤其是在点积、乘法等操作中。 1.1 创建矩阵 矩阵可以通过 NumPy 的 array() 函数创建。矩阵的形状可以通过 shape 属性来访问。 import numpy as np# 创建一个 2x3 矩阵mat

【UVA】10003-Cutting Sticks(动态规划、矩阵链乘)

一道动态规划题,不过似乎可以用回溯水过去,回溯的话效率很烂的。 13988658 10003 Cutting Sticks Accepted C++ 1.882 2014-08-04 09:26:49 AC代码: #include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include

算法练习题17——leetcode54螺旋矩阵

题目描述 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。  代码 import java.util.*;class Solution {public List<Integer> spiralOrder(int[][] matrix) {// 用于存储螺旋顺序遍历的结果List<Integer> result = new ArrayList

线性代数 第六讲 特征值和特征向量_相似对角化_实对称矩阵_重点题型总结详细解析

文章目录 1.特征值和特征向量1.1 特征值和特征向量的定义1.2 特征值和特征向量的求法1.3 特征值特征向量的主要结论 2.相似2.1 相似的定义2.2 相似的性质2.3 相似的结论 3.相似对角化4.实对称矩阵4.1 实对称矩阵的基本性质4.2 施密特正交化 5.重难点题型总结5.1 判断矩阵能否相似对角化5.2 已知两个矩阵相似,求某个矩阵中的未知参数5.3 相似时,求可逆矩阵P,使

最大子矩阵和问题归纳总结

一,最大子矩阵问题: 给定一个n*n(0< n <=100)的矩阵,请找到此矩阵的一个子矩阵,并且此子矩阵的各个元素的和最大,输出这个最大的值。 Example: 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 其中左上角的子矩阵: 9 2 -4 1 -1 8 此子矩阵的值为9+2+(-4)+1+(-1)+8=15。 二,分析 子矩阵是在矩阵