Godunov's 定理
Godunov's theorem
转自Wiki
简介
在数值计算和计算流体动力学中,Godunov定理(Godunov's theorem 或 Godunov's order barrier theorem)是采用高精度数值方法计算偏微分方程中的重要数学定理。
定理陈述为:
采用线性数值格式求解偏微分方程时,如果数值解不产生新的极值,那么格式精度最多为1阶。
Sergei K. Godunov 教授首先在其博士阶段(莫斯科国立大学)证明这个定理。这是他在应用数学研究中最具影响的工作,对科学与工程及其他领域特别是计算流体力学(CFD)有深刻的影响。
定理
同样可参考Wesseling (2001)。
假设一个连续体问题由PDE描述,并且使用数值方法在进行计算,只进行一步,均匀网格,\(M\)个节点,积分算法,显式或者隐式。如果 \(x_j = j\Delta x\),\(t^n = n\Delta t\),那么一个数值格式可以表示为
\sum^{M}_{m = 1}\beta_m \varphi_{j+m}^{n+1} = \sum^{M}_{m = 1}\alpha_m \varphi_{j+m}^{n}
\end{equation}\]
换句话说,计算值 \(\varphi_{j}^{n+1}\) 在时刻 \(n+1\) 节点 \(j\) 是当前时刻解 \(n\) 的线性函数形式。我们假设 \(\beta_m\) 唯一的决定了 \(\varphi_{j}^{n+1}\)。现在,既然上述方程代表了 \(\varphi_{j}^{n+1}\) 与 \(\varphi_{j}^{n}\) 之间线性关系,那么我们可以采用线性转换得到下面等价形式,
\varphi_{j}^{n+1} = \sum^{M}_{m = 1}\gamma_m \varphi_{j+m}^{n}
\end{equation}\]
定理1. 单调保持性(Monotonicity preserving)
若格式(2)是单调保持的,那么
\gamma_m \ge 0
\end{equation}\]
证明:Godunov (1959)
case 1:充分性
假设 \(\varphi_{j}^{n}\) 是随 \(j\) 单调递增的,那么,由于 $\varphi_{j}^{n} \le \varphi_{j+1}^{n} \le \cdots \le \varphi_{j+m}^{n} $,因此
\varphi_{j}^{n+1} - \varphi_{j-1}^{n+1} = \sum^{M}_{m = 1}\gamma_m (\varphi_{j+m}^{n} - \varphi_{j+m-1}^{n}) \ge 0
\end{equation}\]
即 $\varphi_{j}^{n+1} \le \varphi_{j+1}^{n+1} \le \cdots \le \varphi_{j+m}^{n+1} $,得证。
case 2:必要性
由矛盾证明必要性。
假设 \(\gamma_p < 0\),\(p\) 为某个节点,采用如下单调增加的序列 \(\varphi_{j}^{n}\)
\varphi_{j}^{n} = 0, \quad i < k; \quad \varphi_{j}^{n} = 1, \quad i \ge k.
\end{equation}\]
根据方程(2)可以得到
\varphi_{j}^{n+1} - \varphi_{j-1}^{n+1} = \sum^{M}_{m = 1}\gamma_m (\varphi_{j+m}^{n} - \varphi_{j+m-1}^{n}) = \left\{
\begin{array}{ll}
0, & [j+m \ne k] \cr
\gamma_m, & [j+m =k]
\end{array}
\right.
\end{equation}\]
现在令 \(j = k - p\), 那么
\varphi_{k-p}^{n+1} - \varphi_{k-p-1}^{n+1} = \gamma_p(\varphi_{k}^{n} - \varphi_{k-1}^{n}) < 0
\end{equation}\]
这与 \(\varphi_{j}^{n+1}\) 的单调性矛盾,得证。
定理2. Godunov’s Order Barrier Theorem
若使用单步,二阶精度求解对流方程
\frac{\partial \varphi}{\partial t} + c \frac{\partial \varphi}{\partial x} = 0, \quad t>0
\end{equation}\]
只有当
\sigma = |c|\frac{\Delta t}{\Delta x} \in \mathcal{N}
\end{equation}\]
时,格式才是单调保持的,
其中 \(\sigma\) 为柯朗数(Courant–Friedrichs–Lewy condition number)
证明:Godunov (1959)
假设初始解为
\varphi(0,x) = \big(\frac{x}{\Delta x} - \frac{1}{2} \big)^2 - \frac{1}{4}
\end{equation}\]
那么其精确解为
\varphi(t,x) = \big(\frac{x - ct}{\Delta x} - \frac{1}{2} \big)^2 - \frac{1}{4}
\end{equation}\]
假设格式至少有二阶精度,那么第0步与第1步精确解如下
\varphi_j^1 = \big(j - \sigma - \frac{1}{2} \big)^2 - \frac{1}{4}, \quad \varphi_j^0 = \big(j - \frac{1}{2} \big)^2 - \frac{1}{4}
\end{equation}\]
将方程(2)代入,得:
\big(j - \sigma - \frac{1}{2} \big)^2 - \frac{1}{4} = \sum_m^M \gamma_m \big[ \big(j+m - \frac{1}{2} \big)^2 - \frac{1}{4} \big]
\end{equation}\]
假设格式具有单调保持性质,那么根据定理1,\(\gamma_m \ge 0\)
因此
\big(j - \sigma - \frac{1}{2} \big)^2 - \frac{1}{4} \ge 0
\end{equation}\]
假设 \(\sigma>0\),并且 \(\sigma \notin \mathcal{N}\),那么存在 \(j\) 使得 \(j>\sigma>(j-1)\),这使得
\big(j - \sigma - \frac{1}{2} \big)^2 - \frac{1}{4} = (j- \sigma)(j - \sigma - 1) < 0
\end{equation}\]
这与方程(16)矛盾,因此得证。
这里 \(\sigma = |c|\frac{\Delta t}{\Delta x} \in \mathcal{N}\) 仅是用于理论证明,并无法将其当作实际计算时系数,CFL为整数情况在实际计算中并不实用。
这里,单调保持的格式即保证不出现新的极值
参考
Godunov's 定理的更多相关文章
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
- Mittag-Leffler定理,Weierstrass因子分解定理和插值定理
Mittag-Leffler定理 设$D\subset\mathbb C$为区域,而$\{a_{n}\}$为$D$中互不相同且无极限点的点列,那么对于任意给定的一列自然数$\{k_{n}\}$, ...
- 【转】Polya定理
转自:http://endlesscount.blog.163.com/blog/static/82119787201221324524202/ Polya定理 首先记Sn为有前n个正整数组成的集合, ...
- hdu 4704 Sum (整数和分解+快速幂+费马小定理降幂)
题意: 给n(1<n<),求(s1+s2+s3+...+sn)mod(1e9+7).其中si表示n由i个数相加而成的种数,如n=4,则s1=1,s2=3. ...
- poj1006Biorhythms(同余定理)
转自:http://blog.csdn.net/dongfengkuayue/article/details/6461298 本文转自head for better博客,版权归其所有,代码系本人自己编 ...
- CF451E Devu and Flowers (隔板法 容斥原理 Lucas定理 求逆元)
Codeforces Round #258 (Div. 2) Devu and Flowers E. Devu and Flowers time limit per test 4 seconds me ...
- 大组合数:Lucas定理
最近碰到一题,问你求mod (p1*p2*p3*……*pl) ,其中n和m数据范围是1~1e18 , l ≤10 , pi ≤ 1e5为不同的质数,并保证M=p1*p2*p3*……*pl ≤ 1e18 ...
- SPOJ HIGH Highways ——Matrix-Tree定理 高斯消元
[题目分析] Matrix-Tree定理+高斯消元 求矩阵行列式的值,就可以得到生成树的个数. 至于证明,可以去看Vflea King(炸树狂魔)的博客 [代码] #include <cmath ...
- 洛谷 P2735 电网 Electric Fences Label:计算几何--皮克定理
题目描述 在本题中,格点是指横纵坐标皆为整数的点. 为了圈养他的牛,农夫约翰(Farmer John)建造了一个三角形的电网.他从原点(0,0)牵出一根通电的电线,连接格点(n,m)(0<=n& ...
随机推荐
- 在kivy中加图片
from kivy.app import App from kivy.uix.scatterlayout import ScatterLayout from kivy.uix.image import ...
- JVM:GC Roots
JVM:GC Roots 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 JVM 垃圾回收的时候如何确定垃圾 什么是垃圾 简单来说就是内存中已经不再被使用的空间就 ...
- [no_code][Alpha]发布声明报告
项目 内容 2020春季计算机学院软件工程(罗杰 任健) 2020春季计算机学院软件工程(罗杰 任健) 作业要求 发布声明 我们在这个课程的目标是 设计出一个OCR表单处理软件 这个作业在哪个具体方面 ...
- PM技术分享——《构建之法》初步实践
软件理论 软件=程序+软件工程:软件开发活动(构建管理.源代码管理.软件设计.软件测试.项目管理)相关的内容的完成,才能完成把整个程序转化成为一个可用的软件的过程. 软件企业=软件+商业模式 软件开发 ...
- Noip模拟21(持续翻车)2021.7.20
读题总是读错是不是没救了... T1 Median 中位数:按顺序排列的一组数据中居于中间位置的数. 能用上的高亮符号都用上了... 当时忘了就离谱.... 理解什么是中位数(真是个憨憨)后就可以开始 ...
- Noip模拟20 2021.7.19
T1 玩具 题目读错意思直接报零... 拼接方式没读懂以为是个数学题,用卡特兰数,可是的确想多了 数据范围表达出你怎么暴力都行,选择$n^3,dp$ 相当于一片森林,每次多加一条边就合并成一棵树 在$ ...
- SkyWalking配上告警更优秀
前言 对于监控系统来说,不可能让人一直盯着监控看板,而更多的是以自动提醒的方式,比如邮件.短信或微信推送等,当达到或超出预设的告警指标时,就自动发送消息提醒,下面就来说说如何配置SkyWalking的 ...
- 整数转化 牛客网 程序员面试金典 C++ Python
整数转化 牛客网 程序员面试金典 C++ Python 题目描述 编写一个函数,确定需要改变几个位,才能将整数A转变成整数B. 给定两个整数int A,int B.请返回需要改变的数位个数. 测试样例 ...
- 『学了就忘』Linux基础命令 — 19、目录操作的相关命令
目录 1.ls命令 2.cd命令 (1)绝对路径和相对路径 (2)cd命令的简化用法 3.pwd命令 4.mkdir命令 5.rmdir命令 常用目录操作的相关命令: ls命令 cd命令 pwd命令 ...
- [WPF] 使用三种方式实现弧形进度条
1. 需求 前天看到有人问弧形进度条怎么做,我模仿了一下,成果如下图所示: 当时我第一反应是可以用 Microsoft.Toolkit.Uwp.UI.Controls 里的 RadialGauge 实 ...