文档

鲁矩阵分解

描述

例子

lU陆]= (一个分解全矩阵或稀疏矩阵一个变成上三角矩阵U和一个置换的下三角矩阵l这样a = l * u

例子

lUP陆]= (一个也返回一个排列矩阵P这样L = P ' * *.使用此语法,l单位下是三角形和吗U是上三角形。

例子

lUP陆]= (一个outputForm返回P在由outputForm.指定outputForm作为“向量”返回P作为置换载体,这样a(p,:) = l * u

例子

lUP陆]= (年代因式分解稀疏矩阵年代进入单位下三角矩阵l,一个上三角矩阵U,一个行置换矩阵P,以及列置换矩阵,这样P * * Q = L * U

lUPD陆]= (年代也返回一个对角线缩放矩阵D这样p *(d \ s)* q = l * u.通常,行缩放会导致更稀疏和更稳定的分解。

___陆]= (年代阈值指定所使用的转轴策略的阈值使用任何前面的输出参数组合。属性的默认值和要求取决于指定的输出参数的数量阈值输入是不同的。看看阈值详细的参数描述。

例子

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

例子

全部折叠

计算矩阵的LU分解并检查产生的因素。lu因分是一种分解矩阵的方式 一个 变成上三角矩阵 U ,一个下三角矩阵 l ,和一个置换矩阵 P 这样 巴勒斯坦权力机构 .这些矩阵描述了在矩阵上执行高斯消除所需的步骤,直到它处于缩小的行梯形形式。的 l 矩阵包含所有乘子,和排列矩阵 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-0.3000 -0.0400 1.0000 0.5000 1.0000 0
你=3×310.0000 -7.0000 00 2.5000 5.0000 00 6.2000

倍增再造的因素一个.对于双输入语法,合并排列矩阵P直接进入l因素,这样l被归还真的是P ' * L因此a = l * u

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

您可以指定三个输出以将置换矩阵与乘法器分开l

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

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

创建一个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 1.0000

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

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

y = l \(p * b);x = u \ y;

这种在求解线性系统之前预先计算矩阵因子的方法可以在需要求解多个线性系统时提高性能,因为分解只发生一次,不需要重复。

陆(L U P) = (A)
L =5×51.0000 0000 0.7391 1.0000 000 0.4783 0.7687 1.0000 00 0.1739 0.2527 0.5164 1.0000 0 0.4348 0.4839 0.7231 0.9231 1.0000
你=5×524.8608 -2.8908 -1.0921 000 19.6512 18.9793 0000 -22.2222
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 1.0000

分解Object对于使用专门的因数分解来求解线性系统也很有用,因为预计算矩阵因数可以获得许多性能优势,但不需要知道如何使用这些因数。属性使用分解对象“陆”键入以重新创建相同的结果。

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

计算稀疏矩阵的LU分解,并验证身份L * U = P * *

创建Buckminster-Fuller圆顶的连通图的60 × 60稀疏邻接矩阵。

S =巴基;

的逻辑单元分解年代使用稀疏矩阵语法和四个输出返回行和列排列矩阵。

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

释放行和列年代P * *并将结果与三角形因子相乘进行比较.它们差异的1-范数在舍入误差范围内,表明L * U = P * *

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

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

创建1000×1000个随机矩阵。

一个=兰德(1000);

将排列信息存储为矩阵,计算逻辑单元分解P.将结果与存储为向量的置换信息进行比较p.矩阵越大,使用置换向量的内存有效越多。

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

使用置换向量还可以节省后续操作的执行时间。例如,您可以使用前面的逻辑单元分解来解线性系统 斧头 b .尽管从置换向量和置换矩阵获金宝搏官方网站得的溶液等同于(直到圆形OFF),但是使用置换载体的解决方案通常需要较少的时间。

比较了有列排列和没有列排列的稀疏矩阵逻辑单元分解的计算结果。

加载west0479矩阵,它是一个实值479 × 479稀疏矩阵。

负载west0479A = West0479;

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

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

现在,计算LU因子分解一个使用有四个输出,它对列进行置换一个减少因素中的非安利诺斯人数。由于不使用柱偏移,所产生的因素很小。

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

输入参数

全部折叠

输入矩阵。一个可以是完整的,也可以是稀疏的,也可以是正方形或长方形的。

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

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

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

稀疏矩阵的阈值阈值,指定为标量或两个元素矢量。有效值是间隔[0 1].你指定的方式阈值取决于呼叫中指定了多少个输出

  • 三个产出或更少阈值必须是标量,默认值是1.0

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

在高级别,此输入使您可以在准确性和总执行时间之间进行权衡。较小的值阈值往往会导致更稀疏的LU因素,但解决方案可能会变得不准确。较大的值可以得到更精确的解决方案(但并不总是如此),并且通常会增加总工作和内存使用量。

首先在输出参数的数量上选择枢转策略,并在矩阵的属性上进行分解。在所有情况下,将阈值设置为1.0导致部分枢转,同时将它们设置为0导致只根据结果矩阵的稀疏性选择枢轴。所有的值l绝对价值1 /分钟(打)或更少。

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

    A(j,j) >= max(abs(A(j:m,j)))
    否则,它选择包含绝对值最大元素的行。

  • 对称旋转策略——如果年代稀疏矩阵是否具有多数对称结构和多数非零对角线使用对称的枢转策略。对于此策略,该算法选择对角线枢轴j如果它满足不平等:

    A(i,j) >= thresh(2) * max(abs(A(j:m,j)))
    如果对角线条目失败此测试,那么选择稀疏性行满足不等式:
    a(i,j)> =阈值(1)* max(abs(a(j:m,j))))

  • 不对称枢转策略——如果年代那么不满足对称枢转策略的要求使用非对称策略。在这种情况下,选择稀疏性行满足不等式:

    a(i,j)> =阈值(1)* max(abs(a(j:m,j))))
    的值1.0打(1)结果是传统的部分枢轴。条目l绝对价值1 / thresh(1)或更少。第二个元素阈值输入向量不用于非对称策略。

请注意

在一些罕见的情况下,错误的分解会导致P * *.如果发生这种情况,增加阈值达到最大值1.0(常规的部分旋转),然后再试一次。

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

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

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

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

  • 五个输出,P,D满足p *(d \ s)* q = l * u

作为vectors.,产出P满足这些身份:

  • 三个输出-P满足a(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的下三角矩阵)。

  • 如果第三个输出P没有指定,那么l作为单位下三角矩阵的行排列返回。具体来说,它就是产品P ' * L的输出Pl在三个输出情况下返回。

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

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

看到outputForm对于该输出满足的标识的描述。

列排列,作为排列矩阵返回,如果“向量”选择选项,作为置换向量。使用此输出在稀疏矩阵的因素中减少填充(非系统数)。

看到outputForm对于该输出满足的标识的描述。

行缩放,作为对角矩阵返回。D用于缩放年代这样p *(d \ s)* q = l * u.通常,但并不总是,行缩放导致稀疏和更稳定的分解。

算法

LU因子分解是用一种高斯消去法计算的。精确解的计算依赖于原始矩阵的条件数的值COND(A).如果矩阵具有大的条件号(它几乎奇异),则计算的分解可能不准确。

逻辑单元分解是求逆的关键步骤发票行列式依据.它也是用这些算子求得线性方程解或矩阵除法的基础/.这就必然意味着也存在于这些相关函数中。

扩展能力

之前介绍过的R2006a