求解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];四、实际上,多重网格法运行速度快的一个主要原因是在经过了粗网格的迭代校正后,重新回到细网格上使用迭代法,初值较只在原始细网格上使用迭代法的迭代值更接近真值。
参考文献:
[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),下面是等式约束.通常解法是引入拉格朗日算子,这里使用来表示算子,得到拉格朗日公式为 是等式约束 ...
随机推荐
- JNDI 配置:JBoss + MySQL
一.JNDI 名词解释 JNDI 是Java 命名和目录接口(Java Naming and Directory Interface,JNDI)的简称.从一开始就一直是 Java 2 平台企业版(JE ...
- Optimizing Performance: Data Binding(zz)
Optimizing Performance: Data Binding .NET Framework 4.5 Other Versions Windows Presentation Founda ...
- 页面显示(pageshow)和页面隐藏(pagehide)事件
Firefox和Opera有一个新特性,名叫“往返缓存”(back-forward cache,或bfcache),可以在用户使用浏览器的“后退”和“前进”按钮时加快页面的转换速度.这个缓存中不仅保存 ...
- 【BZOJ】2237: [NCPC2009]Flight Planning
题意 \(n(1 \le n \le 2500)\)个点的树,求删掉一条边再加上一条边使得还是一棵树,且任意两点最大距离最小. 分析 考虑枚举删掉每一条边,我们只需要考虑如何加边容易求得新树的最大距离 ...
- 读Thinking in java 4
读tij4 ,生活中还是杂事太多,有时候就忘了最初买书来读的初衷,也没了刚开始激情了,为了督促下自己,好好看完一本书,不妨来写写读书笔记吧.
- [CareerCup] 16.4 A Lock Without Deadlocks 无死锁的锁
16.4 Design a class which provides a lock only if there are no possible deadlocks. 有很多方法可以避免死锁的发生,一个 ...
- Android 图片轮播(最简单的)
布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android ...
- 伪类link,hover,active,visited,focus的区别
例一: /*css*/a:link{ color: blue;}a:visited{ color: green;}a:hover{ color: red;}a:focus{ color:blac ...
- tab左右箭头切换(修改后)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- c# winform进入窗口后在文本框里的默认焦点
c# winform 设置winform进入窗口后在文本框里的默认焦点 进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这 ...