主要内容

分解

介绍

本节中讨论的三个矩阵分解都使用了三角形矩阵,在对角线上方或下方的所有元件为零的情况下为零。涉及三角形矩阵的线性方程系统是容易且快速解决的向前回来替换

Cholesky分解

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

一种=R.'R.

在哪里R.是一个三角形矩阵。

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

a = pascal(6)a = 1 11 11 11 11 11 2 3 4 5 6 11 6 10 15 21 11 4 10 20 35 5615 35 35 32626 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等于一种展示了涉及二项式系数的产品和的身份。下载188bet金宝搏

笔记

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

一种'=一种

而被认为是正定

Cholesky的分解允许线性系统

斧头=B.

被替换

R.'R.X=B.

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

X = R \(R'\ b)中

如果一种N-经过-N,计算复杂性霍尔(a)是o(N3.),但随后的反斜杠解决方案的复杂性仅为O(金宝搏官方网站N2)。

LU因分化

LU分解或高斯消元法,表示任何方阵一种作为较低三角形矩阵和上三角矩阵的置换的乘积

一种=

在哪里L.是下三角矩阵与其对角线上的置换是一个三角形矩阵。

对理论和计算原因来说,排列是必要的。矩阵

[ 0. 1 1 0. ]

不能表达为三角矩阵的乘积而不会互换其两行。虽然矩阵

[ ε. 1 1 0. ]

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

例如:

[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 =

快速解决

X = U \(L \ b)中

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

DET(a)= det(l)* det(u)

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

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

QR分解

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

问:T.问:=一世

在哪里一世是单位矩阵。

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

[ COS. θ. θ. - θ. COS. θ. ]

对于复杂的矩阵,相应的术语是.正交矩阵和酉矩阵是数值计算所需要的,因为它们能保持长度,保持角度,并且不会放大误差。

正交或QR,分解表达任何矩形矩阵作为正交或单一矩阵的乘积和上三角形矩阵。也可能涉及列置换:

一种=QR.

AP=QR.

在哪里问:正交或统一,R.是上三角,和P.是置换。

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

过多确定的线性系统涉及具有比列更多的矩形矩阵,即m-经过-Nm>N.全尺寸的QR分解产生一个正方形,m-经过-m正交问:和一个矩形m-经过-N上三角R.

C =画廊(uniformdata, 4 [5], 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.5346 1.0663 1.2010 1.4036 0.7245 0.3474 -0.0126 0 0 0.9320 0.6596 0.6648 0 0 0 0 0 0 0

在许多情况下,最后m - n问:不需要,因为它们乘以零部部分的零R..因此,经济规模的QR分解产生矩形,m-经过-N问:用正常柱和正方形N-经过-N上三角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.自上次以来m-NR.是零,这个表达式断裂成两个部分:

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

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

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

使用多线程计算进行分解

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

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

  2. 数据大小足够大,以便并发执行的任何优点都超过了分区数据所需的时间并管理单独的执行线程。例如,大多数功能才会在数组包含几千元素或更多时加速。

  3. 操作不是内存的;处理时间不是内存访问时间的主导。作为一般规则,复杂的函数加快了简单的函数。

QR显示大型双精度阵列的速度显着增加(按10,000元元素)。

也可以看看

||

相关的话题