使用chol()分解正定矩阵(positive definite matrix), Choleskey

简介:
正定矩阵的定义 : 

一个n×n的实对称矩阵M正定的,当且仅当对于所有的非零实系数向量z,都有zTMz > 0。其中zT表示z转置

对于复数的情况,定义则为:一个n×n埃尔米特矩阵(或厄米矩阵)M是正定的当且仅当对于每个非零的複向量z,都有z*Mz > 0。其中z*表示z共轭转置。由于M埃尔米特矩阵,经计算可知,对于任意的複向量zz*Mz必然是实数,从而可以与0比较大小。因此这个定义是自洽的。

使用chol可以分解为上三角和下三角矩阵.
对于正定矩阵A,可对其进行Choleskey分解,即:A=P'P,其中P为上三角矩阵,在R中可以用函数chol()进行Choleskey分解.
例子 : 
> a <- diag(3)+1
> a
     [,1] [,2] [,3]
[1,]    2    1    1
[2,]    1    2    1
[3,]    1    1    2
> chol(a)
         [,1]      [,2]      [,3]
[1,] 1.414214 0.7071068 0.7071068
[2,] 0.000000 1.2247449 0.4082483
[3,] 0.000000 0.0000000 1.1547005
> t(chol(a))
          [,1]      [,2]     [,3]
[1,] 1.4142136 0.0000000 0.000000
[2,] 0.7071068 1.2247449 0.000000
[3,] 0.7071068 0.4082483 1.154701

验证 :   A=P'P
> crossprod(chol(a))
     [,1] [,2] [,3]
[1,]    2    1    1
[2,]    1    2    1
[3,]    1    1    2
> t(chol(a)) %*% chol(a)
     [,1] [,2] [,3]
[1,]    2    1    1
[2,]    1    2    1
[3,]    1    1    2

若矩阵为对称正定矩阵,可以利用Choleskey分解求行列式的值,如:
> prod(diag(chol(A))^2)
[1] 5
> det(A)
[1] 5

若矩阵为对称正定矩阵,可以利用Choleskey分解求矩阵的逆,这时用函数chol2inv(),这种用法更有效。如:
> chol2inv(chol(A))
      [,1] [,2] [,3] [,4]
[1,] 0.8 -0.2 -0.2 -0.2
[2,] -0.2 0.8 -0.2 -0.2
[3,] -0.2 -0.2 0.8 -0.2
[4,] -0.2 -0.2 -0.2 0.8
> solve(A)
  [,1] [,2] [,3] [,4]
[1,] 0.8 -0.2 -0.2 -0.2
[2,] -0.2 0.8 -0.2 -0.2
[3,] -0.2 -0.2 0.8 -0.2
[4,] -0.2 -0.2 -0.2 0.8

[参考]
目录
相关文章
|
运维 Devops 调度
DevOps-ChatBot:DevOps开源端到端智能AI助手
随着ChatGPT等通用大模型以及各类垂直领域大模型的出现,各个领域的产品交互模式、用户信息获取模式都在逐步发生改变。但通用大模型自身存在的生成内容不可靠、信息内容不及时、领域任务不完善的问题始终存在,面向DevOps这个对于事实的准确性、信息的及时性、问题的复杂性、数据的安全性要求都比较高的领域,大模型该如何赋能?为此,我们发起并开源DevOps-ChatBot端到端AI智能助手,专为软件开发的全生命周期而设计:通过DevOps垂类知识库 + 知识图谱增强 + SandBox执行环境等技术来保障生成内容的准确性、及时性并让用户交互修改代码编译执行,确保答案的可靠性;通过静态分析技术 + RA
843 1
DevOps-ChatBot:DevOps开源端到端智能AI助手
|
数据可视化
R语言绘图教程丨Nature论文都在用的多组比较箱线图,自动计算显著性并标注,附带误差线
R语言绘图教程丨Nature论文都在用的多组比较箱线图,自动计算显著性并标注,附带误差线
|
Linux
HDFS文件上传异常分析:put: `test.txt': No such file or directory
HDFS文件上传异常分析:put: `test.txt': No such file or directory
9460 0
HDFS文件上传异常分析:put: `test.txt': No such file or directory
|
9月前
|
存储 供应链 监控
反向海淘中下单、支付方式、订单、库存管理、物流与配送
反向海淘指海外消费者通过跨境电商平台购买中国商品。其流程包括:1) 海外消费者在支持多语言和货币的平台上选品、加入购物车并填写准确收货信息下单;2) 支付方式涵盖国际信用卡、第三方支付平台(如PayPal)、本地支付及电子钱包;3) 订单管理涉及订单确认、拣货包装、发货跟踪及售后处理,并通过数据分析优化库存与销售;4) 库存管理强调实时监控、多渠道同步、预警补货及滞销处理;5) 物流方案提供国际快递、邮政包裹、专线物流和海外仓等多种选择,确保全程跟踪和清关服务。
|
Python
【Python】已解决:re.error: bad escape \z at position 4
【Python】已解决:re.error: bad escape \z at position 4
880 0
|
Serverless
MATLAB中的矩阵与向量运算
【10月更文挑战第2天】本文全面介绍了MATLAB中的矩阵与向量运算,包括基本操作、加减乘除、转置、逆矩阵、行列式及各种矩阵分解方法。通过丰富的代码示例,展示了如何利用矩阵运算解决线性方程组、最小二乘法拟合、动态系统模拟和电路分析等问题。掌握这些运算不仅提升编程效率,还能在工程计算和科学研究中发挥重要作用。
|
存储 编解码 Go
编程之美:自定义二进制文件实用指南
编程之美:自定义二进制文件实用指南
424 0
|
数据采集 数据可视化 算法
深入解析ERP系统的业务智能与报表分析模块
深入解析ERP系统的业务智能与报表分析模块
585 3
|
计算机视觉 Python
Hough变换原理-直线检测
Hough变换原理-直线检测
467 2
|
算法 测试技术 编译器
蓝桥杯-02-python组考点与14届真题
蓝桥杯-02-python组考点与14届真题