(done) 矩阵的对角化,以及是否可对角化的判断、还有对角化的本质。相似对角化计算过程

2024-02-23 22:44

本文主要是介绍(done) 矩阵的对角化,以及是否可对角化的判断、还有对角化的本质。相似对角化计算过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

相似对角化 和 对角化 很大程度上是一回事
甚至判断两个矩阵的相似性,也跟对角化有很大关系

参考视频1:https://www.bilibili.com/video/BV1PA411T7b5/?spm_id_from=333.788&vd_source=7a1a0bc74158c6993c7355c5490fc600

参考视频2:https://www.bilibili.com/video/BV14T4y127jf/?spm_id_from=333.337.search-card.all.click&vd_source=7a1a0bc74158c6993c7355c5490fc600

参考视频3:https://www.bilibili.com/video/BV1Js4y1372V/?spm_id_from=333.337.search-card.all.click&vd_source=7a1a0bc74158c6993c7355c5490fc600


如下图的矩阵其实可以看成一个 “基向量” 变换,它把 (1, 0) 变成 (2, 1),把 (0, 1) 变成 (1, 2)
在这里插入图片描述

同时,我们把自然基下的矢量,使用上述矩阵进行变换时,大部分矢量的方向会被改变,但有部分矢量的方向是不会被改变的,如下图,这类矢量我们就称为特征向量
在这里插入图片描述

平面内还有另一个特征向量 (它总是保持不变吗?还是说只是因为特征值刚好是 1?与原特征向量垂直是必须的吗?)
这两个特征向量,似乎在自然基和变换基下,都是垂直的?
在这里插入图片描述

此时,可以把这两个特征向量作为一组新的基,那么,原来的变换矩阵在这个新的基下的作用就只是把矢量进行伸缩。于是,原来的变换矩阵在这个新的基下的作用就可以使用一个 “对角阵” 来表示
在这里插入图片描述

因此,这个 对角阵 和 原来的变换矩阵 是相似的。
X 和 X^(-1) 就是基变换矩阵,它们由 自然基 下的特征向量构成
一个更好的理解是,原来的变换矩阵可以拆分成:
1.先把自然基下的矢量映射到 “特征向量构成的一组基” 上
2.在 “特征向量构成的一组基” 上对矢量进行变换 (实际上就是伸缩)
3.再把变换后的矢量映射回 自然基 上
在这里插入图片描述

当我们把 基变换矩阵 的顺序改变时,对角矩阵的顺序也需要变换
在这里插入图片描述

此时就可以明白,一个矩阵能否相似对角化的充要条件是 “它的特征向量能否构成一组基”
在这里插入图片描述
构成一组基的条件:即这组特征向量是线性无关的

更精确的说法:矩阵A 有 n 个线性无关的特征向量
在这里插入图片描述

以下是一个小的引理
若有 n 个不同的特征值 =====> 则 A 有 n 个线性无关的特征向量 (不同特征值对应的特征向量线性无关)
NOTE: 反过来不一定成立哦!
在这里插入图片描述

如下图,是一个例子:
若三阶矩阵有三个特征值,那么它就可对角化,因为它拥有三个线性无关的特征向量
若只有 1, 2, 2,那就要重点关注 (lamda = 2) 所对应的特征向量,若它们线性无关,则可对角化;否则不行
在这里插入图片描述


以下是一个求特征值、特征向量,从而把矩阵相似对角化的例子:
在这里插入图片描述


当 lamda1 = lamda2 = 2 时,我们发现求出的矩阵只有一个非零行,那么也就是说它的 “自由未知量” 是 2。
这其实暗含了 “我们能够得到两个线性无关非零解” 的意思,也就说这个矩阵是可以相似对角化的
在这里插入图片描述

这篇关于(done) 矩阵的对角化,以及是否可对角化的判断、还有对角化的本质。相似对角化计算过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

判断PyTorch是GPU版还是CPU版的方法小结

《判断PyTorch是GPU版还是CPU版的方法小结》PyTorch作为当前最流行的深度学习框架之一,支持在CPU和GPU(NVIDIACUDA)上运行,所以对于深度学习开发者来说,正确识别PyTor... 目录前言为什么需要区分GPU和CPU版本?性能差异硬件要求如何检查PyTorch版本?方法1:使用命

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

Python实现特殊字符判断并去掉非字母和数字的特殊字符

《Python实现特殊字符判断并去掉非字母和数字的特殊字符》在Python中,可以通过多种方法来判断字符串中是否包含非字母、数字的特殊字符,并将这些特殊字符去掉,本文为大家整理了一些常用的,希望对大家... 目录1. 使用正则表达式判断字符串中是否包含特殊字符去掉字符串中的特殊字符2. 使用 str.isa

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务