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

2024-06-10 20:36

本文主要是介绍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

这篇关于33、matlab矩阵分解汇总:LU矩阵分解、Cholesky分解和QR分解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

C/C++中OpenCV 矩阵运算的实现

《C/C++中OpenCV矩阵运算的实现》本文主要介绍了C/C++中OpenCV矩阵运算的实现,包括基本算术运算(标量与矩阵)、矩阵乘法、转置、逆矩阵、行列式、迹、范数等操作,感兴趣的可以了解一下... 目录矩阵的创建与初始化创建矩阵访问矩阵元素基本的算术运算 ➕➖✖️➗矩阵与标量运算矩阵与矩阵运算 (逐元

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

防止SpringBoot程序崩溃的几种方式汇总

《防止SpringBoot程序崩溃的几种方式汇总》本文总结了8种防止SpringBoot程序崩溃的方法,包括全局异常处理、try-catch、断路器、资源限制、监控、优雅停机、健康检查和数据库连接池配... 目录1. 全局异常处理2. 使用 try-catch 捕获异常3. 使用断路器4. 设置最大内存和线

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

Java 枚举的常用技巧汇总

《Java枚举的常用技巧汇总》在Java中,枚举类型是一种特殊的数据类型,允许定义一组固定的常量,默认情况下,toString方法返回枚举常量的名称,本文提供了一个完整的代码示例,展示了如何在Jav... 目录一、枚举的基本概念1. 什么是枚举?2. 基本枚举示例3. 枚举的优势二、枚举的高级用法1. 枚举