不完全LU分解
ilu(选项)
[l,u] = ilu(a,选项)
[l,u,p] = ilu(a,选项)
ilu
产生一个单位下三角矩阵,一个上三角矩阵和一个排列矩阵。
ilu(选项)
计算的不完全LU分解一个
.选项
是一种输入结构,最多有五个设置选项。字段的命名必须完全如下表所示。可以在结构中包含任意数量的这些字段,并以任意顺序定义它们。任何其他字段都被忽略。
字段名称 |
描述 |
---|---|
|
分解类型。值
如果 |
|
不完全LU分解的滴容差。 的非零项 abs (U (i, j)) > = droptol *规范((:,j)), 除了对角线条目,这些条目无论是否满足条件都将被保留。的条目 abs (L (i, j)) > = droptol *规范((:,j)) / U (j, j)。 |
|
改进的不完全LU分解。值
|
|
如果 |
|
之间的枢轴阈值 |
ilu(选项)
返回L + U-speye(大小(A))
,在那里l
是单位下三角矩阵和吗U
是一个上三角矩阵。
[l,u] = ilu(a,选项)
返回单位较低三角矩阵l
和一个上三角矩阵U
.
[l,u,p] = ilu(a,选项)
返回单位较低三角矩阵l
,一个上三角矩阵U
,和一个置换矩阵P
.
ilu
仅适用于稀疏的方形矩阵。
从稀疏矩阵开始并计算LU分解。
A = gallery('neumann', 1600) + speye(1600);options.type ='crout';options.milu ='行';options.dropol = 0.1;[l,u] = ilu(a,选项);E = e =(大小(a,2),1);常态(a * e-l * u * e)ans = 1.4251e-014
这表明一个
和L * U
,在那里l
和U
由修改后的克罗茨给出ilu
,有相同的行和。
从稀疏矩阵开始并计算LU分解。
A = gallery('neumann', 1600) + speye(1600);选项。类型= 'nofill'; nnz(A) ans = 7840 nnz(lu(A)) ans = 126478 nnz(ilu(A,options)) ans = 7840
这表明一个
有7840
非零的,完全的LU分解126478
诺塞洛斯,以及不完全的LU分解,与0
水平的填写,有7840
非零,等于一个
.
这些不完全因子分解对于用BICG(双共轭梯度)、GMRES(广义最小残差法)等迭代方法求解线性方程组是有用的。
[1] Saad,Yousef,稀疏线性系统的迭代方法, PWS出版公司,1996,第10章-预处理技术。