24小时热门版块排行榜    

查看: 2508  |  回复: 50
本帖产生 1 个 数学EPI ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xjw0413

铜虫 (初入文坛)

[交流] 【讨论】预调件共轭梯度法(PCG) 已有4人参与

有限元计算经常碰到大型稀疏矩阵,由于此类线性方程组通常条件数是比较大的,方程组的性态不好,所以最好用迭代方法求解,比方说是预调件共轭梯度法,但此方法在选择预调件矩阵时似乎没有一个同一的标准,大多推荐的是采用incomplete LU decomposition做为预调件矩阵。incomplete LU decomposition的计算方法似乎又有很多种。
1. incomplete LU decomposition 的计算时间应该比 LU decomposition要快速的多吧,不然直接用LU decomposition不就解出来了吗,又何必再来PCG迭代呢?
2. 采用PCG方法的前提应该是系数矩阵对称、正定吧,因为其原理是一个相当于势函数的东西取极小值。那对于非正定的系数矩阵能求解吗,我构造了几个非正定的,有的似乎是能够收敛到正确结果的。

希望各位虫用解答和讨论。
回复此楼

» 猜你喜欢

The life I want, there's no short cut.
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)

★ ★ ★ ★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
小雨萌萌: 金币+5, 3Q 2012-09-03 13:01:48
引用回帖:
2405363楼: Originally posted by mastergxm at 2012-08-05 04:51:58
f1/77/905677_1344167710_647.jpg
先求解(5)式,得到y之后,再求解(4)式,就可得到x,但是(4)、(5)式的系数矩阵不对称,CG法显然又不能求解,所以感觉这也就不是PCG了。第二种理解是直接用ILU分解后得到的L和U ...

就是你所说的先求解(5)式,得到y之后,再求解(4)式,这里因为L和U都是三角矩阵,直接求解的计算量很小,求解y和x的时候,按顺序计算各个分量即可,这里是不需要使用CG法。之前说的两个相关的方程组,就是指可以轻易地直接求解的(5)和(4)式。

事实上,P的应用,就是求解一个形如Py=r的方程组,这里也可以用其它的办法,ILU是一种比较廉价的做法,也经常见用(代数)多重网格法。还有些时候,构造出来的P可能会有特殊结构,使得Py=r非常易解,比如P是三对角矩阵。

你的理解有些偏差。CG法里应用preconditioner所需要的不一定是显式的P,算法里事实上只用到Py=r里的y,这个y总是用尽可能低廉的算法达到合适的精度,这里如何求解y会比较需要经验。CG求解的是Ax=b这个方程组,而如果利用precondioner的话,CG算法的每一步都要求解一个Py=r的线性方程组,这是两个不同的层级。在Py=r这个级别上,对于算法的高效性要求更高,而对精度的要求相对要低点,所以才会容许使用ILU分解这种近似算法。当然,你也可以直接用CG方法求解Py=r到适当的精度,但是这个时候,这里的CG法和求解Ax=b的CG法已经是一个嵌套的关系了。
40楼2012-08-06 00:24:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 51 个回答

saladin983

铁杆木虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
lovibond(金币+1): 鼓励交流 2011-06-18 10:34:45
1、还有改良条件数、数值稳定性的考虑
2、系数矩阵非正定的话,迭代过程中应该出现残量上升的情况,能够求解只能算是运气,个人以为实在迭代到负方向之前程序就已经终止。非正定的情况下通常用另一种Krylov子空间迭代法——GMRES求解。
2楼2010-09-06 22:58:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xjw0413

铜虫 (初入文坛)

引用回帖:
Originally posted by saladin983 at 2010-09-06 22:58:01:
1、还有改良条件数、数值稳定性的考虑
2、系数矩阵非正定的话,迭代过程中应该出现残量上升的情况,能够求解只能算是运气,个人以为实在迭代到负方向之前程序就已经终止。非正定的情况下通常用另一种Krylov子空间 ...

“个人以为实在迭代到负方向之前程序就已经终止”,你的意思是说,设定判断标准,如果残量变大就终止程序并报错吗?
我试一试你推荐的那个方法。
谢谢你了!
The life I want, there's no short cut.
3楼2010-09-07 14:04:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
lovibond(金币+1): 鼓励耐心交流 2011-06-18 10:35:05
引用回帖:
Originally posted by xjw0413 at 2010-09-07 08:04:33:

“个人以为实在迭代到负方向之前程序就已经终止”,你的意思是说,设定判断标准,如果残量变大就终止程序并报错吗?
我试一试你推荐的那个方法。
谢谢你了!

在特定精度下终止程序实际上就是在一定的子空间内取得了解的近似。我的意思是你得到看似正确的解可能是因为这个子空间还没有包含任何系数矩阵的负曲率方向,这种情况下能得到满足精度要求的一个近似解似乎也很自然。一旦侦测到一个负的方向,迭代序列很可能因此发散。具体的表现是什么,还是需要比较严谨的推导。总之这种情况下用CG得到的结果是没有说服力的,这个不是改变终止准则就能修正的。
4楼2010-09-07 16:06:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 290求调剂 +8 材料专硕调剂; 2026-02-28 9/450 2026-03-01 12:46 by 闭眼看蓝天
[考研] 0856化工专硕求调剂 +6 董boxing 2026-03-01 6/300 2026-03-01 12:45 by houyaoxu
[考研] 321求调剂一志愿东北林业大学材料与化工英二数二 +3 虫虫虫虫虫7 2026-03-01 6/300 2026-03-01 11:50 by gaoxiaoniuma
[考研] 调剂 +3 简木ChuFront 2026-02-28 3/150 2026-03-01 11:46 by 王伟要上岸啊
[考研] 材料类求调剂 +8 wana_kiko 2026-02-28 8/400 2026-03-01 11:44 by 王伟要上岸啊
[考研] 求调剂 +5 repeatt?t 2026-02-28 5/250 2026-03-01 11:43 by 王伟要上岸啊
[考研] 317一志愿华南理工电气工程求调剂 +6 Soliloquy_Q 2026-02-28 11/550 2026-03-01 11:14 by 歌liekkas
[考研] 291分工科求调剂 +7 science饿饿 2026-03-01 8/400 2026-03-01 10:43 by sunny81
[硕博家园] 2025届双非化工硕士毕业,申博 +3 更多的是 2026-02-27 4/200 2026-03-01 10:04 by ztg729
[考研] 0856求调剂285 +6 吕仔龙 2026-02-28 6/300 2026-03-01 10:03 by wang_dand
[考研] 272求调剂 +4 田智友 2026-02-28 4/200 2026-03-01 06:43 by 刘兵
[考研] 285求调剂 +6 满头大汗的学生 2026-02-28 6/300 2026-03-01 06:29 by Trying]
[考研] 材料调剂 +4 爱擦汗的可乐冰 2026-02-28 4/200 2026-03-01 00:38 by 猫猫球alter
[考研] 307求调剂 +4 73372112 2026-02-28 6/300 2026-03-01 00:04 by ll247
[考研] 304求调剂 +3 52hz~~ 2026-02-28 5/250 2026-03-01 00:00 by 52hz~~
[考博] 26申博 +4 想申博! 2026-02-26 4/200 2026-02-28 21:37 by limorning
[考研] 264求调剂 +3 巴拉巴拉根556 2026-02-28 3/150 2026-02-28 21:31 by gaoxiaoniuma
[考研] 298求调剂 +8 人间唯你是清欢 2026-02-28 11/550 2026-02-28 20:26 by L135790
[考研] 276求调剂 +3 路lyh123 2026-02-28 4/200 2026-02-28 19:45 by 路lyh123
[高分子] 求环氧树脂研发1名 +3 孙xc 2026-02-25 11/550 2026-02-28 16:57 by ichall
信息提示
请填处理意见