【线性代数】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转载请标明出处
【线性代数】6-2:对角化(Diagonalizing a Matrix)的更多相关文章
- 【线性代数】7-3:对角化和伪逆(Diagonalization and the Pseudoinverse)
title: [线性代数]7-3:对角化和伪逆(Diagonalization and the Pseudoinverse) categories: Mathematic Linear Algebra ...
- Codeforces 947E Perpetual Subtraction (线性代数、矩阵对角化、DP)
手动博客搬家: 本文发表于20181212 09:37:21, 原地址https://blog.csdn.net/suncongbo/article/details/84962727 呜啊怎么又是数学 ...
- MIT线性代数:22.对角化和A的幂
- Matrix Factorization SVD 矩阵分解
Today we have learned the Matrix Factorization, and I want to record my study notes. Some kownledge ...
- PyTorch 中的乘法:mul()、multiply()、matmul()、mm()、mv()、dot()
torch.mul() 函数功能:逐个对 input 和 other 中对应的元素相乘. 本操作支持广播,因此 input 和 other 均可以是张量或者数字. 举例如下: >>> ...
- 线性代数之——对角化和 A 的幂
利用特征向量的属性,矩阵 \(A\) 可以变成一个对角化矩阵 \(\Lambda\). 1. 对角化 假设一个 \(n×n\) 的矩阵 \(A\) 有 \(n\) 个线性不相关的特征向量 \(x_1, ...
- [线性代数] 矩阵代数進階:矩阵分解 Matrix factorization
Matrix factorization 导语:承载上集的矩阵代数入门,今天来聊聊进阶版,矩阵分解.其他集数可在[线性代数]标籤文章找到.有空再弄目录什麽的. Matrix factorization ...
- 【线性代数】7-2:线性变化的矩阵(The Matrix of a Linear Transformation)
title: [线性代数]7-2:线性变化的矩阵(The Matrix of a Linear Transformation) categories: Mathematic Linear Algebr ...
- 【线性代数】2-3:消元与矩阵的关系(Elimination and Matrix)
title: [线性代数]2-3:消元与矩阵的关系(Elimination and Matrix) toc: true categories: Mathematic Linear Algebra da ...
随机推荐
- 处理bugs心法
1. 前提 第一层:遇到异常首先必须告诉自己,冷静,不要慌.(一看到Bug就心慌,那么武功就施展不了了) 2. 入门级 第二层:遇到Bug,第一潜意识看输出异常的信息的(控制台输出,Junit输出,页 ...
- PyCryptodome安装使用方法
PyCryptodome是PyCrypto的一个分支.基于PyCrypto2.6.1,多了以下特性: Authenticated encryption modes (GCM, CCM, EAX, SI ...
- Unity性能优化-DrawCall
1. DrawCall是啥?其实就是对底层图形程序(比如:OpenGL ES)接口的调用,以在屏幕上画出东西.所以,是谁去调用这些接口呢?CPU.比如有上千个物体,每一个的渲染都需要去调用一次底层接口 ...
- 15-MySQL DBA笔记-运维管理
第15章 运维管理 随着各种技术的快速发展,现今的DBA可以比以前的DBA维护多得多的数据库实例.DBA已经越来越像一个资源的管理者,而不是简单的操作步骤执行人.本章将为读者介绍规模化运维之道.首先, ...
- 最近公共祖先 LCA (Lowest Common Ancestors)-树上倍增
树上倍增是求解关于LCA问题的两个在线算法中的一个,在线算法即不需要开始全部读入查询,你给他什么查询,他都能返回它们的LCA. 树上倍增用到一个关键的数组F[i][j],这个表示第i个结点的向上2^j ...
- Mysql 更新时间
Mysql时间加减函数为date_add().date_sub() 定义和用法DATE_ADD() 函数向日期添加指定的时间间隔.DATE_SUB() 函数向日期减少指定的时间间隔.语法DATE_AD ...
- 关于微信小程序发布新版本后的提示用户更新的方法详解
当小程序发布新的版本后 ,用户如果之前访问过该小程序,通过已打开的小程序进入(未手动删除),则会检测新版本,提醒用户更新新的版本 话不多说,上代码 App({ onLaunch: function ( ...
- 详解为什么设置overflow为hidden可以清除浮动带来的影响
1.问题起源 在平时的业务开发写CSS中,为了满足页面布局,元素的浮动特性我们用的不能再多了.使用浮动的确能够解决一些布局问题,但是也带了一些副作用影响,比如,父元素高度塌陷,我们有好几种可以清除浮动 ...
- linux内存管理初学
虚拟内存模型 Linux 内核本身并不运行在虚拟空间中,其使用的是物理寻址模式. 物理内存被分割为界面,一个内存页面的大小由PAGE_SIZE宏决定. 虚拟地址空间的方式使程序员可以将巨大的结构用于连 ...
- 转: 解决idea工具下tomcat中文乱码问题
在运行/调试 配置对话框的Startup/Connection面板中, 勾选Pass environment variables. 并添加一个environment variable, Name填 J ...
