python矩阵施密特标准型_矩阵与数值计算(3)——Schur标准型和Jordan分解

前言

之前介绍过几种矩阵分解方法,都可以有效的提升矩阵方程的数值求解问题,其中LU分解尤其适合于中小型、稠密矩阵的求解问题。我们最理想的矩阵就是可相似对角化的矩阵,直接可以分解成两个酉矩阵和一个对角矩阵的形式,那么如果一个矩阵不符合可相似对角化的条件应该怎么解决呢?这里提出Jordan分解,提供了对不可相似对角化矩阵分解的解决方案。

一、Schur标准型定义

给定一个矩阵A,可以通过相似正交变换成一个上三角矩阵(任意n阶方阵),其实可以将LU分解中的L进行施密特正交化。

,其中R是上三角矩阵,U是酉矩阵。

上面将X分解为UR,其中U是酉矩阵,R是上三角矩阵。那么我们可以得出Schur分解的定义。Schur分解

任意n阶方阵,酉相似于一个以其特征值为对角元的上三角矩阵R。

2. 特殊矩阵的特征系统

由Schur定理可以自然想到,什么样的矩阵会酉相似于对角矩阵呢?答案是正规矩阵。

正规矩阵

,若

,则称

为正规矩阵。

H这里表示共轭,类比于实数矩阵的转置的概念,因为矩阵中会包含虚数,所以使用H表示共轭。

Hermite矩阵:

斜Hermite矩阵:

酉阵:

对于上面这四种特殊的矩阵,对应的R各有不同,这里直接可以记忆结论:A为正规矩阵,R是对角矩阵。

A为Hermite矩阵时,R是实对角矩阵。

A为斜Hermite矩阵时,R是纯虚对角阵。

A为酉矩阵,R对角元的模为1

二、代数重数与几何重数

先来了解特征值的代数重数和几何重数的概念。对任意一个矩阵,我们都可以写出其特征值的表达形式,

,则其中

就被称为特征值

的代数重数,与之对应的线性无关特征向量的个数,即子空间

的维数,称为

的几何重数。

代数重数与几何重数的关系

对任何一个n阶方阵A的特征值

对应的几何重数

和代数重数

,总有

半单与亏损

设A为n阶方阵,

为其特征值,

分别为其代数重数和几何重数,如果总有

,那么我们称这个特征值是半单的,否则如果几何重数小于代数重数,则称这个特征值是亏损的。

我们还可以引申出几条基本概念:代数重数为1的特征值一定是半单的。

不同特征值对应的特征向量是线性无关的。

每个特征值都是半单的矩阵等价于相似对角化。

存在亏损的特征值的矩阵称为亏损矩阵等价于不可相似对角化。只要有一个特征值说亏损的就代表该方阵不可相似对角化。

由上面的定理和推论,我们知道一般的矩阵可以分为,可以相似对角化和不可相似对角化矩阵,那么对于不可相似对角化的矩阵我们就提出了Jordan分解,接下来了解一下具体什么是Jordan分解。

三、Jordan分解定义及Jordan标准块、Jordan标准型Jordan块

我们称如下形式的矩阵为Jordan块,Jordan块

2. Jordan标准型

简单来说,由若干个Jordan块构成的矩阵就是Jordan标准型。严谨的定义如下所示,Jordan标准型

特别注意的一点是,如果不计Jordan块的顺序,则Jordan标准型唯一。

那么如何才能求解得到Jordan标准型呢?

四、Jordan分解求解方法

Jordan标准型的基本特点:

① Jordan标准型是一个块对角矩阵,对角元是矩阵A的特征值

②对于特征值

,他的代数重数是Jordan标准型中以

为特征值的Jordan块的阶数之和。

③对于特征值

,它的几何重数,即与

对应的线性无关的特征向量的个数,恰为以

为特征值的Jordan块的个数。

通过下面这张图片,更加清晰了解这个Jordan标准型的样貌。Jordan标准型

直观来讲,如果有一个三阶矩阵,其三个特征值都相同,代数重数为3,几何重数为2,那么Jordan标准型如何呢?Jordan标准型

那么其实对于该三阶矩阵来说其实Jordan标准型是唯一的(不考率Jordan块的顺序)。

但是,很容易我们想到4阶矩阵,就存在问题,如果代数重数是4,几何重数为2,那么存在两种可能的Jordan标准型。两种可能的Jordan标准型

那么我们还记得上面的概念提到过,如果不考虑Jordan块的顺序,则Jordan标准型唯一,那么我们如何确定到底哪个是正确的呢?

这里引入一个判定公式:阶数判定公式

为了计算上的简便,我们从一阶Jordan块开始计算,计算其阶数,如果其阶数为0,则我们就知道Jordan块是两个2阶的Jordan块。

通过上面的过程我们可以确定J的形式,那么如何确定T的形式呢?

求解变换矩阵T:

根绝

,继而我们有

,假设

,推导过程如下,

详细求解过程,可以参考下面的例题,例题

Jordan分解的计算还是一如既往需要不断通过题目进行锤炼。

归纳一下计算步骤:

1.计算Jordan标准型计算矩阵的全部特征值

计算特征值的代数重数

计算特征值的几何重数

利用定理确定每个Jordan块的阶数(从1阶开始计算)

2.计算变换矩阵T求得Jordan标准型

计算每个Jordan块对应的Jordan链若Jordan块阶数为1,直接计算特征向量

若阶数大于1,则先计算特征向量,利用特征向量的线性组合得到链首,保证线性方程组有解,即

五、Hamilton-Cayley定理及其应用

利用Jordan变换,可以得到很重要的定理,Hamilton-Caylay定理,Hamilton-Caylay定理

其应用非常广泛,可以通过这个定理简化矩阵计算。例题例题

上面的

的计算有两种方式,一种是多项式带余除数法,另一种是待定系数法。其中待定系数法,可以参看第三小问的求解方式,不论是这里还是之后的求解,都非常推荐使用待定系数法,降低计算量,提升计算的准确度。

总结

Jordan分解是非常重要的一种矩阵分解,应用非常广泛,无论是为了应试还是实际科研编程都是矩阵计算的利器,之后介绍的矩阵函数计算会再次使用到Jordan分解。

下一节,介绍同样非常重要的奇异值分解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装linux修复系统文件夹,误删除 Linux 系统文件了?这个方法教你解决

误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收站,删除后的…

python亲和度_数据挖掘——亲和性分析

亲和性分析根据样本个体之间的相似度,确定它们关系的亲疏。应用场景:1.向网站用户提供多样化的服务或投放定向广告。2.为了向用户推荐电影或商品3.根据基因寻找有亲缘关系的人比如:统计顾客购买了商品1,然后再购买商品2的比率,算相…

linux 命令 考试,linux常用命令总结-第一次考试

1.1 mkdir创建目录语法:cat [选项] [文件名]选项:-p 多层目录创建-v 每次创建新目录都显示信息范例:1.创建多层嵌套目录[rootns2 tmp]# mkdir -pv /tmp/test/file/newmkdir: 已创建目录 "/tmp/test"mkdir: 已创建目录 "/t…

onvif python 音视频_python3控制基于onvif的安防摄像头

参考链接:一、python3控制基于onvif的安防摄像头使用的是tp-link安防摄像头安装在Python3中,是安装pip install onvif-zeep实现控制二、实现已经保证了摄像头具有的以下的能力,所以不再对设备是否具有能力进行判断。实现获取设备、控制设备、…

python fact函数_第5天:Python 函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,所以我经常说函数是程序员规模化使用的基础。函数能提高应用的模块性,和代码的重复利用率。在程序设计中,常将一些常用的功能模块编写成函…

linux编写日志接口so,linux下动态链接问题(.so文件的编写与调用) .

.o 就相当于windows里的obj文件.a 是好多个.o合在一起,用于静态连接.so 是shared object,用于动态连接的,和dll差不多sotest.c#includeint test(int a){printf("#########:%d\n",a);return a;}//test.c#include int test(int a);int main(int argc,char argv[]){int …

python获取包下的所有对象_Python访问COM对象的comtypes包简介

Python访问COM对象的comtypes包简介虽然pywin32包中包含的派遣高级客户端支持基于COM接口,它是无法访问COM 对象,除非他们在C 封装代码自定义COM接口。在Python中是无法直接访问COM对象接口,需要借助专门访问的COM包:comtypes&am…

linux tmux 详细教程,Linux下的神器介绍之Tmux分屏器

前言我们为什么需要分屏器呢?对于这个问题,我想大家肯定都有自己的看法。主流的观点是这样的,对于生活在Linux下的人(开发人员、运维人员、普通爱好者)都不可避免的使用终端模拟器(比如,gnome-terminal)去执行一些命令或者脚本。但…

laravel created_at 时间戳_使用 HTTP 测试测试 Laravel 中间件

文章转发自专业的Laravel开发者社区,原始链接:https://learnku.com/laravel/t/34002在本文中,我将展示一个使用 HTTP 测试中间件的实例。HTTP 级测试更能适应变化,可读性更强。在最近与 Adam Wathan 和 Taylor Otwell 合拍的《全栈…

linux 内核主线,为AM335x移植Linux内核主线代码(41)Ethernet结论篇

一口老血喷到屏幕上!请自动略过之前的第36~40小节_!!!https://www.tuicool.com/articles/UvmuEv我的电路板存在的问题是:由于布线(杜邦线)导致的干扰,只能通信在10Mbps,而不能通信在…

动物识别专家系统python_Python有哪些作用?

Python是什么呢?Python是一种全栈的开发语言,如果能学好Python,前端、后端、测试、大数据分析、爬虫等这些工作你都能胜任。那Python有哪些作用呢?Python主要有以下四大主要应用:网络爬虫网站开发人工智能自动化运维接…

linux 命令下删除字符,【Linux基础】tr命令替换和删除字符

cat t.txtabcdacat t.txt |tr abc xyzxyzdxcat t.txtabcda备注:凡是在t.txt文件中出现的"a"字母,都替换成"x"字母,"b"字母替换为"y"字母,"c"字母替换为"z"字母。而不…

python ssh登陆模块_使用python的Paramiko模块登陆SSH

paramiko是用Python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。python的paramiko模块可以方便的实现ssh登录,并执行命令。1. paramiko模块安装1.1安装pycrypto库pycrypto库安装方法python setu…

linux mint图标大小,Cinnamon:LinuxMint 15桌面设置小技巧

touchwiz自身也在做不断的革新,例如7屏分页,桌面切换3d效果,增强型的下拉菜单设置等。win10多桌面最多可以支持7个桌面开启,而且win10切换多桌面是有快捷键的,可以帮助用户迅速切换或创建以及关闭多桌面。切换方法一&a…

操作系统源代码_国产操作系统“之光”?Windows XP绝密源代码泄露,BT种子已在网上疯传...

微软的Windows操作系统是目前使用人数最多、覆盖最广的桌面操作系统,从安全角度来看,其系统源代码对于公众而言可以说是绝密。不过......现在......,黑客在4Chan平台上以BT种子文件的形式在线泄漏了多个旧Windows版本的源代码,包括…

linux设置多语言环境,怎么为Linux系统配置多语言环境?

这篇文章主要讲述了怎么为Linux系统配置多语言环境的基本方法,其中还包括编码的修改方法,我们就拿用户使用最多的Ubuntu和CentOS这两个为例子吧。需要的朋友可以参考下。修改 /etc/sysconfig/i18n 文件,如LANG“en_US.UTF-8”,xwi…

轴承新旧型号对照表_精密机床主轴轴承,高端轴承进口清关报关流程

精密机床的主轴对轴承精度的要求非常高,我国目前在这一技术上仍然处于一片空白,那么高精度的轴承要怎么进口呢?高精度轴承进口这块其他国家管控得比较严格,高精度轴承的进口又会遇到哪些问题呢?在我们的生活中轴承几乎…

linux禁止切换到root,linux禁止普通用户切换至root用户的实例讲解

在上正文之前,我想先将一些基础的linux用户以及用户组的相关命令:1、添加用户useradd [-g group] [-d user_home_directory] [-p “your password”] Username-g 表示设置新增用户所属用户组-d 表示设置新增用户的主目录-p 表示设置新增用户的登录密码还…

python中new方法详解及_Python中new方法的详解

new_ 方法是什么?__new__方法其实就是创建对象的方法new()方法是在类准备将自身实例化时调用。一个类可以有多个位置参数和多个命名参数,而在实例化开始之后,在调用 init()方法之前,Python首先调用new()方法:def new(c…

linux 子域dns,linux下搭建DNS子域及相关授权详解

linux下搭建DNS子域及相关授权详解forward功能是本地无法解析的域名,转发给指定DNS服务器forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果forward first;无法解析的域名,转发给指定DNS服务器,…