【线性代数】6-2:对角化(Diagonalizing a Matrix)
title: 【线性代数】6-2:对角化(Diagonalizing a Matrix)
categories:
- Mathematic
- Linear Algebra
keywords: - Eigenvalues
- Eigenvectors
- Diagonalizing
- Fibonacci Numbers
- AkA^kAk
- Nondiagonalizable Matrix
toc: true
date: 2017-11-21 11:48:42
Abstract: 矩阵对角化,以及对角化过程中引入的知识,以及对角化的应用
Keywords: Eigenvalues,Eigenvectors,Diagonalizing,Fibonacci Numbers, AkA^kAk ,Nondiagonalizable Matrix
开篇废话
这几天没写博客,也没干正事,原因有很多,内心极度崩溃的状态,有些好转,所以继续写博客,算是在乱世中寻得一片宁静的天地。
很多事是不以意志而转移的,说白了就是你可能极力的不去惹事而希望能专心去做一件事,但是突然发现条件根本不允许,各种事情会来找到你,其实这些事都是你之前做的事的后续连续效果,也可以说成蝴蝶效应,没办法,这些事情你躲不开的,只能一件件自己处理好,“出来混迟早要还的”。
Diagonalizing a Matrix
对角化一个矩阵,和之前个种各样的分解有一个同样的思路,当矩阵从原始形态通过各种计算性质变形成为各种有规则的,或者在数值上有特殊的性质,这些特殊的形状都可以用在不同问题上,比如LDR分解可以直接求出pivot值,求解方程,QR分解可以是通过变换向量空间的基来使向量某些方面的性质凸显出来。
今天说的对角化就是利用了特征值特征向量的计算性质,通过对 Ax=λxAx=\lambda xAx=λx 进行变形引申得到的。而这个diagonalizing后的矩阵对于矩阵求幂有非常简单的计算。
假设 n×nn \times nn×n 的矩阵 AAA 有n个特征向量,那么我们把每个特征向量按照每列一个特征向量的组合方式形成一个矩阵,那么这个矩阵我们称之为 SSS
AS=A[⋮…⋮x1…xn⋮…⋮]=[⋮…⋮Ax1…Axn⋮…⋮]=[⋮…⋮λ1x1…λnxn⋮…⋮][⋮…⋮λ1x1…λnxn⋮…⋮]=[⋮…⋮x1…xn⋮…⋮][λ1⋱λn]=SΛso:AS=SΛΛ=S−1ASA=SΛS−1
AS=
A\begin{bmatrix}
\vdots &\dots &\vdots\\
x_1&\dots &x_n\\
\vdots &\dots &\vdots
\end{bmatrix}=
\begin{bmatrix}
\vdots &\dots &\vdots\\
Ax_1&\dots &Ax_n\\
\vdots &\dots &\vdots
\end{bmatrix}=
\begin{bmatrix}
\vdots &\dots &\vdots\\
\lambda_1 x_1&\dots &\lambda_n x_n\\
\vdots &\dots &\vdots
\end{bmatrix}\\
\begin{bmatrix}
\vdots &\dots &\vdots\\
\lambda_1 x_1&\dots &\lambda_n x_n\\
\vdots &\dots &\vdots
\end{bmatrix}=
\begin{bmatrix}
\vdots &\dots &\vdots\\
x_1&\dots &x_n\\
\vdots &\dots &\vdots
\end{bmatrix}\begin{bmatrix}
\lambda_1 & &\\
&\ddots &\\
&&\lambda_n
\end{bmatrix}=S\Lambda\\
so:
AS=S\Lambda\\
\Lambda=S^{-1}AS\\
A=S\Lambda S^{-1}
AS=A⎣⎢⎢⎡⋮x1⋮………⋮xn⋮⎦⎥⎥⎤=⎣⎢⎢⎡⋮Ax1⋮………⋮Axn⋮⎦⎥⎥⎤=⎣⎢⎢⎡⋮λ1x1⋮………⋮λnxn⋮⎦⎥⎥⎤⎣⎢⎢⎡⋮λ1x1⋮………⋮λnxn⋮⎦⎥⎥⎤=⎣⎢⎢⎡⋮x1⋮………⋮xn⋮⎦⎥⎥⎤⎣⎡λ1⋱λn⎦⎤=SΛso:AS=SΛΛ=S−1ASA=SΛS−1
Λ\LambdaΛ 是 λ\lambdaλ 的大写,表示的是对角矩阵,每个元素都是eigenvalue。
如果矩阵A没有n个independence的eigenvector也是无法对角化的,上面的推到过程是属于两头堵的方式,先正向求出 ASASAS 的结果发现其结果和 SΛS\LambdaSΛ 结果一样,所以就得到了 Λ\LambdaΛ 的表达式,下面我们我们就可以来计算 AkA^kAk 了,利用上面推到过程中的最后一步,这个简直非常完美了
Ak=A⋅A…A=SΛS−1SΛS−1⋯SΛS−1=SΛΛ⋯ΛS−1=SΛkS−1
A^k=A\cdot A\dots A=S \Lambda S^{-1} S \Lambda S^{-1} \cdots S \Lambda S^{-1}=S \Lambda \Lambda \cdots \Lambda S^{-1}=S \Lambda^k S^{-1}
Ak=A⋅A…A=SΛS−1SΛS−1⋯SΛS−1=SΛΛ⋯ΛS−1=SΛkS−1
一个矩阵的k次幂等于其对角矩阵的k次幂-- SΛkS−1S \Lambda^k S^{-1}SΛkS−1
我们可以回忆下上一篇,我们求过一个矩阵的k次方乘以一个向量 AkyA^kyAky ,用特征向量来作为 yyy 的基,然后写成
Ak:suppose:  C=[c1…cn]y=c1x1+c2x2+⋯+cnxn=SCAky=Ak(c1x1+c2x2+⋯+cnxn)=c1Akx1+c2Akx2+⋯+cnAkxn=c1λ1kx1+c2λ2kx2+⋯+cnλnkxn=SΛkC
A^k:\\
suppose: \;C=\begin{bmatrix}c_1 &\dots & c_n\end{bmatrix}\\
y=c_1 x_1+c_2 x_2+\dots +c_n x_n=SC \\
A^k y=A^k(c_1 x_1+c_2 x_2+\dots +c_n x_n)\\
=c_1A^kx_1+c_2A^kx_2+\dots +c_nA^kx_n\\
=c_1\lambda_1^k x_1+c_2\lambda_2^k x_2+\dots + c_n\lambda_n^k x_n\\
=S\Lambda^k C
Ak:suppose:C=[c1…cn]y=c1x1+c2x2+⋯+cnxn=SCAky=Ak(c1x1+c2x2+⋯+cnxn)=c1Akx1+c2Akx2+⋯+cnAkxn=c1λ1kx1+c2λ2kx2+⋯+cnλnkxn=SΛkC
本文为节选,完整内容地址:https://www.face2ai.com/Math-Linear-Algebra-Chapter-6-2转载请标明出处
最新文章
- cookie存储对象信息
- hdu3294 girl‘s research
- [.NET领域驱动设计实战系列]专题十:DDD扩展内容:全面剖析CQRS模式实现
- CityEngine基于规则贴图的实现技巧
- ThreadPoolExecutor
- JavaScript ---属性
- coreseek 提示 client version is higher than daemon version 解决办法
- prepareStatement createStatement
- python for list generate content
- Directx 3D编程实例:多个3D球的综合Directx实例
- 网页JavaScript4
- struts2中的表达元素标签使用详解
- Flask-Moment----探索
- .Net Core中利用TPL(任务并行库)构建Pipeline处理Dataflow
- 9.并发_EJ
- HTML--Canvas基础入门
- studio-3t-x64 下载地址
- Sparksql的内置函数的使用以及案例
- Android adb logcat输出日志显示不全解决方案
- TCP/IP协议(1):各层协议帧格式
热门文章
- 103 保序回归 isotonic regression
- PHP关于VC11,VC9,VC6以及Thread Safe和Non Thread Safe版本选择的问题
- 加密算法 MD5 和 SHA 的 JAVA 实现
- python运行报错:cannot import name 'InteractiveConsole'
- 同步/异步/阻塞/非阻塞/BIO/NIO/AIO
- 最近公共祖先 LCA (Lowest Common Ancestors)-树上倍增
- (详细)JAVA使用JDBC连接MySQL数据库(3)-代码部分
- js入门之函数
- 如何在阿里云上运行SAP UI5应用
- 数据库 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test1.mdf' 已存在。请选择其他数据库