主要内容

QR.

QR分解

描述

例子

X= qr (一个返回上三角RQR分解的因素a = q * r.如果一个是满的,然后r = triu(x).如果一个那是稀疏的,然后R = X

例子

R] = QR(一个执行QR分解-经过-n矩阵一个这样a = q * r.因素R是一个-经过-n上三角矩阵,和因子是一个-经过-正交矩阵。

例子

RP] = QR(一个另外返回排列矩阵P这样* P = * R

例子

___] = QR(一个,0)使用以前的任何输出参数组合产生经济大小的分解。输出的大小取决于大小-经过-n矩阵一个

  • 如果m > n,然后QR.只计算第一个n列的和第一nR

  • 如果m < = n,则经济规模分解与常规分解相同。

  • 如果使用经济大小的分解指定第三个输出,则它将作为排列载体返回,例如A(:,p)= q * r

例子

RP] = QR(一个outputForm指定是否返回排列信息P作为矩阵或向量。例如,如果outputForm'向量',然后A(:,p)= q * r.默认值outputForm'矩阵'这样* P = * R

例子

CR] = QR(年代B计算C =问' * B上三角因素R.您可以使用CR将最小二乘解压缩到稀疏线性系统s * x = bx = r \ c

例子

CRP] = QR(年代B另外返回排列矩阵P.您可以使用CR, 和P将最小二乘解压缩到稀疏线性系统s * x = bx = p *(r \ c)

例子

___] = QR(年代B,0)使用以前的任何输出参数组合产生经济大小的分解。输出的大小取决于大小-经过-n稀疏矩阵年代

  • 如果m > n,然后QR.只计算第一个nCR

  • 如果m < = n,则经济规模分解与常规分解相同。

  • 如果您使用经济规模分解指定第三个输出,那么它将作为一个排列向量返回,以便最小二乘解s * x = bx(p,:)= r \ c

例子

CRP] = QR(年代BoutputForm指定是否返回排列信息P矩阵或向量。例如,如果outputForm'向量',然后是最小二乘解s * x = bx(p,:)= r \ c.默认值outputForm'矩阵'使得最小二乘解s * x = bx = p *(r \ c)

例子

全部折叠

找到5×5帕斯卡矩阵的QR分解。指定一个输出参数,只返回三角形因子。

一个=帕斯卡(5);X = qr (A)
X =5×5-2.2361 -6.7082 -15.6525 -31.3050 -56.3489 0.3090 3.1623 11.0680 26.5631 53.1263 0.3090 -0.1744 1.8708 7.4833 19.2428 0.3090 -0.4565 0.3548 0.6325 2.8460 0.3090 -0.7387 -0.0281 -0.7490 -0.1195

提取上三角因子RX

r = triu(x)
r =5×5-2.2361 -6.7082 -15.6525 -31.3050 -56.3489 0 3.1623 11.0680 26.5631 53.1263 0 0 1.8708 7.4833 19.2428 0 0 0 0.6325 2.8460 0 0 0 -0.1195

比较R在无q的QR分解中R在完整的QR分解中。

[Q1,R1] = QR(A)
Q1 =5×5-0.4472 -0.6325 0.5345 -0.3162 -0.1195 -0.4472 -0.3162 -0.2673 0.6325 0.4781 -0.4472 0.0000 -0.5345 -0.0000 -0.7171 -0.4472 0.3162 -0.0673 -0.6320.4781-0.4472 0.6325 0.6325 0.6325 0.5320 0.3162 -0.190.3162 -0.190.3162 -0.190.6325 0.5345 0.3162 -0.1190
R1 =5×5-2.2361 -6.7082 -15.6525 -31.3050 -56.3489 0 3.1623 11.0680 26.5631 53.1263 0 0 1.8708 7.4833 19.2428 0 0 0 0.6325 2.8460 0 0 0 -0.1195

通过指定两个输出参数来计算魔术方测试矩阵的全QR分解。

a =魔术(5);[q,r] = qr(a)
Q =5×50.5234 0.5058 0.6735 0.1215 -0.0441 -0.7081 -0.6966 -0.0177 0.0815 -0.0800 - 1231 0.1367 -0.3558 -0.6307 - 6646 -0.3079 0.1911 -0.4122 -0.4247 0.7200 -0.3387 0.4514 -0.4996 0.6328 -0.1774
r =5×5-32.4808 -26.6311 -21.3973 -23.7063 -25.8615 0 19.8943 12.3234 1.9439 4.0856 0 0 -24.3985 -11.6316 -3.7415 0 0 0 0 0 -20.0982 -9.9739 0 0 0 0 0 -16.0005

验证 一个 QR. ,在机器精度范围内。

常态(A-Q * R)
ans = 9.5562e-15

属性中指定三个输出参数以返回减少填充的排列矩阵或向量RQR分解的因子。

计算QR分解west0479稀疏矩阵。指定三个输出以返回满足的排列矩阵 美联社 QR.

负载west0479A = West0479;[q,r,p] = qr(a);

验证* P = * R对于排列矩阵P,在机器精度范围内。

规范(* p q * R,'fro'
ans = 3.3386e-10

现在指定'向量'选择返回p作为排列载体。

[q,r,p] = qr(a,'向量');

验证A(:,p)= q * r对于排列向量p,在机器精度范围内。

规范(:p - Q * R,'fro'
ans = 3.3386e-10

验证在分解中的使用置换矩阵或置换向量导致R与非排列分解相比,稀疏输入具有更少的非零因子。

[Q1,R1] = QR(A);间谍(R1)

图中包含一个坐标轴。轴包含一个线型对象。

spy(r)

图中包含一个坐标轴。轴包含一个线型对象。

结果表明,允许的分解产生了一个R因素较少的因素较少。

使用系数矩阵的经济性QR分解来解决线性系统 斧头 b

的前五列创建一个10乘5的系数矩阵魔法(10).对于线性方程的右侧 斧头 b ,使用矩阵的行和。有了这样的设置,方程的解 x 应该是一个矢量的矢量。

一个=魔法(10);= (: 1:5)
一个=10×592 99 1 8 15 98 80 7 14 16 4 81 88 20 22 85 87 19 21 3 86 93 25 2 9 18 24 76 83 90 23 5 82 89 91 79 6 13 95 97 10 12 94 96 78 11 18 100 77 84
b = sum(a,2)
B =10×1215 215 215 215 215 290 290 290 290 290

计算经济大小的QR分解一个.然后解决线性系统 qrx. b x(p,:)= r \(q \ b).因为是正交的,这种等式与: x (p) = R \(问‘* b)

[q,r,p] = qr(a,0)
Q =10×5-0.0050 -0.4775 -0.0504 0.5193 -0.0349 -0.5001 -0.0990 -0.1954 - 2006 -0.4384 0.1059 -0.4660 - 0.4464 0.0628 -0.0947 -0.4151 -0.2923 -0.2542 0.5274 -0.1246 -0.4117 -0.2812 -0.1326 -0.4130 -0.3787 0.0209 - 0.2702 -0.4085 -0.0017 0.2217 -0.2450 -0.2015 -0.0648 -0.3925 - 0.6939 0.0669 - 0.1225 -0.4683 0.0833 0.0283 -0.3038 0.5265 -0.49820。0867 0.0394 -0.1822 -0.4138
r =5×5-200.7112 -55.5026 -167.6040 -84.7237 -168.7997 0 -192.1053 -403557 -152.4040 -39.2814 0 0 101.3180 -89.4254 96.0172 0 0 0 41.0248 -14.9083 0 0 0 0 24.6386
p =1×53 1 5 2 4
x(p,:)= r \(q \ b)
X =5×11.0000 1.0000 1.0000 1.0000 1.0000 1.0000

做对角线的半对数图R以确定排列分解产生的R因子为ABS(DIAG(R))减少。绘制的奇异值一个在相同的曲线中进行比较。在实践中,对角线值R的奇异值具有类似的行为一个.因此,可以使用的对角线值R作为如何接近奇异的矩阵的措施一个是多少。

semilogy (abs(诊断接头(R)),“o”) 抓住半径(SVD(A),'r-o') 传奇(R的对角线“A的奇异值”

图中包含一个坐标轴。轴包含2个类型的型号。这些对象代表R,奇异值的对角线。

解决稀疏的线性系统并使用结果看看矢量的数量b的列空间年代

创建一个随机的500 × 20稀疏矩阵,密度为10%,向量为1。使用QR.把矩阵分解成因子RC =问' * b

s = sprand(500,20,0.1);b = oon(500,1);[c,r] = qr(s,b,0);

使用结果解决 SX. b x = r \ c

x = r \ c;

考虑到身份 b 2 SX. - b 2 + C 2

划分的b,你得到了一个新的身份,展示了多少b的列空间年代

SX. - b 2 b 2 + C 2 b 2 1

第一项告诉我们有多少b才不是位于的列空间中年代,而第二个词讲述了多少b位于的列空间中年代

t1 =常规(s * x-b)^ 2 / norm(b)^ 2
t1 = 0.4000
T2 =常规(c)^ 2 / narm(b)^ 2
T2 = 0.6000.

使用QR.解决矩阵方程 SX. B 用矩形稀疏系数矩阵表示 年代

加载west0479稀疏矩阵并使用前200列作为线性系统中的矩形系数矩阵。对于方程的右侧,使用行和 年代 .有了这样的设置,解 SX. B 是一个1的向量。

负载west0479S = West0479(:,1:200);b =总和(s,2);

解决 SX. B 使用QR.有两个输入和三个输出。线性方程组的解是x = p *(r \ c)

[P C R] = qr(年代,B);x = P * (R \ C);

验证 SX. - B 0 ,在机器精度范围内。

规范(S *取向)
ans = 9.1703e-11

笔记:计算上三角因子R和排列矩阵P,但避免计算正交矩阵(这通常是最昂贵的昂贵部分QR.),您可以指定B作为一个空矩阵:

emptyB = 0(大小(年代,1),0);(~ R P) = qr(年代,emptyB);

输入参数

全部折叠

输入矩阵,指定为满或稀疏矩阵。

数据类型:单身的|双倍的
复数的支持:金宝app是的

输入系数矩阵,指定为稀疏矩阵。有两个输入矩阵,QR.将最小二乘解压缩到线性系统s * x = b

数据类型:双倍的
复数的支持:金宝app是的

右侧矩阵,指定为满或稀疏矩阵。有两个输入矩阵,QR.计算C =问' * B,您可以用来解决线性系统s * x = b

数据类型:单身的|双倍的
复数的支持:金宝app是的

置换输出的形状,指定为'矩阵'要么'向量'.此标志控制是否置换输出P作为置换矩阵或排列向量返回。您必须指定三个输出参数QR.使用此选项。

  • 如果outputForm'向量',然后P是一个满足的排列载体A(:,p)= q * r

  • 默认值outputForm'矩阵'这样* P = * R

例子:[q,r,p] = qr(a,'vector')

输出参数

全部折叠

输出矩阵。内容X取决于是否一个是满或稀疏:

  • 如果一个已满,那么QR分解的上三角因子是r = triu(x).(下三角形元素是用于计算的数据的一部分.)

  • 如果一个是稀疏,那么因素是R = X

正交因子,作为满足的矩阵返回a = q * r-经过-n矩阵一个

  • 完全分解,QR(a)返回作为A.-经过-正交矩阵令人满意 H H

  • 对于矩形一个m > n,经济大小的分解QR(A,0)只计算第一个n列的和第一nR.列的列为列空间形成正式的基础一个

不同的机器和释放Matlab®可以产生不同的列这仍然是数值准确的。相应的行和列R可以翻转他们的迹象,因为这不会影响表达的值a = q * r

上三角因子,返回满足条件的矩阵a = q * r

置换信息,作为矩阵或向量返回。形状P取决于价值outputForm.同时,QR.选择P要满足不同的标准,请根据第一个输入矩阵是否满是或稀疏:

  • 完整的,QR.选择P以便ABS(DIAG(R))正在减少。

  • 稀疏,QR.选择P减少填充物R

线性系统因子,作为满足的矩阵返回C =问' * B.的最小二乘解s * x = bx = r \ c.如果置换输出P指定,然后解决方案x = p *(r \ c)要么x(p,:)= r \ c,取决于价值outputForm

  • 如果outputForm'向量',然后是最小二乘解s * x = bx(p,:)= r \ c

  • 默认值outputForm'矩阵'使得最小二乘解s * x = bx = p *(r \ c)

提示

  • 解决涉及相同系数矩阵的多个线性系统,使用分解对象。

  • 对于语法[C R] = qr(年代,B)的价值x = r \ c是一个最小二乘解s * x = b只有当年代没有低级别。

扩展能力

在R2006A之前介绍