主要内容

ichol

不完整的柯列斯基分解

描述

例子

l= ichol (一个)执行完整的柯列斯基分解一个补零。一个必须是一个稀疏的方阵。

例子

l= ichol (一个,选项)执行完整的柯列斯基分解一个选择指定的结构选项

默认情况下,ichol引用下的三角形一个并产生较低的三角因素。

例子

全部折叠

这个示例中生成一个不完整的柯列斯基分解。

从对称正定矩阵,一个:

N = 100;一个= delsq (numgrid (“年代”,N));

一个是二维的,五点离散-拉普拉斯算子在100 - 100平方网格狄利克雷边界条件。的大小一个98 * 98 = 9604(不是10000年的边界网格用于实施狄利克雷条件)。

好完整的柯列斯基分解的分解,只包含非零一样一个包含非零。这种分解是非常廉价的计算。尽管该产品L * L '通常是很不同的吗一个,产品L * L '将匹配一个在它的舍入模式。

L = ichol(一个);规范(L * L ',“摇来摇去”)。/规范(,“摇来摇去”)
ans = 0.0916
规范(A - (L * L ')。* spones (A),“摇来摇去”)。/规范(,“摇来摇去”)
ans = 4.9606 e-17

ichol也可以用于生成完整的柯列斯基分解的阈值下降。宽容下降减少,密度因素倾向于获得更多的产品L * L '往往是更好的近似一个。下面的情节展示不完整的相对误差分解绘制的宽容以及比率下降的密度不完整的完整的柯列斯基的密度因素因素。

n =大小(1);ntols = 20;droptol = logspace (8,0, ntols);全国抵抗运动= 0 (1、ntols);新西兰= 0 (1、ntols);nzComplete = nnz(胆固醇(,“低”));k = 1: ntols L = ichol(一、结构(“类型”,“信息与通信技术”,“droptol”droptol (k)));新西兰(k) = nnz (L);全国抵抗运动(k) =规范(L * L ',“摇来摇去”)。/规范(,“摇来摇去”);结束图重对数(droptol全国抵抗运动,“线宽”2)标题(放的宽容与规范(L * L”、“向后”)。/规范(A,“来回”))

图包含一个坐标轴对象。坐标轴对象以标题的宽容与规范(L * L”、“向后”)/规范(A,“来回”)包含一个类型的对象。

图semilogx (droptol nz. / nzComplete,“线宽”2)标题(“宽容和填充率ichol /胆固醇下降”)

图包含一个坐标轴对象。坐标轴对象以标题的宽容和填充率ichol /胆固醇包含一个类型的对象。

上的相对误差通常是顺序下宽容,虽然这是没有保证的。

这个例子展示了如何使用一个不完整的柯列斯基分解作为预调节器来改善收敛。

创建一个对称正定矩阵,一个

N = 100;一个= delsq (numgrid (“年代”,N));

创建一个不完整的柯列斯基分解的预调节器pcg。使用一个常数向量作为右边。作为基线,执行pcg没有预调节器。

b = 1(大小(A, 1), 1);托尔= 1 e-6;麦克斯特= 100;(x0, fl0 rr0、it0 rv0] = pcg (A, b,托尔,麦克斯特);

请注意,fl0 = 1这表明pcg没有赶的相对剩余的要求公差最大允许迭代。试好完整的柯列斯基分解预调节器。

L1 = ichol(一个);(x1, fl1 rr1、it1 rv1] = pcg (A, b,托尔,麦克斯特,L1, L1的);

fl1 = 0,这表明pcg聚集在59迭代请求的宽容和这样做的价值it1)。然而,由于这个矩阵是一个离散拉普拉斯算子使用修改不完全乔里斯基可以创建一个更好的预调节器。修改不完全乔里斯基分解构造一个近似因子分解,保持常数向量的运算符的作用。也就是说,规范(* e-L * (L ' * e))将约为零e = 1(大小(A, 2), 1)尽管规范(L * L”、“向后”)/规范(A,“来回”)不接近于零。没有必要为这种语法指定类型nofill是默认的,但它是良好的实践。

选项。类型=“nofill”;选项。michol =“上”;L2 = ichol(选项);e = 1(大小(A, 2), 1);规范(* e-L2 * (L2‘* e))
ans = 3.7983 e-14
(x2, fl2 rr2、it2 rv2] = pcg (A, b,托尔,麦克斯特,L2, L2”);

pcg收敛(fl2 = 0),但只有38个迭代。策划三个收敛历史显示了收敛。

semilogy(0:麦克斯特,rv0. /规范(b),“b”。);持有semilogy (0: it1 rv1. /规范(b),“r”。);semilogy (0: it2 rv2. /规范(b),“k”。);传奇(“没有预调节器”,“集成电路(0)”,“麦克风(0)”);

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。一个或多个行显示的值只使用这些对象标记代表没有预调节器,IC(0),麦克风(0)。

情节显示修改后的不完整的柯列斯基预调节器创建一个更快的收敛。

你也可以尝试不完整的柯列斯基分解的阈值下降。下面的图显示了收敛的pcg与预调节器由各公差。

L3 = ichol(一、结构(“类型”,“信息与通信技术”,“droptol”1 e 1));[x3, fl3 rr3、it3 rv3] = pcg (A, b,托尔,麦克斯特,L3, L3”);L4 = ichol(一、结构(“类型”,“信息与通信技术”,“droptol”,1依照));[x4, fl4 rr4、it4 rv4] = pcg (A, b,托尔,麦克斯特、L4、L4的);L5 = ichol(一、结构(“类型”,“信息与通信技术”,“droptol”1 e - 3));[x5, fl5 rr5、it5 rv5] = pcg (A, b,托尔,麦克斯特、L5、L5”);图semilogy(0:麦克斯特,rv0. /规范(b),“b -”,“线宽”2);持有semilogy (0: it3 rv3. /规范(b),b -。,“线宽”2);semilogy (0: it4 rv4. /规范(b),“b——”,“线宽”2);semilogy (0: it5 rv5. /规范(b),”乙:“,“线宽”2);传奇(“没有预调节器”,“ICT (1 e 1)”,“ICT(1依照)”,“ICT (1 e - 3)”,“位置”,“东南”);

图包含一个坐标轴对象。坐标轴对象包含4线类型的对象。这些对象代表没有预调节器,ICT (1 e 1) ICT(1依照)ICT (1 e - 3)。

注意不完全乔里斯基预调节器采用公差1)依照表示为ICT(1飞行)

与填零不完整的柯列斯基一样,阈值下降分解(即可以受益于修改。选项。michol =“上”)由于矩阵起源于一个椭圆偏微分方程。与麦克风(0),修改后的基于阈值的下降不完整的柯列斯基将保存预调节器的作用常数向量,规范(* e-L * (L ' * e))将大约0。

这个例子演示了使用diagcomp选择ichol

正定矩阵可以分解成不完整的柯列斯基并不总是存在。下面的代码构造一个随机的对称正定矩阵,试图解决一个线性系统使用pcg

S = rng (“默认”);= sprandsym(1000 1依照1的军医,1);rng(年代);b =全(sum (A, 2));(x0, fl0 rr0、it0 rv0] = pcg (A, b, 1 e - 6100);

自收敛不是获得,尝试构建一个不完整的柯列斯基预调节器。

L = ichol(结构体(“类型”,“信息与通信技术”,“droptol”1 e - 3));
错误使用ichol遇到负值的主。

如果ichol分解如上所述,您可以使用diagcomp选择构建一个转移不完整的柯列斯基分解。而构建l这样L * L '接近一个,ichol与对角补偿结构l这样L * L '接近M = A +α*诊断接头(诊断接头(A))没有明确的形成。不完全分解总是存在对角占优矩阵,α可以找到呢对角占优。

α= max(总和(abs (A), 2)。/诊断接头(A)) 2
α= 62.9341
L1 = ichol(一、结构(“类型”,“信息与通信技术”,“droptol”1 e - 3,“diagcomp”、α));(x1, fl1 rr1、it1 rv1] = pcg (A, b, e - 6100, L1, L1的);

在这里,pcg仍未收敛所需的迭代次数内所需的公差,但是如下图所示,收敛性好pcg这比没有预调节器预调节器。选择一个更小的α也许会有帮助。有一些实验,我们可以解决一个适当的值α

α= 1;L2 = ichol(一、结构(“类型”,“信息与通信技术”,“droptol”1 e - 3,“diagcomp”、α));(x2, fl2 rr2、it2 rv2] = pcg (A, b, e - 6100, L2, L2”);

现在,pcg收敛,可以显示融合历史与每个预调节器的阴谋。

semilogy (0:100 rv0. /规范(b),“b”。);持有;semilogy (0:100 rv1. /规范(b),“r”。);semilogy (0: it2 rv2. /规范(b),“k”。);传奇(“没有预调节器”,“α\ \大约63”,“\α= 1。”);包含(的迭代次数);ylabel (的相对剩余的);

图包含一个坐标轴对象。坐标轴对象包含迭代数,ylabel相对剩余包含3线类型的对象。一个或多个行显示的值只使用这些对象标记代表没有预调节器,\α\大约63年,\α= 1。。

输入参数

全部折叠

输入矩阵,指定为一个稀疏的方阵。

柯列斯基分解选项,指定为一个结构有五个领域:

字段名 总结 描述
类型 类型的分解

表明这味道不完整的柯列斯基来执行。在这一领域的有效值“nofill”“信息与通信技术”。的“nofill”变体执行不完整的柯列斯基与补零(集成电路(0))。的“信息与通信技术”变体执行不完整的柯列斯基与阈值下降(ICT)。默认值是“nofill”

droptol 公差类型时下降“信息与通信技术”

负的标量用作宽容当执行ICT下降。较小的元素大小比当地下降公差从产生的因素除了对角元素从未放弃。当地的宽容在一步下降j分解的规范((结束,j), 1) * droptol“droptol”是忽略了如果“类型”“nofill”。默认值是0

michol 显示不完整的柯列斯基是否执行修改

指示是否修改不完全乔里斯基(MIC)执行。场可能“上”“关闭”。当执行麦克风,对角补偿了元素执行的关系* e = L * L‘* e在哪里e = 1(大小(A, 2), 1)。默认值是“关闭”

diagcomp 执行补偿不完整的柯列斯基与指定的系数

真正的非负标量作为全球对角线的转变α形成完整的柯列斯基因素。而不是上执行不完整的柯列斯基一个的分解+α*诊断接头(诊断接头(A))就形成了。默认值是0

形状 确定哪些三角形并返回引用

有效的值“上”“低”。如果“上”是指定的,只有上面的三角形的一个引用和R了,这样一个是近似的‘* R。如果“低”是指定的,只有较低的三角形的一个引用和l了,这样一个是近似的L * L '。默认值是“低”

例子:选项。类型=“nofill”;选项。michol =“上”;L = ichol(选项);

提示

  • 这个例程的因素可能是有用的作为一个系统的预调节器解决线性方程组的迭代方法等pcgminres

  • ichol只适用于稀疏的方阵。

引用

[1]萨阿德,尤瑟夫。“预处理技术。”稀疏线性系统的迭代方法。PWS出版公司,1996。

[2]Manteuffel,又“正定线性系统的一个不完整的分解技术。”数学。第一版。34岁,473 - 497年,1980年。

扩展功能

版本历史

介绍了R2011a