文档

伊卢

不完整的LU分解

句法

ilu(a,设置)
[l,u] = ilu(a,设置)
[l,u,p] = ilu(a,设置)

描述

伊卢产生一个单元下三角矩阵,上三角基质和置换矩阵。

ilu(a,设置)计算不完整的LU分解一种设置是最多五个设置选项的输入结构。必须如下表所示的命名。您可以在结构中包含任何这些字段,并按任何顺序定义它们。任何其他字段都被忽略。

字段名称

描述

类型

分解类型。值类型包括:

  • 'nofill'(默认) - 通过0填充水平,称为ILU(0)。和类型设置'nofill', 只有米卢使用设置选项;所有其他字段都被忽略了。

  • “ crout”- 执行ILU分解的Crout版本,称为ILUC。和类型设置“ crout”, 只有Droptol米卢使用设置选项;所有其他字段都被忽略了。

  • 'ilutp'- 通过阈值和枢转进行ILU分解。

如果类型未指定,ILU分解与0填充水平是执行的。仅使用类型设置'ilutp'

Droptol

不完全分解的降低耐受性。Droptol是一个非负标量。默认值是0,产生完整的LU分解。

非零条目满足

abs(u(i,j))> = droptol*norm(a(a(:,j)),

除了对角条目外,无论满足标准如何,它们都保留。条目l在通过枢轴缩放之前对局部降低耐受性进行测试,因此对于非齐射率l

abs(l(i,j))> = droptol*norm(a(a(:,j))/u(j,j)。

米卢

修改了不完全的LU分解。值米卢包括:

  • '排'- 生产行-和修改的不完整的LU分解。从上部三角因子的对角线中减去了新成型的因子的新形成柱的条目,,保留列总和。那是,a*e = l*u*e, 在哪里e是一个矢量。

  • 'col'- 生产列和修改的不完整的LU分解。从上部三角因子的对角线中减去了新成型的因子的新形成柱的条目,,保留列总和。那是,e'*a = e'*l*u

  • '离开'(默认值) - 未经修改的不完整的LU分解。

Udiag

如果Udiag1,上三角因子对角线上的任何零都被局部降低耐受性所取代。默认值为0

阈值

枢轴之间的阈值0(力对角线枢转)和1,默认值始终选择列中的最大幅度输入为枢轴。

ilu(a,设置)返回l+u-speye(尺寸(a)), 在哪里l是一个单元下三角矩阵和是上三角矩阵。

[l,u] = ilu(a,设置)返回一个单元下三角矩阵l和上三角矩阵

[l,u,p] = ilu(a,设置)返回一个单元下三角矩阵l,一个上三角矩阵,以及置换矩阵p

限制

伊卢仅在稀疏方形矩阵上工作。

例子

从稀疏矩阵开始,然后计算LU分解。

a =画廊('Neumann',1600) + Speye(1600);setup.type ='Crout';setup.milu ='row';setup.droptol = 0.1;[l,u] = ilu(a,setup);E =一个(大小(a,2),1);norm(A*E-L*U*E)ANS = 1.4251E-014

这表明一种, 在哪里l由修改后的Crout给出伊卢,具有相同的行和。

从稀疏矩阵开始,然后计算LU分解。

a =画廊('Neumann',1600) + Speye(1600);setup.type ='nofill';nnz(a)ans = 7840 nnz(lu(a))ans = 126478 nnz(iLu(a,setup))ans = 7840

这表明一种拥有7840nonzeros,完整的lu分解具有126478nonzeros,以及不完整的LU分解,0填充水平,有7840nonzeros,数量与一种

尖端

这些不完整的因素化可能是通过迭代方法(例如BICG(Biconjugate梯度),GMRE(广义最小残留方法)求解的线性方程系统的预处理。

参考

[1] saad,yousef,稀疏线性系统的迭代方法,PWS出版公司,1996年,第10章 - 预处理技术。

也可以看看

||