【matlab基础知识代码】(十三)矩阵的相似变换与三角分解矩阵的Jordan 变换与奇异值分解

Cholesky分解 - 知乎 (zhihu.com)(之前学习牛顿法有涉及到Cholesky的相关证明)

Cholesky分解是一种将一个对称正定矩阵分解为一个下三角矩阵和其转置的乘积的方法。简单来讲,就是将一个矩阵分解为一个下三角矩阵和其转置矩阵相乘的结果。

Cholesky分解的主要步骤如下:

1. 对于一个对称正定矩阵A,可以表示为A = LL^T,其中L是一个下三角矩阵。2. 如果A的第i行第j列元素为a(i,j),那么L的第i行第j列元素为l(i,j)。3. Cholesky分解的具体计算步骤是:首先,通过对矩阵A进行逐列的迭代计算,得到L矩阵的每一列;接着通过计算每列中的元素,逐步得到L矩阵的每一个元素。Cholesky分解在数值计算和线性代数中有着广泛的应用,它可以帮助简化大规模线性方程组的解法,并且在实际计算中具有很高的效率和稳定性。

当进行Cholesky分解时,有几点需要注意:1. 矩阵A必须是对称正定的。对称是指矩阵A的转置等于它本身,正定是指对任意非零向量x,都有x^T*A*x大于0。如果矩阵不满足这两个条件,那么无法进行Cholesky分解。2. Cholesky分解是一种比LU分解更快速和更稳定的方法,尤其在解大规模线性方程组时效果更为显著。3. Cholesky分解得到的下三角矩阵L可以用来解线性方程组Ax=b,只需先求解Ly=b,再求解L^Tx=y。4. Cholesky分解在概率统计中也有广泛应用,例如用于协方差矩阵的估计和协方差矩阵的条件数值计算。总的来说,Cholesky分解是一种非常有用的数值计算方法,能够简化大规模线性方程组的解法并提高计算效率,因此在很多领域都有重要的应用价值。

 Hermite转置是矩阵的共轭转置,也称为Hermitian转置。在复数矩阵中,Hermite转置是将矩阵的每个元素取复共轭(conjugate)并进行转置(transpose)得到的操作。具体而言,对于一个复数矩阵A,它的Hermite转置记作A^H,可以通过以下步骤得到:
1. 将矩阵A的每个元素取复共轭,即将每个复数元素的实部取反,虚部取负号,得到A*;
2. 将A*进行转置操作,即将矩阵A*的行列互换,得到A^H。Hermite转置可以看作是普通转置和复共轭的组合操作,它在复杂共轭运算中具有重要作用。在线性代数和信号处理等领域,Hermite转置用于定义共轭转置矩阵、求解共轭转置矩阵的特征值和特征向量等。在量子力学中,Hermite转置也被广泛用于描述厄米特矩阵(Hermitian matrix)和厄米特算子(Hermitian operator),以分析物理量的测量和性质等。

 通俗易懂:什么是正交矩阵 - 知乎 (zhihu.com)

LU分解(矩阵的三角分解

>> A=[16 2 3 13; 5 11 10 8; 9 7 6 12; 4 14 15 1]; [L1,U1]=lu(A)L1 =1.0000         0         0         00.3125    0.7685    1.0000    1.00000.5625    0.4352    1.0000         00.2500    1.0000         0         0U1 =16.0000    2.0000    3.0000   13.00000   13.5000   14.2500   -2.25000         0   -1.8889    5.66670         0         0    0.0000

 

符号(三角分解的解析解)

>> A=sym(A);[L2,U2]=lu(A)L2 =[   1,      0,  0, 0]
[5/16,      1,  0, 0]
[9/16,  47/83,  1, 0]
[ 1/4, 108/83, -3, 1]U2 =[16,    2,      3,     13]
[ 0, 83/8, 145/16,  63/16]
[ 0,    0, -68/83, 204/83]
[ 0,    0,      0,      0]

>>  A=[9,3,4,2; 3,6,0,7; 4,0,6,0; 2,7,0,9]; D=chol(A), D1=chol(sym(A))D =3.0000    1.0000    1.3333    0.66670    2.2361   -0.5963    2.83240         0    1.9664    0.40680         0         0    0.6065D1 =[3,       1,                    4/3,                       2/3]
[0, 5^(1/2),        -(4*5^(1/2))/15,           (19*5^(1/2))/15]
[0,       0, (15^(1/2)*58^(1/2))/15, (2*15^(1/2)*58^(1/2))/145]
[0,       0,                      0,   (4*2^(1/2)*87^(1/2))/87]

矩阵的Jordan 变换与奇异值分解                      Jordan变换是将一个方阵通过相似变换(similarity transformation)转化为Jordan标准形式的过程。Jordan标准形式是一种特殊的矩阵形式,其中主对角线上有Jordan块,非对角线上有1的元素。Jordan标准形式在矩阵分析和线性代数中具有重要的作用,可以简化计算和分析复杂矩阵的性质。Jordan变换的基本思想是通过相似变换将原始矩阵转化为Jordan标准形式。相似变换指的是对一个矩阵A找到一个非奇异矩阵P,使得P^(-1)AP=D,其中D为对角线上为特征值,非对角线上为1的Jordan标准形式矩阵。通过Jordan变换,可以将一个n阶方阵转化为Jordan标准形式,方便进行矩阵的计算和分析。在实际应用中,Jordan标准形式可以用于解决线性系统的特征值分析、矩阵求逆和矩阵幂等问题。总的来说,Jordan变换是将一个矩阵通过相似变换转化为Jordan标准形式的过程,可以简化矩阵的计算和分析。

>> A=[5,7,6,5; 7,10,8,7; 6,8,10,9; 5,7,9,10]; 
while(1), x=floor(2*rand(4,1)); %生成一个只含有0和1的x向量
T=sym([x A*x A^2*x A^3*x]); 
if rank(T)==4, break;%这个T矩阵是不是奇异,如果是奇异我把x扔掉,再找一个新的x,总能找到一个只含有0和1的x向量,使得T矩阵为非奇异矩阵,A矩阵变化成一个相伴矩阵
end, end, T, A1=inv(T)*A*TT =[1, 17, 501, 15116]
[1, 24, 697, 21013]
[0, 23, 722, 21922]
[1, 22, 680, 20682]A1 =[0, 0, 0,   -1]
[1, 0, 0,  100]
[0, 1, 0, -146]
[0, 0, 1,   35]

MATLAB 中生成一个随机的列向量 x,然后构造一个矩阵 T,其中 T 的列是 A 的不同次幂与 x 的乘积。在这个过程中,使用了 while 循环来确保生成的矩阵 T 是满秩的(rank𝑇T==4),也就是线性无关的。在得到满秩的 T 后,代码计算了 A1 = inv𝑇T * A * T。这一步可以解释为通过相似变换,将矩阵 A 转化为相似矩阵 A1,其中 T 是从 A 到 A1 的过渡矩阵。在这个过程中,A1 的特殊形式可能是为了简化后续的计算和分析,这与 Jordan 变换的思想相符。 Jordan 变换的目的是将原始矩阵通过相似变换转化为 Jordan 标准形式,以便更容易地进行矩阵的计算和分析。

>>  A=[3,2,2,2; 1,2,-2,-2; -1,-2,0,-2; 0,1,3,5];[V,D]=eig(sym(A)),A1=inv(V)*A*VV =[ 1,  0,  1/2,  0]
[-1,  0, -1/2, -1]
[-1, -1, -1/2,  0]
[ 1,  1,    1,  1]D =[1, 0, 0, 0]
[0, 2, 0, 0]
[0, 0, 3, 0]
[0, 0, 0, 4]A1 =[1, 0, 0, 0]
[0, 2, 0, 0]
[0, 0, 3, 0]
[0, 0, 0, 4]

如果一个矩阵没有相同的特征值,这样的矩阵才能变换成对角矩阵.如果有相同的特征值,变换成另一种矩阵,就是所谓的Jordan矩阵

>>  A=[-71,-65,-81,-46; 75,89,117,50;0,4,8,4; -67,-121,-173,-58]; [V,J]=eig(sym(A))V =-17/1913/19-8/191J =[-8,  0,  0,  0]
[ 0, -8,  0,  0]
[ 0,  0, -8,  0]
[ 0,  0,  0, -8]>> [V,J]=jordan(sym(A))V =[-18496,  2176, -63, 1]
[ 14144,  -800,  75, 0]
[ -8704,    32,   0, 0]
[ 20672, -1504, -67, 0]J =[-8,  1,  0,  0]
[ 0, -8,  1,  0]
[ 0,  0, -8,  1]
[ 0,  0,  0, -8]

V矩阵就是变换矩阵,J Jordan矩阵

 

 >>  A=[1 1; 5*eps,0; 0,5*eps]; rank(A)    % eps是判零的误差限

ans =

     2

>> A=[16,2,3,13; 5,11,10,8;9,7,6,12; 4,14,15,1]; [L,A1,M]=svd(A)L =-0.5000    0.6708    0.5000   -0.2236-0.5000   -0.2236   -0.5000   -0.6708-0.5000    0.2236   -0.5000    0.6708-0.5000   -0.6708    0.5000    0.2236A1 =34.0000         0         0         00   17.8885         0         00         0    4.4721         00         0         0    0.0000M =-0.5000    0.5000    0.6708   -0.2236-0.5000   -0.5000   -0.2236   -0.6708-0.5000   -0.5000    0.2236    0.6708-0.5000    0.5000   -0.6708    0.2236>> cond(A)ans =4.7133e+17

>> A=[1,3,5,7; 2,4,6,8]; [L,A1,M]=svd(A), A2=L*A1*M', norm(A-A2)L =-0.6414    0.7672-0.7672   -0.6414A1 =14.2691         0         0         00    0.6268         0         0M =-0.1525   -0.8226   -0.3945   -0.3800-0.3499   -0.4214    0.2428    0.8007-0.5474   -0.0201    0.6979   -0.4614-0.7448    0.3812   -0.5462    0.0407A2 =1.0000    3.0000    5.0000    7.00002.0000    4.0000    6.0000    8.0000ans =5.2937e-15

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

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

相关文章

招聘招商求职系统asp.net+sqlserver

招聘招商求职系统asp.netsqlserver 首 页 招聘信息 公寓信息 物品求购 发布信息 管理员后台登陆 账号密码TSoft 111 审核 招聘信息 求职信息 培训信息 说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 基于asp.net架构和sql s…

【密评】 | 商用密码应用安全性评估从业人员考核题库(6/58)

根据Kerckhoffs原则,密码系统的安全性主要依赖于()。 A. 密钥 B. 加密算法 C. 解密算法 D. 通信双方 2000年10月,美国NIST宣布()算法作为新的高级加密标准AES。 A. Rijndael B. RC6 C. SERPENT D. Twofish…

HackMyVM-VivifyTech

目录 信息收集 arp nmap nikto whatweb WEB web信息收集 wpscan feroxbuster hydra 提权 系统信息收集 横向渗透 git提权 get root 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 08:00:27:9d:6d:7b, …

HTTP 请求走私漏洞

漏洞介绍 http请求走私漏洞,一句话概括就是像走私饭一样,在一个http请求包中携带着另一个请求包或者是多个。在前端看来这是一个请求包很正常的请求包,但是如果来到了后端处理,就会被解析成多个请求包。最终就会导致没有授权而访问…

学习Uni-app开发小程序Day3

经过五一长假,回过头在去看学习的东西,发现仍然是一筹莫展的,看来,学习是不能松懈的,得,自己在把以前的从头复习一遍,加深印象。今天在继续听课,但是出现一个问题,是黑码…

力扣-21. 合并两个有序链表-js实现

/*** Definition for singly-linked list.* function ListNode(val, next) {* this.val (valundefined ? 0 : val)* this.next (nextundefined ? null : next)* }*/ /*** param {ListNode} list1* param {ListNode} list2* return {ListNode}*/ const mergeTwoList…

关于zabbix简介及zabbix服务端的部署

文章目录 一、zabbix概念1、zabbix简介2、zabbix主要特点3、zabbix运行机制4、zabbix应用场景5、zabbix监控原理6、zabbix的子程序7、zabbix监控的架构模式7.1 server-client架构7.2 server-proxy-client架构7.3 master-node-client 二、部署zabbix1、服务器配置2、服务器环境3…

CSS伪类选择器

目录 前言: 链接伪类: 用户行为伪类: 元素状态伪类: 结构化伪类: 否定伪类: 目标伪类: 输入伪类: 前言: 在CSS中有一种特殊的选择器:伪类选择器&…

深入分析网络智能摄像头的RTSP协议安全风险

本文为转载,原作者:山石网科安全技术研究院 网络摄像头作为现代安防体系的关键组成部分,已经广泛应用于各类场所,包括交通枢纽、教育机构、企业办公区、零售商场等公共和私人领域。它们主要负责提供实时视频监控,以加…

自己的服务器部署了Excalidraw,你确定不试试?

Excalidraw是一款开源的虚拟手绘风格白板工具,专为快速创作草图、流程图、示意图等设计。它的特色在于提供了一种类似手绘的视觉效果,使得制作的图表看起来更加自然和非正式,适合创意讨论、头脑风暴以及远程协作场景。Excalidraw强调易用性和…

93、动态规划-最长回文子串

思路 首先从暴力递归开始,回文首尾指针相向运动肯定想等。就是回文,代码如下: public String longestPalindrome(String s) {if (s null || s.length() 0) {return "";}return longestPalindromeHelper(s, 0, s.length() - 1);…

量化教程3---miniqmt当作第三方库设置,提供源代码

qmt提供了大qmt和miniqmt,大qmt在平台使用,miniqmt提供了交易的api和数据可以本地使用,非常的方便,合适自己开发大型的策略,本地还可以访问其他数据,网络等,也支持服务器 以前的教程 qmt教程1…

内网安全【2】——域防火墙/入站出站规则/不出网隧道上线/组策略对象同步

-隧道技术:解决不出网协议上线的问题(利用出网协议进行封装出网)(网络里面有网络防护,防火墙设置让你不能正常访问网络 但有些又能正常访问,利用不同的协议tcp udp 以及连接的方向:正向、反向) -代理技术&…

uni-app 多列picker切换列显示对应内容

html部分&#xff1a; <view class"uni-list"><view class"uni-list-cell"><view class"uni-list-cell-left">选择用户</view><view class"uni-list-cell-db"><picker mode"multiSelector"…

【密评】 | 商用密码应用安全性评估从业人员考核题库(5/58)

我国金融信息系统、第二代居民身份证管理系统、国家电力信息系统、社会保障信息系统、全国中小学学籍管理系统中&#xff0c;都应用&#xff08;&#xff09;技术构建了密码保障体系。 A. 核心密码 B. 普通密码 C. 商用密码 D. 核心密码和普通密码 商用密码从业单位开展商用密…

【VUE】el-descriptions 描述列表

Descriptions 描述列表 列表形式展示多个字段。 <el-descriptions title"用户信息"><el-descriptions-item label"用户名">kooriookami</el-descriptions-item><el-descriptions-item label"手机号">18100000000</e…

学习3:scrapy请求对象、模拟登录、POST请求、管道的使用、crawlspider爬虫类

请求对象 请求对象参数 scrapy.Request(url[],callback,method"GET",headers,body,cookies,meta,dont_filterFalse)callback 表示当前的url响应交给那个函数去处理method 指定请求方式headers 接受一个字典&#xff0c;其中不包括cookiesbody 接收json字符串&#…

uniapp读取项目本地文件/json文件/txt文件

uniapp读取项目本地文件/json文件/txt文件 文件必须放在static目录下 方法&#xff1a; /*** 访问static里面的文件* param url 文件路径 必须在static目录下*/ function localFetch(url) {return new Promise((resolve, reject) > {plus.io.resolveLocalFileSystemURL(_ww…

阿里云VOD视频点播流程(2)

二、视频点播 1、入门代码 基于OSS原生SDK上传 &#xff0c;参考文档&#xff1a;https://help.aliyun.com/zh/vod/user-guide/upload-media-files-by-using-oss-sdks?spma2c4g.11186623.0.0.1f02273fj4lxNJ 视频点播面向开发者提供了丰富的上传方式&#xff0c;其中上传SDK&…

从零开始的软件测试学习之旅(八)jmeter线程组参数化及函数学习

jmeter线程组参数化及函数学习 Jmeter基础基本使用流程组件与元件 线程组线程的执行方式Jmeter组件执行顺序 常见属性设置查看结果数的作用域举例 Jmeter参数化实现方式1.用户定义参数2.用户参数3.函数4.csv数据文件设置 每日复习 Jmeter基础 基本使用流程 启动项目案例 启动…