24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1225  |  回复: 5

yanrenyi

铜虫 (初入文坛)

[交流] 【求助】多重网格预处理子如何构造?已有2人参与

对于最简单的椭圆方程
-a u_{xx}-u_{yy}=f,
其中a是一常数。

我想用Krylov子空间法求解上述方程离散后的线性系统,在求解之前用多重网格进行预处理,请问这个预处理子怎么构造?
非常感谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)

yanrenyi(金币+2):感谢! 2010-05-31 17:05:47
预处理子?你是说preconditioner?建议把线性方程贴上来。

[ Last edited by saladin983 on 2010-5-28 at 18:34 ]
2楼2010-05-28 18:09:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yanrenyi

铜虫 (初入文坛)

引用回帖:
Originally posted by saladin983 at 2010-05-28 18:09:15:
预处理子?你是说preconditioner?建议把线性方程贴上来。

[ Last edited by saladin983 on 2010-5-28 at 18:34 ]

就是 preconditioner, 考虑的是如下的各项异性方程

我自己设计了一个preconditioner, 想和多重网格preconditioner的预处理效果做一个比较。即将该方程离散(我用的有限差分(中心差分)方法),得到一线性系统Ax=b, 然后对该系统分别用我设计的方法和多重网格进行预处理,比较预处理后的线性系统系数矩阵的条件数。我现在不会构造多重网格preconditioner, 希望您能给予帮助,非常感谢!!!
3楼2010-05-31 17:04:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)


yanrenyi(金币+10): 2010-06-02 16:13:53
javeey(金币+1):谢谢解答 2010-06-02 20:40:39
引用回帖:
Originally posted by yanrenyi at 2010-05-31 11:04:24:



就是 preconditioner, 考虑的是如下的各项异性方程

我自己设计了一个preconditioner, 想和多重网格preconditioner的预处理效果做一 ...

所谓多重网格的preconditioner,实际上就是在粗网格上求方程的近似解(比较典型的是用几步Gauss-Seidel迭代求解),然后用来作为preconditioner,实现和分析都比显式的矩阵形式的preconditioner要复杂一些。这一块我不敢说太熟悉,也不知道你了解多少,不好展开说。推荐一本参考书吧,P. Wesseling的 an introduction to multigrid methods,不厚,我手头有本1999年版的,貌似2004年又有一版。多说一句,用多重网格的方法直接构造solver或者用它构造preconditioner本质上区别不大。

此外,我不知道你自己的算法是什么样子的,你也可以大致说一下。如果你只关心条件数,那多重网格或许是很好的选择,但是通常情况下我们还会考虑preconditioner应用的计算代价。当然,如果你的问题尺度不大,那就无所谓了。

[ Last edited by saladin983 on 2010-5-31 at 15:03 ]
4楼2010-05-31 20:34:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yanrenyi

铜虫 (初入文坛)

引用回帖:
Originally posted by saladin983 at 2010-05-31 20:34:08:


所谓多重网格的preconditioner,实际上就是在粗网格上求方程的近似解(比较典型的是用几步Gauss-Seidel迭代求解),然后用来作为preconditioner,实现和分析都比显式的矩阵形式的preconditioner要复杂一些。这 ...

我对多重网格的了解:读过王烈衡和许学军老师编的有限元方法的数学基础那本书,听过许老师关于该方法的讲课,知道方法的基本原理,会编写最基本的多重网格程序。再复杂的就不清楚了。

我构造的 preconditioner 类似于一种块形式的 hierarchical basis 方法,可以将我上面写的那个方程离散后的系数矩阵的条件数(系数epsilon非常小时)降低到 O(1)。
5楼2010-06-02 16:13:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)

引用回帖:
Originally posted by yanrenyi at 2010-06-02 10:13:26:



我对多重网格的了解:读过王烈衡和许学军老师编的有限元方法的数学基础那本书,听过许老师关于该方法的讲课,知道方法的基本原理,会编写最基本的多重网格程序。再复杂的就不清楚了。

我构造的 precondi ...

O(1)是很好的结果。就看你要比什么了?就像我前面说的,一个preconditioner的设计首先当然要让线性系统有更好的谱,同时还要保证应用的计算代价足够低。举个极端的例子而言,Ax=b这个系统里,如果A是对称正定的话,那你直接用A作preconditioner可以直接让条件数变成1,但是这样的话迭代的时候每步都相当于求解一个系数矩阵相同的系统了。
6楼2010-06-03 02:00:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yanrenyi 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见