陆
LU矩阵分解
语法
描述
(___陆]= (___,
返回outputForm
)P
和问
在指定的形式outputForm
。指定outputForm
作为“向量”
返回P
和问
作为排列向量。您可以使用任何输入参数的组合在以前的语法。
例子
矩阵的LU分解
计算一个矩阵的LU分解并检查结果的因素。LU分解是一种将一个矩阵分解的方法 成一个上三角矩阵 ,一个下三角矩阵 和一个置换矩阵 这样 。这些矩阵描述所需的步骤来执行高斯消去法的矩阵,直到行简化阶梯形。的 矩阵包含所有的乘数,置换矩阵 占行交换。
创建一个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分解解决线性系统
解决线性系统通过执行一个LU分解和使用因素来简化问题。比较的结果与其他方法使用反斜杠操作符分解
对象。
创建一个5-by-5幻方矩阵和解决线性系统
的所有元素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分解
计算一个稀疏矩阵的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分解来解决线性系统 。虽然从排列向量和置换矩阵获金宝搏官方网站得的解决方案是等价的(凑整)解决方案使用排列向量通常需要少一点的时间。
减少稀疏矩阵分解的代替者
比较的结果计算稀疏矩阵的LU分解,不列排列。
加载west0479
矩阵,这是一个实值479 - 479稀疏矩阵。
负载west0479一个= west0479;
计算的LU分解一个
通过调用陆
有三个输出。生成间谍阴谋的L和U因素。
陆(L U P) = ();次要情节(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因子”)
输入参数
一个
- - - - - -输入矩阵
矩阵
输入矩阵。一个
可以全部或稀疏的正方形或者矩形的大小。
数据类型:单
|双
复数的支持:金宝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
(常规部分旋转),再试一次。
outputForm
- - - - - -的形状排列输出
“矩阵”
(默认)|“向量”
的形状排列输出,指定为“矩阵”
或“向量”
。这个标志控制是否陆
返回行排列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
——下三角因子
矩阵
下三角的因素,作为一个矩阵返回。的形式l
取决于行排列P
返回在一个单独的输出:
如果第三输出
P
是指定的,那么l
返回作为一个单位下三角矩阵(即,一个下三角矩阵主对角线和1 s)。如果第三输出
P
没有指定,那么l
返回的row-permutation单位下三角矩阵。具体地说,它是产品P ' * L
的输出P
和l
返回的三个输出情况。
U
——上三角因子
矩阵
上三角因子,作为一个上三角矩阵返回。
P
——行排列
向量|矩阵
行排列,作为置换矩阵或返回,如果“向量”
指定选项,作为排列向量。使用这个输出提高数值计算的稳定性。
看到outputForm
身份的描述,这个输出满足。
问
——列排列
向量|矩阵
列置换,置换矩阵或返回,如果“向量”
指定选项,作为排列向量。使用这个输出减少填写(非零)因素的稀疏矩阵。
看到outputForm
身份的描述,这个输出满足。
D
——行缩放
对角矩阵
行缩放,返回为一个对角矩阵。D
用于范围值年代
这样P * (D \ S) * Q = L * U
。通常,但不总是,行扩展导致一个稀疏的和更稳定的分解。
算法
LU分解的计算使用高斯消去法的变种。计算一个准确的解决方案依赖于原始矩阵的条件数的价值气孔导度(A)
。如果矩阵有一个很大的条件数(这几乎是单数),然后计算分解可能不准确。
获得的LU分解是一个关键的一步逆发票
和行列式依据
。它也是线性方程的基础解决方案或矩阵与运营商部门获得\
和/
。这必然意味着数值的限制陆
也存在于这些相关的功能。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
代码生成不支持稀疏矩阵输入的这个函数。金宝app
GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。
使用笔记和限制:
代码生成不支持稀疏矩阵输入的这个函数。金宝app
线程环境
在后台运行代码使用MATLAB®backgroundPool
与并行计算工具箱™或加速代码ThreadPool
。
这个函数完全支持线程的环境。金宝app有关更多信息,请参见MATLAB函数线程环境中运行。
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
分布式阵列
分区大数组在内存使用并行计算集群的工具箱相结合™。
版本历史
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。