因子分解

介绍

所有三个矩阵分解的在此部分使用的讨论三角形的矩阵,其中所有的元件上方或下方对角为零。涉及三角矩阵的线性方程系统是容易且快速地使用任一解决前锋要么回代

Cholesky分解

Cholesky分解表示的对称矩阵作为三角矩阵和其转置的乘积

一个=[R[R

哪里[R是上三角矩阵。

并非所有的对称矩阵可以以这种方式被分解;具有这样的因式分解矩阵被说成是正定的。这意味着所有的对角线元素一个是积极的,该非对角线元素是“不太大”。帕斯卡矩阵提供一个有趣的例子。在本章中,示例矩阵一个一直是3×3帕斯卡矩阵。暂时切换到6×6:

A =帕斯卡(6)A = 1 1 1 1 1 1 1 2 3 4 5 6 1 3 6 10 15 21 1 4 10 20 35 56 1 5 15 35 70 126 1 6 21 56 126 252

的元素一个是二项式系数。每个元素是它的北部和西部邻国的总和。Cholesky分解为

R = CHOL(A)R = 1 1 1 1 1 1 0 1 2 3 4 5 0 0 1 3 6 10 0 0 0 1 4 10 0 0 0 0 1 5 0 0 0 0 0 1

这些元素又是二项式系数。事实上,R'* R等于一个演示涉及二项式系数的乘积的身份。s manbetx 845

注意

Cholesky分解也适用于复杂的矩阵。任何复杂的矩阵具有Cholesky分解满足

一个'=一个

而被认为是正定

Cholesky分解允许线性系统

斧头=b

要被替换

[R[RX=b

由于反斜杠操作者认识三角系统,这可以在MATLAB来解决®环境迅速用

X = R \(R'\ b)中

如果一个ñ-通过-ñ,计算复杂CHOL(A)为O(ñ3),但随后的反斜杠解决方案的复杂度只有O(万博 尤文图斯ñ2)。

LU分解

LU分解或高斯消元法,表示任何方阵一个作为下三角矩阵的置换的产物和上三角矩阵

一个=

哪里大号是下三角矩阵的在其对角线上和那些的置换ü是上三角矩阵。

该置换所必需的理论和计算的原因。矩阵

[ 0 1 1 0 ]

不能被表示为三角矩阵的产物不经互换其两行。虽然矩阵

[ ε 1 1 0 ]

可以表示为三角矩阵的乘积,当ε小,在因素的元素是大和放大错误,因此即使排列是不是绝对必要的,他们是可取的。部分枢转保证了的要素大号由一个在幅度和的元素是有界的ü并不比那些大得多一个

例如:

[L,U] = LU(B)L = 1.0000 0 0 0.3750 0.5441 1.0000 0.5000 1.0000 0 U = 8.0000 1.0000 6.0000 0 8.5000 -1.0000 0 0 5.2941

的LU分解一个允许线性系统

A * X = B

要迅速解决了

X = U \(L \ b)中

决定因素和逆从LU分解使用计算

DET(A)= DET(L)* DET(U)

INV(A)= INV(U)* INV(L)

您还可以使用计算的决定因素DET(A)= PROD(DIAG(U))虽然该决定的标志可能会相反。

QR分解

一个正交矩阵,或具有标准正交列的矩阵,是实矩阵,它的列都具有单位长度和垂直于彼此。如果Q是正交的,则

QQ= 1。

最简单的正交矩阵是二维坐标旋转:

[ COS θ θ - θ COS θ ]

对于复杂的矩阵,对应的术语是。因为他们保留长度,保存的角度,并没有放大错误正交和酉矩阵是理想的数值计算。

正交,或QR,分解表示任何矩形矩阵作为正交或酉矩阵的乘积和上三角矩阵。列排列也可能涉及:

一个=QR

要么

美联社=QR

哪里Q是正交的或整体的,[R是上三角,和P是置换。

还有的QR分解满或经济规模的四个变种,并带或不带列置换。

超定的线性系统涉及具有比列更多的行的矩形矩阵,即-通过-ñ>ñ。全尺寸的QR分解产生方,-通过-正交Q和矩形-通过-ñ上三角[R

C =廊( 'uniformdata',[5 4],0);[Q,R] = QR(C)Q = 0.6191 0.1406 -0.1899 -0.5058 0.5522 0.1506 0.4084 0.5034 0.5974 0.4475 0.3954 -0.5564 0.6869 -0.1478 -0.2008 0.3167 0.6676 0.1351 -0.1729 -0.6370 0.5808 -0.2410 -0.4695 0.5792 -0.2207 R = 1.53461.0663 1.2010 1.4036 0 0.7245 0.3474 -0.0126 0 0 0.9320 0.6596 0 0 0 0.6648 0 0 0 0

在许多情况下,最后米 - N的Q没有必要的,因为它们是由在零的底部乘以[R。因此,经济规模QR分解产生一个矩形,-通过-ñQ用正交列和一个正方形ñ-通过-ñ上三角[R。对于5×4的例子中,这是没有太大的节省,但对于较大的,高度矩形矩阵,在时间和存储器节省可能是非常重要的是:

[Q,R] = QR(C,0)Q = 0.6191 0.1406 -0.1899 -0.5058 0.1506 0.4084 0.5034 0.5974 0.3954 -0.5564 0.6869 -0.1478 0.3167 0.6676 0.1351 -0.1729 0.5808 -0.2410 -0.4695 0.5792 R = 1.5346 1.0663 1.2010 1.4036 0 0.7245 0.3474-0.0126 0 0 0.9320 0.6596 0 0 0 0.6648

与此相反的LU分解,对QR分解不需要任何旋转或排列。但是可选的列置换,通过第三输出参数的存在而触发,是用于检测奇点或秩亏有用。在分解的各步骤中,用最大范数的剩余无分裂矩阵的列被用作该步骤的基础。这确保了的对角元素[R发生以递减顺序和该列中的任何线性依赖关系几乎可以肯定是通过检查这些元件被揭示。对于这里给出的第二列中的小例子C具有比第一较大范数,所以两列进行交换:

[Q,R,P] = QR(C)Q = -0.3522 0.8398 -0.4131 -0.7044 -0.5285 -0.4739 -0.6163 0.1241 0.7777 R = -11.3578 -8.2762 0 7.2460 0 0 P = 0 1 1 0

当经济尺寸和列置换进行组合,第三输出参数是一个置换矢量,而不是一个置换矩阵:

[Q,R,P] = QR(C,0)Q = -0.3522 0.8398 -0.7044 -0.5285 -0.6163 0.1241 R = -11.3578 -8.2762 0 7.2460 P = 2 1

的QR分解变换超定线性系统成等效三角系统。表达方式

范数(A * X  -  b)中

等于

范数(Q * R * X  -  b)中

乘以正交矩阵保留欧几里得范数,所以这个表达式也等于

范数(R * X  -  Y)

哪里Y = Q'* B。由于最后-ñ[R是零,这个表达式断裂成两个部分:

范数(R(1:N,1:N)* X  -  Y(1:N))

范数(Y(N + 1:M))

什么时候一个满秩,就可以解决X从而第一这些表达式是零。然后,第二表达产生的残余的范数。什么时候一个没有满秩,三角结构[R能够找到最小二乘问题基本解决。

使用多线程计算的分解

MATLAB软件支持多线程计算为万博1manbetx多个线性代数和逐元素数值的功能。这些功能在多个线程自动执行。对于一个功能或表达,以在多个CPU上更快地执行,一些条件必须为真:

  1. 该功能进行操作,很容易划分成并发执行的部分。这些部分必须能够与流程之间的交流很少执行。他们应该需要很少的顺序操作。

  2. 的数据大小是足够大的,使得同时执行的任何优点大于所需要的时间来划分数据和管理独立的执行线程。例如,大多数功能加快仅当数组包含几千元素以上。

  3. 操作不是存储器结合;处理时间不受内存访问时间为主。作为一般规则,复杂的功能多于简单的功能加快。

QR显示速度显著增加大型双精度阵列(在10,000个元素的顺序)。

也可以看看

||

相关话题