主要内容

ilu

不完全LU分解

语法

ilu(选项)
[l,u] = ilu(a,选项)
[l,u,p] = ilu(a,选项)

描述

ilu产生一个单位下三角矩阵,一个上三角矩阵和一个排列矩阵。

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

字段名称

描述

类型

分解类型。值类型包括:

  • “nofill”(默认) - 与ILU因子变化0填充水平,称为ILU(0)。与类型设置为“nofill”,只有麋鹿使用安装选项;所有其他字段都被忽略。

  • “克劳特”- informs inlu分解的克拉特版本,称为iluc。与类型设置为“克劳特”,只有droptol麋鹿使用设置选项;所有其他字段都被忽略。

  • “ilutp”-执行带有阈值和枢轴的ILU分解。

如果类型,则ILU因子分解为0执行填充级别。旋转只能用类型设置为“ilutp”

droptol

不完全LU分解的滴容差。droptol是一个非负标量。默认值是0,它产生了完整的逻辑单元分解。

的非零项U满足

abs (U (i, j)) > = droptol *规范((:,j)),

除了对角线条目,这些条目无论是否满足条件都将被保留。的条目l在被枢轴缩放之前测试局部落下容差,所以对于非安利斯l

abs (L (i, j)) > = droptol *规范((:,j)) / U (j, j)。

麋鹿

改进的不完全LU分解。值麋鹿包括:

  • “行”-产生行和修正的不完全LU分解。新形成的因子列的条目从上三角形因子的对角线上减去,U,保留列和。也就是说,* e = L *你* e,在那里e是1的向量。

  • “上校”-产生列和修改的不完全LU分解。新形成的因子列的条目从上三角形因子的对角线上减去,U,保留列和。也就是说,e'* a = e'* l * u

  • “关闭”(默认)-不产生修改过的不完整LU因数分解。

乌迪格

如果乌迪格1,上三角因子的对角线上的任何零被局部丢弃容限取代。默认为0

阈值

之间的枢轴阈值0(力对角线旋转)和1,它总是选择列中的最大大小项作为枢轴。

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,在那里lU由修改后的克罗茨给出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章-预处理技术。

扩展功能

另请参阅

||