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

相关文章

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

hdu 6198 dfs枚举找规律+矩阵乘法

number number number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description We define a sequence  F : ⋅   F0=0,F1=1 ; ⋅   Fn=Fn

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

【Kubernetes】常见面试题汇总(三)

目录 9.简述 Kubernetes 的缺点或当前的不足之处? 10.简述 Kubernetes 相关基础概念? 9.简述 Kubernetes 的缺点或当前的不足之处? Kubernetes 当前存在的缺点(不足)如下: ① 安装过程和配置相对困难复杂; ② 管理服务相对繁琐; ③ 运行和编译需要很多时间; ④ 它比其他替代品更昂贵; ⑤ 对于简单的应用程序来说,可能不

libsvm在matlab中的使用方法

原文地址:libsvm在matlab中的使用方法 作者: lwenqu_8lbsk 前段时间,gyp326曾在论坛里问libsvm如何在matlab中使用,我还奇怪,认为libsvm是C的程序,应该不能。没想到今天又有人问道,难道matlab真的能运行libsvm。我到官方网站看了下,原来,真的提供了matlab的使用接口。 接口下载在: http://www.csie.ntu.edu.

【Kubernetes】常见面试题汇总(一)

目录 1.简述 etcd 及其特点? 2.简述 etcd 适应的场景? 3.简述什么是Kubernetes? 4.简述 Kubernetes和 Docker的关系? 1.简述 etcd 及其特点? (1)etcd 是Core0s 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(keyvalue)数据

线性代数|机器学习-P35距离矩阵和普鲁克问题

文章目录 1. 距离矩阵2. 正交普鲁克问题3. 实例说明 1. 距离矩阵 假设有三个点 x 1 , x 2 , x 3 x_1,x_2,x_3 x1​,x2​,x3​,三个点距离如下: ∣ ∣ x 1 − x 2 ∣ ∣ 2 = 1 , ∣ ∣ x 2 − x 3 ∣ ∣ 2 = 1 , ∣ ∣ x 1 − x 3 ∣ ∣ 2 = 6 \begin{equation} ||x

Matlab/Simulink中PMSM模型的反电动势系数和转矩系数

Matlab/Simulink中PMSM模型的反电动势系数和转矩系数_matlab pmsm-CSDN博客