主要内容

LU矩阵分解

描述

例子

(l,U陆]= (一个)因式分解的完整或稀疏矩阵一个成一个上三角矩阵U和一个交换下三角矩阵l这样一个= L * U

例子

(l,U,P陆]= (一个)还返回一个置换矩阵P这样L = P ' * *。这个语法,l单位下三角和吗U是上三角。

例子

(l,U,P陆]= (一个,outputForm)返回P在指定的形式outputForm。指定outputForm作为“向量”返回P等一个排列向量:一个(P) = L * U

例子

(l,U,P,陆]= (年代)因式分解稀疏矩阵年代到一个单位下三角矩阵l,一个上三角矩阵U,一行排列矩阵P和一个列置换矩阵,这样P * * Q = L * U

(l,U,P,,D陆]= (年代)还返回一个对角线缩放矩阵D这样P * (D \ S) * Q = L * U。通常,row-scaling导致一个稀疏的和更稳定的分解。

(___陆]= (年代,)指定阈值的旋转受雇于策略使用任何之前的输出参数组合。根据指定的输出参数数量,默认值和要求输入是不同的。看到参数描述细节。

例子

(___陆]= (___,outputForm)返回P在指定的形式outputForm。指定outputForm作为“向量”返回P作为排列向量。您可以使用任何输入参数的组合在以前的语法。

例子

全部折叠

计算一个矩阵的LU分解并检查结果的因素。LU分解是一种将一个矩阵分解的方法 一个 成一个上三角矩阵 U ,一个下三角矩阵 l 和一个置换矩阵 P 这样 巴勒斯坦权力机构 = 。这些矩阵描述所需的步骤来执行高斯消去法的矩阵,直到行简化阶梯形。的 l 矩阵包含所有的乘数,置换矩阵 P 占行交换。

创建一个3×3矩阵和计算因素。

A = [10 7 0 3 2 6 5 1 5];
陆[L U] = (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 0 0 5.0000 2.5000 6.2000

将重建的因素一个。两个输入语法,包含了置换矩阵P直接进入l因素,这样l返回真P ' * L因此一个= L * U

L * U
ans =3×3-3.0000 2.0000 6.0000 5.0000 -1.0000 - 5.0000 10.0000 - -7.0000 0

您可以指定三个输出分离置换矩阵的乘数l

陆(L U P) = (A)
L =3×31.0000 0 0 0 -0.3000 -0.0400 1.0000 0.5000 - 1.0000
U =3×310.0000 - -7.0000 0 0 0 0 5.0000 2.5000 6.2000
P =3×31 0 0 0 0 1 0 1 0
P ' * L * U
ans =3×3-3.0000 2.0000 6.0000 5.0000 -1.0000 - 5.0000 10.0000 - -7.0000 0

解决线性系统通过执行一个LU分解和使用因素来简化问题。比较的结果与其他方法使用反斜杠操作符分解对象。

创建一个5-by-5幻方矩阵和解决线性系统 斧头 = b 的所有元素b等于65,神奇的总和。自65年以来的魔法和这个矩阵(所有的行和列添加到65),预期的解决方案x是一个向量的1 s轨道。

一个=魔法(5);b = 65 * 1 (5、1);x = A \ b
x =5×11.0000 1.0000 1.0000 1.0000 1.0000

对于通用的方阵,反斜杠符计算解决方案使用LU分解的线性系统。LU分解表达一个三角矩阵的乘积,涉及三角矩阵的线性系统使用替换公式很容易解决。

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

y = L \ (P * b);x = U \ y;

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

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

分解对象还解决线性系统使用专门的分解是非常有用的,因为你得到许多预先执行矩阵的性能优势因素但是你不需要知道如何使用的因素。使用分解对象“陆”类型重新创建相同的结果。

dA =分解(,“陆”);x = dA \ b
x =5×11.0000 1.0000 1.0000 1.0000 1.0000

计算一个稀疏矩阵的LU分解和验证身份L * U = P * *

创建一个60-by-60稀疏连接图的邻接矩阵的巴克明斯特·富勒穹顶。

S =巴基;

计算的LU分解年代用稀疏矩阵语法四个输出返回矩阵行和列排列。

(L U P, Q) = lu (S);

排列的行和列年代P * *并比较结果相乘的三角因素L * U。1-norm的区别是在舍入误差,表明L * U = P * *

e = P * * Q - L * U;规范(e, 1)
ans = 5.7732 e15汽油

计算一个矩阵的LU分解。节省内存通过返回行排列作为一个向量,而不是一个矩阵。

创建一个1000 - 1000随机矩阵。

一个=兰德(1000);

计算LU分解排列信息存储为一个矩阵P。比较结果的排列信息存储为一个向量p。矩阵越大,更多的内存效率它是使用排列向量。

陆(L1, U1, P) = ();陆(L2, U2, p) = (,“向量”);谁Pp
类属性名称大小字节P 1000 x1000 8000000双P 8000 x1000双

使用一个排列向量也可以节省在后续操作中执行时间。例如,您可以使用前面的LU分解来解决线性系统 斧头 = b 。虽然从排列向量和置换矩阵获金宝搏官方网站得的解决方案是等价的(凑整)解决方案使用排列向量通常需要少一点的时间。

比较的结果计算稀疏矩阵的LU分解,不列排列。

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

负载west0479一个= west0479;

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

陆(L U P) = ();次要情节(1、2、1)间谍(L)标题(“L因素”次要情节(1、2、2)间谍(U)标题(“U因子”)

图包含2轴对象。坐标轴对象与标题1 L因素包含一个类型的对象。坐标轴对象与标题2 U因子包含一个类型的对象。

现在,计算的LU分解一个使用有四个输出,排列的列一个减少非零的因素。由此产生的因素比如果不使用列排列稀疏的。

(L U P, Q) = lu (A);次要情节(1、2、1)间谍(L)标题(“L因素”次要情节(1、2、2)间谍(U)标题(“U因子”)

图包含2轴对象。坐标轴对象与标题1 L因素包含一个类型的对象。坐标轴对象与标题2 U因子包含一个类型的对象。

输入参数

全部折叠

输入矩阵。一个可以全部或稀疏的正方形或者矩形的大小。

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

稀疏矩阵输入。年代可以是正方形或长方形的大小。

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

稀疏矩阵,旋转阀值指定为一个标量或双元素向量。有效值的间隔[0 1]。你指定的方式取决于有多少输出调用中指定:

  • 三个输出或更少,必须是一个标量,默认值是什么1.0

  • 四个输出或更多,两个元素可以是一个标量或矢量。默认值是(0.1 - 0.001)。如果您指定作为一个标量,那只替换第一个值的向量。

在高级别上,这个输入使您权衡精度和总执行时间。较小的值往往导致陆稀疏的因素,但解决方案会变得不准确。较大的值会导致一个更准确的解决方案(但不总是),而且通常总工作和内存使用量的增加。

选择一个枢轴策略首先基于输出参数的数量和第二属性矩阵的映像。在所有情况下,设置阈值(s)1.0导致部分旋转,而设置0使枢轴点选择只基于结果的稀疏矩阵。所有的值l有绝对的价值吗1 /分钟(打)或更少。

  • 三个或更少的输出参数——算法选择对角线主如果它满足的方程

    (j, j) > =打*马克斯(abs ((j: m j)))
    否则,它选择的行包含元素最大绝对值。

  • 对称旋转策略——如果年代广场是一个稀疏矩阵与对称结构和大部分非零对角,呢使用对称旋转的策略。对于这个策略,算法选择对角线主j如果它满足不等式:

    (i, j) > =打(2)*马克斯(abs ((j: m j)))
    如果对角线项失败这个测试选择的行满足不等式:
    (i, j) > =打(1)*马克斯(abs ((j: m j)))

  • 非对称旋转策略——如果年代不对称旋转策略,满足需求呢使用一个非对称战略。在这种情况下,选择的行满足不等式:

    (i, j) > =打(1)*马克斯(abs ((j: m j)))
    的值1.0打(1)结果在传统部分旋转。条目l有绝对的价值吗1 /打(1)或更少。第二个元素不使用输入向量与非对称战略。

请注意

在一些罕见的情况下,在一个不正确的分解结果P * *L * U。如果发生这种情况,增加最大的1.0(常规部分旋转),再试一次。

的形状排列输出,指定为“矩阵”“向量”。这个标志控制是否返回行排列P和列排列置换矩阵或向量排列。

作为矩阵,输出P满足这些身份:

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

  • 四个输出,P满足P * * Q = L * U

  • 五个输出,P,,D满足P * (D \ S) * Q = L * U

作为向量,输出P满足这些身份:

  • 三个输出-P满足:一个(P) = L * U

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

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

例子:陆(L U P) =(向量),

输出参数

全部折叠

下三角的因素,作为一个矩阵返回。的形式l取决于行排列P返回在一个单独的输出:

  • 如果第三输出P是指定的,那么l返回作为一个单位下三角矩阵(即,一个下三角矩阵主对角线和1 s)。

  • 如果第三输出P没有指定,那么l返回的row-permutation单位下三角矩阵。具体地说,它是产品P ' * L的输出Pl返回的三个输出情况。

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

行排列,作为置换矩阵或返回,如果“向量”指定选项,作为排列向量。使用这个输出提高数值计算的稳定性。

看到outputForm身份的描述,这个输出满足。

列置换,置换矩阵或返回,如果“向量”指定选项,作为排列向量。使用这个输出减少填写(非零)因素的稀疏矩阵。

看到outputForm身份的描述,这个输出满足。

行缩放,返回为一个对角矩阵。D用于范围值年代这样P * (D \ S) * Q = L * U。通常,但不总是,行扩展导致一个稀疏的和更稳定的分解。

算法

LU分解的计算使用高斯消去法的变种。计算一个准确的解决方案依赖于原始矩阵的条件数的价值气孔导度(A)。如果矩阵有一个很大的条件数(这几乎是单数),然后计算分解可能不准确。

获得的LU分解是一个关键的一步逆发票和行列式依据。它也是线性方程的基础解决方案或矩阵与运营商部门获得\/。这必然意味着数值的限制也存在于这些相关的功能。

扩展功能

版本历史

之前介绍过的R2006a