(计算数学专业论文)求解大型方程组的反对称预条件迭代法.pdf_第1页
(计算数学专业论文)求解大型方程组的反对称预条件迭代法.pdf_第2页
(计算数学专业论文)求解大型方程组的反对称预条件迭代法.pdf_第3页
(计算数学专业论文)求解大型方程组的反对称预条件迭代法.pdf_第4页
(计算数学专业论文)求解大型方程组的反对称预条件迭代法.pdf_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 带预条件的g m r e s 算法是用来求解大型稀疏非对称问题的一种常用方法。 o e n eh g o l u b 和d e n lsv a n d e r s t r a e t e n 在文献 2 中提出了一种所谓反对称分 裂预条件方法,该预条件方法主要是针对系数矩阵的反对称部分很大时而设计。 在本文中,我们用带有反对称分裂预条件的g m r e s 算法来求解对流扩散问题。在 具体实现该预条件方法时, 2 中采用由不完全q r 分解做预条件的c g n r 算法作 为内迭代算法。虽然这种内迭代算法只需要较少的迭代次数就会收敛,但预先计 算尺以及迭代过程中尺“及尺。与向量乘积的计算都要花费较长的时间。相比之 下,我们发现不做预条件而简单地只用c g n r 算法要节省很多时间,虽然表面看 起来迭代次数多了一些。我们用充分的数值试验说明了经过改进后的带有反对称 分裂预条件的g m r e s 算法求解对流扩散问题是卓有成效的。 ,j-, 关键词:反对称分裂、g m r e s 、c g n r 、预条件、不完全q r 分解。( 妖彳;,; a b s t r a c t t h e ( ;m r e sm e t l l o dw i t hs o m oi o r e c o r d i t i o r l e fis m a l n l yu s e d u os o l v e i a r g os p a r s eu n s y r r m l e t r i c a il ir l e t fs y s t , e f f l s i n1 2 ,g e n eh g l o u ba n dd e n is v a n d e r s t r a e t e na d v a n c e dap r e c o n d i t i o nm e t h o dn a m e d ”s k e w s y m m e t r i c s p l i t t l n gp r e c o n d i t i o r l e f ”,w h i c hw a sd e v is e df o rt h o s em a t r ix e sw h o s e s k e w s y m m e t r i cp a r t sa r em u c hl a t g e rt h a nt h e irs y m m e t r i cp a r t s i nt h is p a p e r ,w eu s et h eg m r e sm e t h o dw i t ht h es k e w s y r n m e t f i cs p l l t , t i n g p r e c o n d i t i o r l e i t os o l v et h ec o r l v cc i o f ld i f l u s i o i lp t - o b l e m t oi m p l e r n e n t t h is p r e c o n d i t i o r i e l - , 2 s u g g e s t e du st ou s et h ec g n r m e t h o dw i t ha p r e c o n d i t i o n e rm a d eb ya r li n c o m p l e l ;eq rd e c o m p o s i t i o no si t s ir l r l e f i t e r a t i o ni l l e t h o d a 1 t h o u g ht h i sir l r e r i t e r a t j o r m e t h o dn e e d so n l yaf e w n u m b e r so fi t e r a t i o t i s t h ec o m p u t a t i o no frb e f o r ei t e : a t i o i l sa n d c o m p u l ;a t i o n sf o rt h ep r o d u c to fr a n ds o m ev e c t o ra l w a y sc o s t ;m u c ht i m e c o m p a r a b l y ,w ef i n dc o n s i d e r a b l et i m ec a r lb er e d u c e dt h r o u g hc u t t in gd o w n t h ep r e c o n d iti o nf o rt h ec g n rm e t h o d t h o u g ht h en u m b e ro fir l r e fi t e r a ti o n s e e m sm o f e p 1 e n t yo fh u m e r i c a le x p e r i m e n t a t i o f i ss h o wt h a tt h eg n i e s m e t h o dw i t ht h es k e w s y m m e t t i cs p l i t t i n gp r e c o n d i t i o n e r a f t e ro u r m o d i f i c a t i o ni st t t o r ee f f e c t i v et os o l v et h ec o n v e c t , i o nd i f l u s o np r o b l e i i l k e yw o r d s :s k e w s y m m e t r i cs p l i t t i n g ,g m i e s ,c g n i ,p r e c o n d i t i o r l e f i n c o r n p l e l ;eq rd e c o m p o s i t i o n 1 引言 流体力学中的对流扩散问题如何进行数值求解,是近年来被广泛关注和研究 的问题。其中当r e y n o l d s 数很大( 对应于粘性系数很小) 时如何改善计算求解 的性态是研究中的重要方面。 一般来说,从数! 芋模型中提出的原始问题具有连续的微分形式,在通过有限 元素法或者有限差分法对其进行离散化后,得到离散形式的线性方程组。原始问 题的具体形式可能会有不同的情况,这样离散化后得到的线性方程组也不尽相 同。但一般来说,该线性方程组的系数矩阵是一个高阶的非对称稀疏矩阵。对于 这样一种大型的非对弥问题,我们采用广义极小残量法 g e n e r a l i z e dm i n i m a l r e s i d u a la l g o r i t h m ,简记为g m r e s ) 来进行求解。6 m r e s 方法是y o u c e fs a a d 和m a r t i nh s c h u l t z 在1 9 8 6 年提出的一种用来求解大型稀疏问题的迭代解法 4 。它的一个突出优点是对线性方程组的系数矩阵没有特殊的要求( 诸如对称、 正定等) ,因而在很多科学与工程计算的问题中具有广泛的适用性。在g m r e s 方 法提出后,很多其他学者和计算数学研究人员对该方法做了广泛深入的研究,对 原始算法进行了多方面的改善和改进,发展了许多派生算法,从而大大丰富了 g m r e s 方法的内涵。例如,h o m e rf w a l k e r 在文献 5 中提出了一种由 h o u s e h o l d e r 变换实现正交化过程的g m r e s 算法,在文献 6 中他又和l uz h o u 一起给出了通过改变正交化过程的初始向量而获得的一种简化的g m r e s 算法; 在文献 7 中,p e t e rn g r o w n 和h o m e rf w a l k e r 深入分析了把g m r e s 方法应 用于奇异方程组的情形,并指出了g m r e s 收敛所需的各种条件;在文献 9 中d c a lv e t t i 等人又导出厂所谓的r r g m r e s 算法。关于g m r e s 算法的其它研究可参 见文献 8 、 1 4 和 1 6 等。 然而,仅仅使用g m r e s 方法并不能完全有效地求解对流扩散问题。当线性方 程组的系数矩阵条件数很大,或者对流扩散问题带有很大的r e y n o l d s 数时,很 多已有的方法以及很多在其它比较普通的情形下能够有效求解对流扩散问题的 算法,都不再表现得令人满意。面对这样一种情况,些学者和研究人员开始致 力于在迭代计算之前进行预条件处理。预条件技术是矩阵计算中一项重要而又常 用的技术,它通过预先对原始方程组做某种简易的变换,而使其后进行的迭代计 算的收敛速度大大提高,迭代次数显著减少。做预条件的方法有很多,针对对流 扩散问题的预条件研究也很广泛,可参见文献 11 、 1 2 、 1 3 、 1 5 等。本文 采用的预条件方法是由6 e n eho o l u b 和d e n i sv a n d e r s t r a e t e n 在文献 2 中提 出的。因为这种预条件是由方程组系数矩阵的对称、反对称分裂导出的,所以我 们称之为“反对称分裂预条件”。由于对流扩散问题中“r e y n o d s 数很大”数值 上对应于“方程组系数矩阵的反对称部分很大”,因此这种预条件方法在求解此 类问题时十分有效。 我们将在2 中先对我们要计算的问题及其离散化的过程做出简要的陈述, 然后在3 中介绍并分析“反对称分裂预条件”方法。该方法在数值实现时需要 汁算s ,我们在4 中先介绍g e n eh6 0 i u b 和d e n isv a n d e r s t f a o t e n 在 2 中提出的用不完全q r 分解作预条件的c g n r 方法,然后对它进行了简化性的改进。 在本文中,我们用大写英文字母表示矩阵,用上面带有箭头的小写英文字母表示 向量,而用普通小写的英文字母或希腊字母表示标量。 2 问题的描述 2 1 原始求解方程 我们要求解的对流扩散方程具有如下形式 一a u + 口w v u = 0 其中“= u ( x ,y ) 是未知函数,是r e y n o l d s 数 以是其它函数,实际上我们取: 一 w = ( 就 ( 21 1 ) 一w 可以是一个常数函数,也可 或者茹= ( : = 。- 。8 。2 ( x x 2 一- 。,x 。) y ( 2 :y 一- y ,1 ) , 无论怎样品都满足:d i v ( w ) = 0 。求解区域是 o ,1 o 甜f 。l = 1 ,b ) 。:。= “f := “ ,;。= 0 。 2 2 中心差分离散化 ( 2 1 2 ) ( 2 1 3 ) 1 ,边界条件是 求解区域是一个j e 方形,我们把横、纵两向都做( + 1 ) 等分,这样整个求 解区域内共有肝2 个求解点,我们用有序对( f ,) 来标识,其中1 i 胛对应于横 轴方向,1 门对应于纵轴方向。离散化过程我们采用五点中心差分格式,即 在( i ,) 处: “,+ l ,j + 甜,l 一2 u , 1 厂一 “刊+ 甜u i 一2 甜u 砌一掰锄一妒 a “j“,+ l ,一“,一l , 氏h ) 2 h o u i“+ i 一甜一1 砂h ) 2 h 其中厶:上,将上面四式代入方程( 2 1 1 ) 并整理有 九+ l 叫一竽a 。) u + i , j - - ( 1 + 竽a 。) ? x l _ l , j - - ( 1 一竽6 。) u l , ;+ i - - ( 1 + 竽 + 4 u ,= 0 t 其中1 i ,2 ,1 ,胛,a 。和6 f ,分别表示口和6 在( ? ,) 处的值。 我们做如下映射: 这样在指标k 处,我们有 一( 1 - 竽砒厂( 1 十竽砒 一( 1 - 鱼f f b , ) 。叫+ 争地一。 + 4 u 女= 0 其中1 k 肝2 ,臼。和钆分别表示口和6 在七处的值。遍历七从l n n 2 ,将这刀2 个方程按次序排列起来,就得到离散化的线性方程组。不难发现,此方程组的系 数矩阵对角元全是4 ,并且每行的非零元素不超过5 个。 3 反对称分裂预条件的分析 3 】反对称分裂预条件的引入 将上一节通过中心差分离散化得到的线性方程组记做爿i = b ,下面我们来 介绍g e n eh g o l u b 和d e n isv a n d e r s t r a e t e n 在文献 2 中提出的所谓反对称分 裂预条件方法。 4 的对称部分是h :兰之笙,反对称部分是s :兰三尘。如果h 非 奇异,那么有: 。“ 彳= h + s t = h ( i + “s ) , ( 3 1 1 ) 如果,+ h 。1 s 也非奇异,比如说fj h sj l , 一u ! ,那么取 口:墨! 坠盘 2 ( 3 2 4 ) 将使得p ( s 。) 0 ,那么按照( 3 2 4 ) 式选取的口将使( 3 2 i ) 式成立。 4j 。的计算 4l 用不完全q r 分解做预条件的c g n r 算法 我们用( 3 1 6 ) 式作为g m r e s 方法的预条件,在实际计算中需要计算s “与 某个向量卢的乘积。实际上,我们求解下面这个方程组: s 牙= 卢。 ( 4 1 1 ) g e n eh g o l u b 和d e n i sv a n d e r s t r a e t e n 在 2j 中指出,用g m r e s 方法直接求解 ( 4 1 1 ) 式效果通常不理想。因为( 4 1 1 ) 式是一个稀疏的非对称问题,因此 还可以考虑用c g n r 方法,即先将( 4 1 1 ) 式变换成如下等价形式: 专t 暮蕴= 暮t p : ( 4 1 2 ) 然后用共轭梯度法( ( :g ) 求解上式。尽管( 4 1 2 ) 式与( 4 1 1 ) 式相比,方程 组系数矩阵的条件数增至原来的平方,然而数值试验表明这仍然是计算s “最有 效的方法。 g e n ehg o l u b 和d e n i sv a n d e r s t r a e t e n 在 2 中提出用基于o i v e n s 变换 的不完全q r 分解作为c g n r 算法的预条件处理,即用g i v e n s 变换求得s 的不完 全q r 分解: s = 鲫+ e 其中q 满足q 7 q = ,。于是有: ;7 箩= r7 r + e 7 e + r 7 q 7 e + e7 q r 。 ( 4 1 3 ) 如果控制不完全分解的精度为j e l f :7 7 l p | | :,m 于l l e l l : 孓1 1 :+ i l e i i :,所以有如 下的估计式: i 孽i r 7 j r 8 。- 2 1 1 e l l : 1 r :+ e e 2 1 1 e l i :1 1 箩1 1 。+ 3 1 1 e l l ; ( 3 7 72 + 2 7 7 ) l j 。 上式表明,可以通过控制不完全q r 分解的精度来控制s2 s 的c h o e s k y 分解的 精度。 用g 1 v e n s 变换对s 做不完全q r 分解主要是依据这样的思路来进行的:对于 季每一列中对角元之下的某个非零元,如果它小于某一事先指定的标准,就直接 舍为零,否则就用g i v e n s 变换把它消成零。同样地,为了避免不必要地增加非 零元的个数,每当处哩完j 的一列后,对相应的行元素进行相同的检查。其严格 的表述是: i f ( 川 f i :) t h e “o 卜0 其中的r 是预先指定的参数,s ,是s 的第列。容易知道,f = 0 时没有元素被 “舍”成零,即进行的是精确的q r 分解;而当f = l 时,所有的非零元都被“舍” 成零,最终得到r = 0 。由于f 的选取直接决定了r 的稀疏性和精确性,所以是 非常关键的。 下一页的表4 1 4 给出了在预先给定f 以后,对s 进行不完全0 r 分解的完 整算法描述,其中只保存r 。 在获得分解式( 4 1 3 ) 中的r 之后,用c g 算法求解下述方程组: 尺一7 箩7 妇一歹= r 。掌7 芦, ( 4 1 5 ) 显然,求解过程中还需要计算r 一1 以及r 。与向量的乘积。在求得其中的未知元 萝= 尺虿以后,有 亨。p = 牙= 尺“夕, 这样就完成了s “p 的计算。 表4 1 4 j 的不完全q r 分解算法描述 r 七一s + o 吐 f o rj :1t o ” f o ri = j + llo i f ( 川 r l l s ,t h e n ,卜o els e g 卜g i v e n s ( r “,_ ) r 卜g 尺 e n d e n d e n d f o ri = it o 门 i f ( 川 r j :) t h e n r 卜0 e n d e n o 4 2 不做预条件的c g n r 算法 在上一节中,我们介绍了 2 中采用的由( 3 1 6 ) 式作预条件的g m r e s 算法 中计算s “的内迭代算法,即用s 的不完全q r 分解作预条件的c g n r 算法。我们 在经过对算法进行了仔细的分析以及充分的数值试验后认为,这种内迭代算法的 实现通常具有昂贵的时间开销。 在我们看来,其昂贵的时间代价主要是由做预条件产生的:首先,在c g n r 迭代开始前要先计算尺。其次,方程组( 4 1 5 ) 的求解需要计算r - 1 及尺“与 向量的乘积,而这并不能通过事先计算出r “得到,而是要在每一步迭代需要时 由直接法( 回代) 或某种迭代法求得。也就是说,要多次计算r 。及尺。与向量 的乘积。另外,在计算尺时要事先选取参数r 。f 不能任意选取,如果f 过大, 会使s 的不完全分解的精确性下降,这样预条件的效果会降低,也就失去了做预 o 条件的意义;而如果z - 取的太小,又会使尺的计算本身时间很长,同时尺的稀疏 性也要下降进而使得每一步内迭代中求解尺。及尺。与向量乘积时的代价增加。 文献:2 中没有指明用什么方法来预先确定f 的取值。而我们在数值试验中发现, f 的驳值随原方程组具体条件的不同变化十分敏感。如果只能通过试探性的计算 来确定f ,那么就相当于计算尺的过程要重复进行,而每计算一次凡的时问代价 通常都很大。 鉴于上述的分析,我们考虑在计算s 1 时不做预条件,而简单地仅仅使用 c g i r 算法。 实际上,c g n r 算法本身是一种非常实用的算法。郑州大学的学者李春光在 3 中对c o n r 算法的性质做了深入的分析。其中最主要的结论是他通过比较c g n r 算法相邻两步迭代中误差向量的范数关系证明了“c g n r 算法是一种误差递减的 算法”。其严格表述如下: 结论4 2 1 :如果i 是4 冤= 6 的精确解,e 4 k = i 一膏。是c g n r 算法第k 步迭代 的误差向量,那么有 峪:,七= 0 , 1 , ( 见 3 ,p r o p o s i t i o n 2 2 ) 。 然而,误差递减这种良好的性质并不是c g n r 算法的特性。我的导师曹志浩 教授在其编著的数值线性代数( 1 9 9 6 年出版) 一书中已经严格地证明了“共 轭梯度法( c g ) 是误差递减的”,即: 结论4 2 2 :用c g 算法求解爿夏= 6 ,若i 是精确解,孟。是c g 算法第k 步迭代 的近似解,那么当f ,时有 眵一吼 眵一孔 ( 见 1 ,定理4 2 ) 。 实际上,如果我们用王”表示爿7 爿i = at b 的精确解,勇。表示c g n r 算法第七 步迭代的近似解,因为c g n r 算法其实就是用c g 算法来求解4 7 a i = 爿7 6 ,那么 由结论4 2 2 就可以知道当f 时有 p 一础 一础。 然而对于非奇异的线性方程组爿膏:石来说,i ”就是元,这样我们就从结论 4 2 2 直接导出了结论4 2 1 ,而不需要像 3 中那样繁琐的证明。也就是说,“误 差递减”是共轭梯度法的性质,而作为c g 类派生算法之一的c g n r 算法秉承了这 一良好的性质。 我们在下面的表4 2 3 中对比了分别用由- 5 ,的不完全q r 分解作预条件的 l g n r 算法和不做预条件的c g n r 算法作为求解s “的内迭代算法时,导致时间开 销增加的因素各是什么。我们将在“5 数值试验”部分表明,用单独的c g n r 算法作为内迭代算法与 2 中的方法相比,能够节省相当多的计算时间。 表4 2 3 导致内迭代算法计算时间增加的因素 c g n r 用不完全q r 分解作预条件不做预条件的c g n r 算法 1 计算r ( 不完全分解过程) 。1 与做预条件相比,迭代次数的增多所 导致的时间增加。 2 每次内迭代中计算月“及月。r 与向量 的乘积。 3 f 的选定( 有可能) 。 5 数值试验 我们全部的数值试验都是在如下的环境下进行的:硬件配置是p e n t i u m i v 1 4 g b ,2 5 6 m bs d r a m ,操作系统是w i n d o w s 2 0 0 0 ,编程工具是m a t l a b6 1 。g m r e s 算法和内迭代算法中的c g n r 都是直接调用m a t l a b 现有的函数库。算法最终的收 敛判别条件是怕一爿剥 1 0 “吲i :g m r e s 算法不用重开始。反对称分裂预条件 和c g n r 算法的预条件都是用函数调用来实现的。为了方便描述,在下文中凡是 谈及内迭代算法时,我们用i n c q r - c g n r 表示文献 2 中提出的由s 的不完全q r 分解做预条件的c g n r 算法;用n o n p r e c g n r 表示本文提出的不做预条件的c g n r 算法。 5 1i n c q r c g n r 算法的实现 当我们用 2 中的方法进行数值试验时,需要决定z - 的取值是略大一些还是 略小一些。换句话说,我们希望由g i v e n s 变换做出的r 具有怎样的稀疏性。为 此,我们引进参数d : ,n n z ( r ) d = n n a ( a ) 其中的n n z ( a ) 表示矩阵a 中非零元的个数。a 是固定的,所以参数d 标识了尺 的稀疏性。一般来说,f 取值变大会使d 变小,反之亦然。 下页的表5 1 1 是w = ( 1 ,2 ) 7 ,内迭代算法用i n c q r c g n r 时的计算数据。 其中“g m r e s ”和“计算月”分别指其花费的时间,单位是秒。“外迭代”表示外 迭代的次数。“内迭代”表示每次外迭代中内迭代次数的近似平均值我们在 数值试验中发现:当这个次数较小时几乎都是一样的;而当它随着差分网格的不 同以及和d 取值的变化而变大时仍然十分接近,会在一个很小的区间里变动, 此时表中记录的是经过简单计算并取整后的平均值。后面的数据表格与此雷同, 不再特殊注明。 表5 i 1 w = ( 1 ,2 ) 7 、内迭代用i n c q r c g n r 矩阵阶数 l o g 。 d外迭代内迭代g m r e s计算尺 113 323 6 0 21 7 6 l 23 3l8 9 4 72 7 6 l 2l1 543 5 5 81 7 8 0 2 1 5 2 5 5 ,6 42 6 3 8 9 6 l 3l61 44 0 7 82 1 1 6 2677 9 5 34 1 0 5 3651 2 2 5 34 9 1 4 4247 25 2 0 0 25 1 7 0 2 544 64 4 3 7 45 9 9 2 34 2 9 2 4 2 5 26 1 2 3 1l4 8 2 1 3 5 2 09 5 9 2 24 8l7 9 6 9 21 4 7 0 5 2l2 43t 6 2 1 l9 5 8 9 22 425 2 0 2 31 5 0 3 l 2 2 0 9 3 1899 1 6 71 u 2 2 2853 0 1 7 81 9 6 4 i 38 44 3 0 2 82 4 9 6 9 42 54 3 94 4 6 8 03 9 8 3 l 342 32 6 7 6 84 3 1 1 6 从表5 1 1 我们可以发现,外迭代次数与d 的取值无关。这是因为d 的取值 决定r 的稀疏性,而r 是作为内迭代算法的预条件矩阵,因此d 的取值对外迭 代没有影响。另外,内迭代的次数在d 取值大时更少因为d 取值大意味着尺 的非零元多,那么预条件的效果就好一些。显然地,d 取值大时尺的计算时间会 更长。而当d 变大时,一方面内迭代的次数会减少,另一方面由于r 的非零元增 多会使计算尺。及r - 7 与向量乘积的时间加长,因而总的计算时间是变长还是变 短要视具体情况而定。从上面的表可以看到,在取l o ,1 0 0 或1 0 0 0 时d 取1 最优;而当取1 0 0 0 0 时d 取得大些计算更快,此时虽然r 。及r 。与向量乘积 的计算时间会更长,但内迭代次数减少的效果更为显著。 下面的表5 1 2 给出的是内迭代算法分别用i n c q r c g n r 和n o n p r ec g n r 时 的计算数据。其中关于i n c q r c g n r 的部分是在d 的不同取值之间选时间最短的。 同样,无论选用哪种内迭代算法,外迭代次数是一样的,故表中作为共同项列出 以供参考。 表5 2 1 i n c q r c g n r 与n o n p r e c g n r 的对比 矩阵 l o g ,o p 外i n c q r c g n r n o n d r e c g n r 阶数迭代 内迭代 g m r e s 计算尺内迭代 g m r e s l3 323 6 0 21 7 6 l41 9 9 9 6 l 21 543 5 5 81 7 8 01 91 7 5 361 44 0 7 82 1 1 61 7 83 5 3 442 92 4 2 5 26 1 2 37 3 87 1 l l4 821 3 5 2 09 5 9 245 2 5 2 2 0 922 431 6 2 1 19 5 8 91 34 3 0 3899 1 6 7 12 9 1 2 3 8 3 3 442 31 0 7 0 7 04 4 9 6 39 3 92 7 9 8 l6 323 3 7 5 63 3 1 7 0 31 1 1 7 3 9 6 923 533 6 4 5 93 3 4 2 41 19 5 0 3l o82 1 2 1 43 5 8 5 39 51 4 2 5 4 5 1 62 7 9 7 1 41 5 0 5 3 38 2 45 3 5 2 可以看到,i n c q r c g n r 的内迭代次数比n o n p r e c g n r 要少,当取值较大 时这个差别十分明显。不过正如我们在4 2 中指出的那样,i n c q r c g n r 要在每 一次内迭代计算中计算尺1 及尺。与向量的乘积。因此尽管i n c q r c g n r 每步外 迭代中内迭代次数更少,但它每步外迭代所需要花费的时间却比n o n p r e c g n r 长很多。另外,i n c q r - c g n r 比n o n p r e - c g n r 还要额外多做步q r 分解,也就是 表中的“计算月”项。可以看到,单单这一项花费的时间就已远远超过了 n o n p r e c g n r 的迭代计算时间。 5 3l v 取非常数函数 表5 3 1 内迭代用n o n p r e c g n r 、w 取不同函数的数据对比 矩阵 l o g i o w = ( 1 ,2 ) 7 w = w 阶数 外迭代内迭代 g m r e s 外迭代内迭代 6 m r e $ 04 l22 3 44 72 2 4 1 l3 341 9 96 233 6 6 9 6 l 21 51 91 7 57 31 26 6 4 361 7 83 5 33 09 91 2 6 7 447 3 87 1 i1 92 8 82 1 6 7 537 8 l7 2 01 93 3 52 5 5 8 o5 925 8 06 826 8 l 】4 8 4 5 2 5 9 33 l o 8 0 2 2 0 9 22 41 34 3 01 3 2 9 2 3 2 0 381 2 38 3 35 87 03 7 8 l 449 3 92 7 9 82 84 3 4l o o 2 5 531 7 3 6 3 79 9 2 65 6 71 2 1 4 9 o 7 721 3 2 08 821 5 3 9 l 6 331 1 1 71 2 332 5 6 4 3 9 6 9 23 5 1 1 9 5 01 9 8 8 6 2 6 4 31 09 51 4 2 59 45 48 2 4 2 458 2 45 3 5 23 84 6 92 4 9 5 2 542 8 7 61 4 5 0 33 38 0 43 7 7 2 5 o1 4 121 1 5 8 61 6 721 9 2 2 5 1 1 2 621 0 0 6 12 3 823 4 2 9 1 1 6 1 2 9 28 867 9 4 24 7 451 0 6 0 2 8 32 04 l5 4 9 5 3 2 02 99 7 4 6 4 474 5 51 8 2 6 31 1 22 9 01 9 5 8 2 2 543 2 3 58 0 3 4 16 l1 6 3 85 7 4 0 2 7 6 j :页的表j 3l 是我们用n o n p r e c g n r 作为内迭代算法求解对流扩散问题 ( 21 1 ) 的计算数锯。其中的“w = w ,”项是指w 取( 2 1 :3 ) 式中的非常数 函数,即: 一f 一8 ( x 二一x ) f 2 y 一1 ) w = i。i 。 i8 ( 2 x 1 ) ( y j y ) j 我们从表中可以看出,相比较而言,w = w ,时反对称分裂预条件的效果不如 w = ( 1 ,2 ) 7 时那样完美。w = ( 1 ,2 ) 7 时外迭代次数是随着的增大严格减小的, 而且不论差分网格如何选取( 即离散化后的矩阵阶数是多少) ,在口很大时( 比 如1 0 0 0 0 以上) 外迭代次数一般都只有几次。而当w = w ,时,外迭代次数并非 随值增加而严格递减,而是先有小幅度增加然后a 减少。并且很大时外迭 代次数会随着矩阵阶数的变大而增加。不过这种差别只是相对而言,总的说来, 用反对称分裂预条件求解对流扩散问题( 2 1 1 ) 还是相当有效的。在内迭代方 面,两者没有本质的差别。当取值很大时,1 4 = w 2 似乎内迭代次数会少一些。 总的计算时间般是w = w ,更长,不过这主要与外迭代次数有关。经过简单的 除法运算可以知道,平均每次外迭代所花费时间w = w ,和w = ( 1 ,2 ) 7 两种情形是 差不多的;在取值很大时w = w ,反而更短。这说明,在w = 1 4 2 ,的情形下,用 n o n p r e c g n r 作为内迭代算法同样是卓有成效的。 参考文献 1 曹志浩数值线性代数,复旦大学出版社1 9 9 6 年6 月第一版。 ! g e n e1 1 g o l u ba n d d e n isv a n d e r s t r a e t e n ,0 nt h ep r e c o n d i t i o n i n go fm a t r ic e s w i t hs k e w s y m m e t r i cs p l i t t i n g s n u m e r i c a lk l g o r i t b m s2 5 :2 2 3 2 3 9 ,2 0 0 0 3 c h u n g u a n gl i ,c g n ri sa ne r r o rr e d u c i n ga l g o r i t h m ,s 【川j s c ic o m p u t v o l2 2 n o6p p2 1 0 9 2 1 1 22 0 0 1 4 y o u s e fs a a da n dm a r t i nhs c h u l t z ,g m r e s :ag e n e r a l i z e dm i n i m a lr e s id u a l a l g o r i t h mf o rs o h ,i n gn o n s y m m e t r i cl i n e a rs y s t e m s ,s i a mj s c i s t a t c o m p u t v o l7n o 3j u l y1 9 8 6 5 h o m e rf w a l k e r ,i m p l e m e n t a t i o no f t h eg m r e sm e t h o du s i n gh o u s e h o l d e r t r a n s f o r m a t i o n s ,s i a mj s c i c o m p u t v o l 、9n o1j a n u a r y1 9 8 8 6 h o m e rf w a l k e ra n dl uz h o u ,a s i m p l e rg m r e s ,n u m e r i c a ll i n e a ra l g e b r aw it h a p p l i c a t i o n s ,v o ll ( 6 ) ,5 7 1 5 8 l ( 1 9 9 4 ) 7 p e t e rn b r o w na n dh o m e rf w a l k e r ,g m r e so n ( n e a r l y ) s i n g u l a rs y s t e m s ,s i a 4 j m a t r i xa n a l a p p l v 0 1 1 8n o 1p p 3 7 5 l ,j a n u a r y1 9 9 7 8 a z e d d i n ee s s a i ,w g h t e df o m a n dg m r e sf o rs o l v i n gn o n s y m m e t r i cl i n e a r s y s t e m s n u m e r i c a la l g o r i t h m s1 8 ( 1 9 9 8 ) 2 7 7 2 9 2 9 d c a l v e r t i ,b l e w isa n dl r e i c h e l ,g m r e s t y p em e t h o d sf o ri n c o n s i s t e n t s y s t e m s ,l i n e a ra l g e b r aa n d l t sa p p l i c a t i o n s3 1 6 ( 2 0 0 0 ) 1 5 7 1 6 9 1 0 la k r u k i e r ,c o n v e r g e n c ea c c e l e r a t i o no ft r i a n g u l a ri t e r a t i r em e t h o d sb a s e d o nt h es k e w s y m m e t r i cp a r to ft h em a t r i x a p p l i e dn u m e r i c a l m a t h e m a t ic s 3 0 ( 1 9 9 9 ) 2 8 卜2 9 0 1 1 h o w a r dc e l m a n ,p r e c o n d i t i o n i n gf o rt h es t e a d y s t a t en a v i e r s t o k e se q u a l i o n s w i t hl o wv i s c o s i t y s i a mjs c ic o m p u t v o l2 0n o 4p p1 2 9 9 1 3 1 6 ,t 9 9 9 1 2 l e i g hl i t “ea n dy o u s e fs a a d ,b l o c kl up r e c o n d i t l o n e r sf o rs y m m e t r i ca n d n o n s y m m e t r i cs a d d l ep

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论