当前位置: 首页 > news >正文

33、matlab矩阵分解汇总:LU矩阵分解、Cholesky分解和QR分解

1、LU矩阵分解

语法

语法1:[L,U] = lu(A) 将满矩阵或稀疏矩阵 A 分解为一个上三角矩阵 U 和一个经过置换的下三角矩阵 L,使得 A = L*U。
语法2:[L,U,P] = lu(A) 还返回一个置换矩阵 P,并满足 A = P'*L*U。
语法3:[L,U,P] = lu(A,outputForm) 以 outputForm 指定的格式返回 P。

1)矩阵的 LU 分解

代码及运算

A = [8 -7 0-4  0 65 -1 9];
[L,U] = lu(A)
L*UL =1.0000         0         0-0.5000    1.0000         00.6250   -0.9643    1.0000U =8.0000   -7.0000         00   -3.5000    6.00000         0   14.7857ans =8    -7     0-4     0     65    -1     9

代码及运算

[L,U,P] = lu(A)
P'*L*UL =1.0000         0         0-0.5000    1.0000         00.6250   -0.9643    1.0000U =8.0000   -7.0000         00   -3.5000    6.00000         0   14.7857P =1     0     00     1     00     0     1ans =8    -7     0-4     0     65    -1     9

 2)用 LU 分解对线性系统求解

 A = magic(5);
b = 65*ones(5,1);
x = A\b
[L,U,P] = lu(A)
y = L\(P*b);
x = U\y
dA = decomposition(A,'lu');
x = dA\bx =1.00001.00001.00001.00001.0000L =1.0000         0         0         0         00.7391    1.0000         0         0         00.4783    0.7687    1.0000         0         00.1739    0.2527    0.5164    1.0000         00.4348    0.4839    0.7231    0.9231    1.0000U =23.0000    5.0000    7.0000   14.0000   16.00000   20.3043   -4.1739   -2.3478    3.17390         0   24.8608   -2.8908   -1.09210         0         0   19.6512   18.97930         0         0         0  -22.2222P =0     1     0     0     01     0     0     0     00     0     0     0     10     0     1     0     00     0     0     1     0x =1.00001.00001.00001.00001.0000x =1.00001.00001.00001.00001.0000

 2、Cholesky 分解:chol  Cholesky 分解

语法

语法1:R = chol(A) 将对称正定矩阵 A 分解成满足 A = R'*R 的上三角 R。
语法2:R = chol(A,triangle) 指定在计算分解时使用 A 的哪个三角因子。
语法3:[R,flag] = chol(___) 还返回输出 flag,指示 A 是否为对称正定矩阵。


1)矩阵的 Cholesky 分解

代码及运算

A = gallery('lehmer',6);
R = chol(A)
norm(R'*R - A)
L = chol(A,'lower')
norm(L*L' - A)R =1.0000    0.5000    0.3333    0.2500    0.2000    0.16670    0.8660    0.5774    0.4330    0.3464    0.28870         0    0.7454    0.5590    0.4472    0.37270         0         0    0.6614    0.5292    0.44100         0         0         0    0.6000    0.50000         0         0         0         0    0.5528ans =2.3587e-16L =1.0000         0         0         0         0         00.5000    0.8660         0         0         0         00.3333    0.5774    0.7454         0         0         00.2500    0.4330    0.5590    0.6614         0         00.2000    0.3464    0.4472    0.5292    0.6000         00.1667    0.2887    0.3727    0.4410    0.5000    0.5528ans =2.3682e-16

 2)用对称正定矩阵求解线性系统

代码及运算

A = [1 0 1; 0 2 0; 1 0 3]
R = chol(A)%计算矩阵的 Cholesky 因子
b = sum(A,2);
x = R\(R'\b)A =1     0     10     2     01     0     3R =1.0000         0    1.00000    1.4142         00         0    1.4142x =1.00001.00001.0000

3、QR分解: qr QR 分解

语法

语法1:R = qr(A) 返回 QR 分解 A = Q*R 的上三角 R 因子。
语法2:[Q,R] = qr(A) 对 m×n 矩阵 A 执行 QR 分解,满足 A = Q*R。
语法3:[Q,R,P] = qr(A) 还返回一个置换矩阵 P,满足 A*P = Q*R。


1)Q-Less QR 分解

 代码及运算

A = magic(5);%5*5幻方矩阵
R = qr(A)R =-32.4808  -26.6311  -21.3973  -23.7063  -25.86150.4648   19.8943   12.3234    1.9439    4.08560.0808   -0.0496  -24.3985  -11.6316   -3.74150.2021   -0.0460    0.3950  -20.0982   -9.97390.2223   -0.1755    0.4959   -0.8587  -16.0005

 2)矩阵的完整 QR 分解

代码及运算

A = magic(5);
[Q,R] = qr(A)
norm(A-Q*R)Q =-0.5234    0.5058    0.6735   -0.1215   -0.0441-0.7081   -0.6966   -0.0177    0.0815   -0.0800-0.1231    0.1367   -0.3558   -0.6307   -0.6646-0.3079    0.1911   -0.4122   -0.4247    0.7200-0.3387    0.4514   -0.4996    0.6328   -0.1774R =-32.4808  -26.6311  -21.3973  -23.7063  -25.86150   19.8943   12.3234    1.9439    4.08560         0  -24.3985  -11.6316   -3.74150         0         0  -20.0982   -9.97390         0         0         0  -16.0005ans =9.6765e-15

http://www.lryc.cn/news/368839.html

相关文章:

  • C语言——使用函数创建动态内存
  • 【PL理论】(16) 形式化语义:语义树 | <Φ, S> ⇒ M | 形式化语义 | 为什么需要形式化语义 | 事实:部分编程语言的设计者并不会形式化语义
  • 前端杂谈-警惕仅引入一行代码言论
  • 有关cookie配置的一点记录
  • Oracle如何定位硬解析高的语句?
  • Linux卸载残留MySQL【带图文命令巨详细】
  • 4句话学习-k8s节点是如何注册到k8s集群并且kubelet拿到k8s证书的
  • 2024全国大学生数学建模竞赛优秀参考资料分享
  • QPS,平均时延和并发数
  • 【Python核心数据结构探秘】:元组与字典的完美协奏曲
  • Golang | Leetcode Golang题解之第137题只出现一次的数字II
  • Spring和SpringBoot的特点
  • 怎么使用join将数组转为逗号分隔的字符串
  • Web前端博客论坛:构建、运营与用户体验的深度解析
  • Java从入门到放弃
  • 基于51单片机的车辆动态称重系统设计
  • C语言之常用字符串函数总结、使用和模拟实现
  • 【JMeter接口测试工具】第二节.JMeter项目实战(上)【实战篇】
  • Ansible——fetch模块
  • HTTP常见响应状态码
  • 如何制定工程战略
  • 认识和使用 Vite 环境变量配置,优化定制化开发体验
  • Java18新特性总结
  • 理解 Java 中的 `final` 关键字
  • 磁盘未格式化:深度解析、恢复方案及预防之道
  • JWT 从入门到精通
  • 31-捕获异常(NoSuchElementException)
  • 使用Spring Boot设计对象存储系统
  • Apple开发者macOS设备与描述文件Profile创建完整过程
  • SpringBootWeb 篇-深入了解 Redis 五种类型命令与如何在 Java 中操作 Redis