求解PDE的多重网格法(MG)
多重网格法相对于普通的Jacobi迭代或者G-S迭代等能够得到和未知数的个数成线性的高效运行时间的主要原因在于:迭代初值的一步步接近真值和G_S方法的前面几步的快速收敛性。
先看一张图[1]:

这张图说明了以下几点:一、G-S迭代法在开始几步迭代时收敛速度很快,但是随着步数的增加收敛速度逐渐减慢;二、第一条性质和求解的方程未知数的个数无关,尤其是在最开始的收敛速度很快的几步;三、未知数个数越少,最终收敛速度越快,如图中的绿线(这个可以从另一个角度来理解,一般情况下,求解未知数个数少的方程显然比求解未知数个数多的方程容易地多)。
再看一系列图片的结果(这里只截取其中的几个)[2]:


观察上面几个图,会发现随着迭代步数的增加,图像的右半侧变化越来越小,比如上面的第4个图到第6个图。这就是有的文献中[3]说的迭代方法可以迅速地将摆动误差(高频分量,上图中右半侧部分)衰减,但对那些低频分量,迭代法的效果不是很显著。
有了以上的铺垫,下面的几个问题就相对容易理解了。一、既然随着迭代步数的增加,对于那些低频分量的效果很差,那么有没有其他的方法来解决这个问题呢?一个方法是将问题转化到粗网格上关于误差方程在使用G-S迭代方法迭代几步,而粗网格的高频对应细网格的低频,这样的话,误差的收敛速度相对来说快很多;二、如何进行粗细网格的转化?简言之,使用限制算子(从粗网格到细网格)和插值算子(从细网格到粗网格);三、在多重网格法中,既然G-S方法为什么能奏效,那么其他的迭代法如Jacobbi方法或者SOR方法能借用过来吗?不行,在多重网格法的使用中,只有G-S迭代法或者JOR迭代法(一种加权形式的Jacobbi迭代法)符合要求,而其他的迭代法则不符合要求,这可以使用双Fourier变换以及复变函数的知识来证明[4];四、实际上,多重网格法运行速度快的一个主要原因是在经过了粗网格的迭代校正后,重新回到细网格上使用迭代法,初值较只在原始细网格上使用迭代法的迭代值更接近真值。
55)H6F%{25[A.jpg)
参考文献:
[1]http://www.ams.sunysb.edu/~hcchen/ams528_hw5_1.html
[2]http://www.cs.berkeley.edu/~demmel/cs267/lecture25/lecture25.html
[3]http://blog.renren.com/share/75144792/13005621357
[4]《微分方程数值分析基础教程》,(英)伊则莱斯著,刘晓艳等译,清华大学出版社,2005年
求解PDE的多重网格法(MG)的更多相关文章
- PDE工具箱的简单使用
转载自Here matlab的PDE工具箱的简单使用 问题选择 边界条件选择 菜单按钮和简单使用 命令行输入pdetool,打开GUI编辑界面如下: 注意到工具栏上,就是我们要用到的,从左到右依次使用 ...
- 1.5 Scipy:高级科学计算
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&am ...
- 如何设置fvOptions【翻译】
翻译自:CFD-online 帖子地址:http://www.cfd-online.com/Forums/openfoam-pre-processing/121763-how-set-fvoption ...
- 多重网格法简介(Multi Grid)
原文链接 多重网格法是一种用于求解方程组的方法,可用于插值.解微分方程等. 从专业角度讲多重网格法实际上是一种多分辨率的算法,由于直接在高分辨率(用于求解的间隔小)上进行求解时对于低频部分收敛较慢,与 ...
- Matlab学习——求解微分方程(组)
介绍: 1.在 Matlab 中,用大写字母 D 表示导数,Dy 表示 y 关于自变量的一阶导数,D2y 表示 y 关于自变量的二阶导数,依此类推.函数 dsolve 用来解决常微分方程(组)的求解问 ...
- LibTorch | 使用神经网络求解一维稳态对流扩散方程
0. 写在前面 本文将使用基于LibTorch(PyTorch C++接口)的神经网络求解器,对一维稳态对流扩散方程进行求解.研究问题参考自教科书\(^{[1]}\)示例 8.3. 目录 0. 写在前 ...
- 0-1背包问题蛮力法求解(c++版本)
// 0.1背包求解.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #define ...
- 4. SVM分类器求解(2)
最优间隔分类器(optimal margin classifier) 重新回到SVM的优化问题: 我们将约束条件改写为: 从KKT条件得知只有函数间隔是1(离超平面最近的点)的线性约束式前面的系数,也 ...
- 3. SVM分类器求解(1)——Lagrange duality
先抛开上面的二次规划问题,先来看看存在等式约束的极值问题求法,比如下面的最优化问题: 目标函数是f(w),下面是等式约束.通常解法是引入拉格朗日算子,这里使用来表示算子,得到拉格朗日公式为 是等式约束 ...
随机推荐
- [转载] Spring MVC - 处理器拦截器
5.1.处理器拦截器简介 Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器)类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理. ...
- ZOJ3201 Tree of Tree(树形DP)
题目大概求一棵树中大小为k的子树的最大权和. dp[u][k]表示以u为根的子树中包含u结点的大小为k的子树的最大权和,然后树上背包转移转移很容易.. #include<cstdio> # ...
- C#中==与Equals的区别
1.字符串: string s1 = "test"; string s2 = "test"; , ); object s4 = s3; Console.Writ ...
- jquery layer弹出层插件
http://www.51xuediannao.com/js/jquery/jquery_layer/layer.html
- BZOJ3692 : 愚蠢的算法
两个函数相同等价于不存在长度为$3$的下降子序列. 先考虑随意填的部分,设$f[i][j]$表示考虑了$[i,n]$,下降子序列第$2$项的最小值的是这里面第$j$个的方案数,转移则考虑往序列里插数字 ...
- HDU 2853 (KM最大匹配)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2853 题目大意:二分图匹配费用流.①最大匹配②最小原配变动 解题思路: 如果去掉第二个要求,那么就是裸 ...
- CSS抗锯齿 font-smoothing 属性介绍
CSS3里面加入了一个“-webkit-font-smoothing”属性. 这个属性可以使页面上的字体抗锯齿,使用后字体看起来会更清晰舒服. 加上之后就顿时感觉页面小清晰了. 淘宝也在用哦! 它有三 ...
- 【URAL】1960. Palindromes and Super Abilities
http://acm.timus.ru/problem.aspx?space=1&num=1960 题意:给一个串s,要求输出所有的s[0]~s[i],i<|s|的回文串数目.(|s|& ...
- Android -- 闹钟服务的使用(单次闹钟)
1. 效果图
- vs2013单元测试第二部分
上次的随笔说还没弄懂,现在已经弄懂,就让我说说我的方法吧. 1.点击文件——>新建——>项目——>c#——>控制台应用程序,确定,之后如图所示 2.在一定位置写上要进行单元检测 ...