LU矩阵分解

描述

[大号ü] = LU(一个因子分解的完整或稀疏矩阵一个成上三角矩阵ü和置换下三角矩阵大号这样甲= L * U

[大号üP] = LU(一个也返回的置换矩阵P这样A = P'* L * U。有了这个语法,大号是单位下三角和ü是上三角。

[大号üP] = LU(一个outputForm回报P在由指定的形式outputForm。指定outputForm'向量'回来P作为置换载体中,使得A(P,:) = L * U

[大号üPQ] = LU(小号因子分解稀疏矩阵小号成一个单元下三角矩阵大号,上三角矩阵ü中,行置换矩阵P和列置换矩阵Q,这样P * S * Q = L *ù

[大号üPQd] = LU(小号也返回一个对角缩放矩阵d这样P *(d \ S)* Q = L * U。通常情况下,该行缩放导致一个稀疏的和更稳定的因子。

[___] = LU(小号脱粒用于通过使用枢转的策略指定的阈值使用任何先前的输出参数的组合。根据输出参数的个数指定为默认值和要求脱粒输入是不同的。查看脱粒参数说明了解详情。

[___] = LU(___outputForm回报PQ在由指定的形式outputForm。指定outputForm'向量'回来PQ作为置换载体。您可以在前面的语法使用任何输入参数的组合。

例子

全部收缩

计算矩阵的LU分解和检查所得的因素。LU分解是分解矩阵的方式 一个 成上三角矩阵 ü ,下三角矩阵 大号 和置换矩阵 P 这样 PA = 。这些矩阵描述对矩阵执行高斯消去,直到它处于缩减列梯形形式所需的步骤。该 大号 矩阵包含了所有的乘法器,以及置换矩阵 P 占行交换。

创建一个3乘3矩阵,并计算LU因素。

A = [10 -7 0 -3 2 6 5 -1 5];
[L,U] = LU(A)
L =3×31.0000 0 0 -0.3000 -0.0400 1.0000 0.5000 1.0000 0
U =3×310.0000 -7.0000 0 0 2.5000 5.0000 0 0 6.2000

乘以系数来重建一个。随着双输入语法,采用了置换矩阵P直接进入大号因子,使得所述大号返回真的P'* L因此甲= L * U

ANS =3×310.0000 -7.0000 0 -3.0000 2.0000 6.0000 5.0000 -1.0000 5.0000

您可以指定三个输出到置换矩阵从乘法器分开大号

[L,U,P] = LU(A)
L =3×31.0000 0 0 0.5000 1.0000 0 -0.3000 -0.0400 1.0000
U =3×310.0000 -7.0000 0 0 2.5000 5.0000 0 0 6.2000
P =3×31 0 0 0 0 1 0 1 0
P'* L * U
ANS =3×310.0000 -7.0000 0 -3.0000 2.0000 6.0000 5.0000 -1.0000 5.0000

通过执行LU分解,并使用因素简化问题求解线性系统。使用反斜杠操作比较与其他方法的结果,并分解目的。

创建一个5×5幻方矩阵,并且求解线性系统 斧头 = b 所有的元素b等于65,神奇的总和。因为65是一个神奇的总和此矩阵(所有的行和列添加至65岁),为预期的解决方案X为1s的向量。

A =魔法(5);B = 65个*也是(5,1);X = A \ B
X =5×11.0000 1.0000 1.0000 1.0000 1.0000

对于一般方阵,反斜线运算符计算使用LU分解的线性系统的解。LU分解表示一个如三角矩阵,以及涉及三角矩阵的线性系统的产品很容易使用替换公式求解。

要通过重新计算反斜杠的答案,计算的LU分解一个。然后,使用的因素来解决两个三角形线性系统:

ÿ= L \(P * B);X = U \ÿ;

之前求解线性系统可以提高性能当许多线性系统将得到解决,因为分解只发生一次,并不需要重复预先计算的矩阵因素的这种方法。

[L,U,P] = LU(A)
L =5×51.0000 0 0 0 0 0.7391 1.0000 0 0 0 0.4783 0.7687 1.0000 0 0 0.1739 0.2527 0.5164 1.0000 0 0.4348 0.4839 0.7231 0.9231 1.0000
U =5×523.0000 5.0000 7.0000 14.0000 16.0000 0 20.3043 -4.1739 -2.3478 3.1739 0 0 24.8608 -2.8908 -1.0921 0 0 0 19.6512 18.9793 0 0 0 0 -22.2222
P =5×50 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0
ÿ= L \(P * B);X = U \ÿ
X =5×11.0000 1.0000 1.0000 1.0000 1.0000

分解对象也是求解线性使用专门的因式分解系统是有用的,因为你会得到很多的预先计算的矩阵因素的性能优势,但你不需要知道如何使用的因素。使用与分解对象'鲁'键入来重新创建相同的结果。

DA =分解(A,'鲁');X = DA \ b
X =5×11.0000 1.0000 1.0000 1.0000 1.0000

计算稀疏矩阵的LU分解和验证身份L *Ù= P * S * Q

创建巴克明斯特-富勒网格球顶的连通图的60逐60稀疏邻接矩阵。

S =巴基;

计算的LU分解小号使用稀疏矩阵的语法与四个输出返回的行和列置换矩阵。

[L,U,P,Q] = LU(S);

置换的行和列小号P * S * Q并将结果与​​三角因素比较乘以。它们的差的1范数是舍入误差内,这表明L *Ù= P * S * Q

Ë= P * S * Q  -  L * U;范数(即,1)
ANS = 5.7732e-15

计算矩阵的LU分解。通过返回行排列作为载体代替基体节省内存。

创建1000-通过-1000随机矩阵。

A =兰特(1000);

计算与存储为矩阵的置换信息的LU分解P。将结果与存储为矢量置换信息比较p。所述基质越大,则越有效存储器它是使用置换矢量。

[L1,U1,P] = LU(A);[L2,U2,P] = LU(A,'向量');谁是Pp
名称大小字节类属性P 1000×1000 8000000双P 1x1000的8000双

使用置换矢量也节约了后续操作的执行时间。例如,你可以使用以前的LU因式分解求解线性系统 斧头 = b 。虽然从置换矢量和置换矩阵所万博 尤文图斯获得的解决方案是等效的(高达舍入),使用置换载体中的溶液通常需要一点点的时间更少。

比较具有和没有列置换计算的稀疏矩阵的LU分解的结果。

加载west0479矩阵,这是一个实数值479通过-479稀疏矩阵。

加载west0479A = west0479;

计算的LU分解一个通过调用有三个输出。产生L型和U因素的间谍阴谋。

[L,U,P] = LU(A);副区(1,2,1)间谍(L)标题(“L因素”)副区(1,2,2)间谍(U)标题(“U因素”

现在,计算的LU分解一个运用具有四个输出,其中的置换的列一个减少的因素非零元素的个数。产生的因素是不是如果不使用列置换稀疏得多。

[L,U,P,Q] = LU(A);副区(1,2,1)间谍(L)标题(“L因素”)副区(1,2,2)间谍(U)标题(“U因素”

输入参数

全部收缩

输入矩阵。一个在尺寸上可以完全或稀疏以及正方形或矩形。

数据类型:|
复数支持:万博1manbetx

稀疏输入矩阵。小号在尺寸上可以为正方形或矩形。

数据类型:
复数支持:万博1manbetx

枢转用于稀疏矩阵的阈值,指定为一个标量或两个元素的矢量。有效值是在区间[0 1]。您指定的方式脱粒取决于有多少产出在调用指定

  • 对于三个输出或更少脱粒必须是一个标量,默认值是1.0

  • 对于四个输出或更多脱粒可以是标量或两个元素的矢量。默认值是[0.1 0.001]。如果您指定脱粒作为标量,那么只替换载体中的第一个值。

在高层次上,此输入使您可以准确度和总执行时间之间的权衡。较小的值脱粒往往会造成稀疏LU因素,但解决的办法可能会变得不准确。较大的值会导致更准确的解决方案(但不总是),通常在总的工作和内存使用率的增加。

选择第一上的输出参数的数目和第二基于所述基体的性质的枢转策略而因式分解。在所有情况下,设定阈值(一个或多个),以1.0导致局部枢转,而将它们设置为0使枢转以仅基于所得矩阵的稀疏性来选择。的所有值大号具有的绝对值升/分钟(脱粒)或更少。

  • 三个或更少的输出参数- 该算法选择的对角的枢轴,如果它满足方程式

    第(j,j)的> = THRESH *最大(ABS(A(j:米,J)))
    否则,它选择包含绝对值最大的元素的行。

  • 对称战略的枢转- 如果小号是方形稀疏矩阵用基本上对称的结构,大致非零对角,然后使用对称枢转策略。对于这个策略,算法选择对角线支点Ĵ如果满足不等式:

    A(I,J)> = THRESH(2)*最大(ABS(A(j:米,J)))
    如果对角项未能做到这一点,那么选择稀疏列一世满足下式:
    A(I,J)> = THRESH(1)*最大(ABS(A(j:米,J)))

  • 非对称战略的枢转- 如果小号不满足要求为对称枢转的策略,然后采用了非对称策略。在这种情况下,选择稀疏列一世满足下式:

    A(I,J)> = THRESH(1)*最大(ABS(A(j:米,J)))
    的价值1.0对于脱粒(1)结果在常规的部分枢转。在项大号具有的绝对值1 / THRESH(1)或更少。的第二元件脱粒输入向量不与非对称策略中使用。

注意

在某些罕见的情况下,不正确的分解导致P * S * Q。如果发生这种情况,增加脱粒到最大1.0(正规的部分回转),然后再试一次。

置换输出的形状,指定为'矩阵'要么'向量'。此标志控制返回该行排列P和列置换Q作为置换矩阵或排列的载体。

矩阵时,输出PQ满足这些身份:

  • 三路输出 -P满足P *甲= L * U

  • 四个输出 -PQ满足P * S * Q = L *ù

  • 五个输出 -PQd满足P *(d \ S)* Q = L * U

矢量时,输出PQ满足这些身份:

  • 三路输出 -P满足A(P,:) = L * U

  • 四个输出 -PQ满足S(P,Q)= L * U

  • 五个输出 -PQd满足d(:,P)\ S(:,Q)= L * U

例:[L,U,P] = LU(A, '载体')

输出参数

全部收缩

下三角因子,返回一个矩阵。形式大号取决于是否行排列P返回在一个单独的输出:

  • 如果第三输出P被指定,则大号返回为一个单元下三角矩阵(即,以1s上主对角线下三角矩阵)。

  • 如果第三输出P未指定,则大号返回为一个单元的行的置换下三角矩阵。具体而言,它是产品P'* L的输出中的P大号在三个输出的情况下返回。

上三角因子,返回为上三角矩阵。

行排列,返回置换矩阵,或者,如果'向量'选项被指定,作为置换矢量。使用此输出,以提高计算的数值稳定性。

看到outputForm对于身份是此输出满足的描述。

列置换,返回为置换矩阵,或者,如果'向量'选项被指定,作为置换矢量。使用此输出,以减少在一个稀疏矩阵的因子的补平(非零的数)。

看到outputForm对于身份是此输出满足的描述。

行缩放,返回为对角矩阵。d用于缩放的值在小号这样P *(d \ S)* Q = L * U。通常情况下,但并非总是如此,该行缩放导致一个稀疏的和更稳定的因子。

算法

该LU分解使用高斯消元法的变体来计算。计算一个准确的解决方案依赖于原始矩阵的条件数的值COND(A)。如果基体具有较大的条件数(几乎是奇异的),然后计算分解可能不准确。

的LU分解是在获得与逆的关键步骤INV和行列式DET。它也是与运营商获得的线性方程溶液或矩阵分割的基础\/。这必然意味着的数值限定也存在于这些相关的函数。

扩展功能

也可以看看

|||||||

主题

R2006a前推出