社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

机器学习 线性代数基础 | 4.2 对角化:寻找最简明的相似矩阵

狗熊会 • 4 年前 • 685 次点击  
     ▼
更多精彩推荐,请关注我们


4.2  对角化:寻找最简明的相似矩阵

在上一小节里,我们介绍了对角矩阵的优良性质。因此,在向量的线性变换中如果我们能够利用矩阵的相似变换,将表示线性变换的矩阵转换为一个相似对角矩阵,在新的基底表示下,线性变换的过程就能够大大的简化。由原本的长度和方向均会发生变化变成仅仅在基向量方向上做长度的伸缩变换。

在上一节文末我们留下了一个问题,就是如何将一般的方阵A经过相似变换转换成一个对角矩阵,这个问题悬而未决。我们在这一小节里就将着重解决这个问题。我们将首先介绍矩阵的特征值和特征向量的有关特性,并说明可以利用矩阵的特征向量来构造转换矩阵P,由此将一个一般方阵成功的转换为对角矩阵。通过这一小节的学习,读者能够明确这个问题中所蕴含的几何意义,并在此基础上深刻理解变换的思路和方法。

4.2.1  构造对角化转换矩阵P的思路

现在,我们来讨论一下上一节末尾遗留的那个重要问题:既然我们知道对角矩阵是具有最佳性质的相似矩阵,并且我们可以通过的矩阵乘法形式得到矩阵A的相似对角矩阵,那么这个转换矩阵P该如何构造?

很简单,我们直接从这个式子入手:

首先,矩阵P和矩阵A一样,均为n阶方阵。为了方便分析和描述,我们把他写成一组列向量并排排列的形式:,即n个n维列向量横向进行排列。有了这个表达的基础,我们开始接下来的推导过程:

针对表达式:,我们开始着手进行操作:等式两边同时左乘矩阵P,则能得到新的表达式:,我们进一步利用完整的矩阵、向量形式对等式进行展开:

最终有: 。看到这里,我们瞬间就感觉到豁然开朗了,为了使得上面这个等式能够成立,就必须让左右两边的向量在每个对应位置上的元素都分别相等。即满足:

此时,我们要处理的问题就进一步具体化了:

第一步是:我们需要找到满足上述等式的这一组向量,即:。找到他们之后,我们将其横向排列,这样就构成了我们苦心寻找的转换矩阵

第二步是:我们把与向量分别对应的值依照顺序沿着对角线进行排列,就构成了与矩阵 A 相似的对角矩阵

4.2.2  引入特征向量和特征值

满足上文中介绍的等式关系:的非零列向量和与之对应的标量值,我们分别将其称之为方阵A的特征向量和特征值。为什么这一组称谓中都含有“特征”二字?是因为这一类向量和值都属于该方阵A的固有属性。

一般而言,对于一个向量x,在矩阵A的作用下发生线性变换:Ax=b,变换之后,向量x的方向和长度都会随之发生变化,如果矩阵A不是一个方阵,那么连向量的维度都会发生改变。而与之不同的是,我们从这个式子中却能够观察出一个更为特殊的现象:

在方阵A的变换作用下,特征向量p的线性变换就是在其向量方向上进行倍的伸缩变换。我们说的更加直白一些,在这个变换的过程中,仅仅就只有向量的长度发生了改变,但是向量的方向却并未发生变化。具备了这种特殊性的向量,就能够被冠之以“特征”二字。

我们接着再观察一下对角化的等式: ,看看是否能够发现其他更多的重要特性。

首先一点:从等式当中我们直接可以看出,由特征向量构成的矩阵P要求必须是可逆的,也就是说方阵A的特征向量必须满足线性无关,这样矩阵A才能进行对角化。

其次一条:我们把等式的右侧移到左侧,则有等式:,用前面介绍过的知识去描述就是,向量p位于矩阵的零空间中,由于向量p有非零向量的前提条件,因此矩阵是一个不可逆矩阵。

4.2.3  几何意义

对于一个指定的向量v,如果我们使用默认的基底对其进行表示,向量即被表示为:。使用方阵A对其进行线性变换,那么正如我们在前面的内容中所介绍的,这一组默认的基底就会变成一组新的目标向量,一般情况下,原始的基向量和转换后的目标向量是不共线的。

此时,我们对该向量更换一组基底进行重新表示,采用方阵A的一组特征向量作为其新的基底,则该向量被表示为,在新的基底下,其新的坐标即为,在此基础上利用方阵A对其进行线性变换,则有:

基于等式 。再用上我们前面讲过的特征定义式:,对其进行替换则有:

这个等式的推导结果可以说是非常漂亮的,利用基底所表示的向量v,经过矩阵A的线性转换之后,其基底在保持不变的前提下,向量的坐标由变为了的形式。

我们最后再来概况一下其几何含义:

对一个特定向量施加矩阵A所描述的线性变换,如果使用矩阵A的特征向量 作为空间的基底来对该向量进行坐标表示,则该空间变换即可简化为各个维度的坐标值在其基向量的方向上对应伸缩倍。

4.2.4  用基变换的方法再次推导对角化过程

利用基底变换的方法,我们再来分析一下对角化的具体过程,我们来看一个三维空间的例子:

在这个例子中,我们假设矩阵A的三个特征向量依次表示为:,使用默认的基底和由特征向量构成的基底分别对同一向量进行表示,即有:

我们利用基向量将这个等式做进一步的代入操作:

我们再对式子进行展开:

很明显,这一组等式我们可以用矩阵乘法对其进行表示:

,取逆,则有

有了这个这个转换等式,我们继续往下分析:

因此,对于向量在空间中的位置改变,在以为基底进行的坐标表示下,我们的变换矩阵为A,而在基底下,变换矩阵则为

那么,首先从基底变换到基底下,向量的坐标值就由x变为了,接着就能利用左乘矩阵进行线性变换过程,即,线性变换结束后,我们需要重新回到原始基底下进行坐标表示,所以我们再做一次逆变换,即:,按照这种方式所进行的整个变换过程其实和Ax是殊途同归的,因此才有了

说到这里,对于对角化里所涉及到的正反等式:,其本质意义就十分清晰了。

那么对于一个指定的方阵A,如何具体的求取他的特征向量和特征值,从而求得对角矩阵,具体方法我们放在下一小节里专门介绍。


往期精彩回顾
前言
1.1 描述空间的工具:向量
1.2 基底构建一切,基底决定坐标
1.3 矩阵,让向量动起来
1.4 矩阵乘向量的新视角:变换基底
2.1 矩阵: 描述空间中的映射
2.2 追因溯源:逆矩阵和逆映射
3.1 投影,寻找距离最近的向量
3.2 深入剖析最小二乘法的本质
3.3 施密特正交化:寻找最佳投影基地
4.1  相似变换:不同的视角,同一个变换



本书所涉及的源代码已上传到百度网盘,供读者下载。请读者关注封底“博雅读书社”微信公众号,找到“资源下载”栏目,根据提示获取。








如果您对本书感兴趣,请进入当当网选购!



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53069
 
685 次点击