一阶中心差分格式
有限差分法的基本原理
f (x) ≈
2h
中心二阶差商
′′
f (x+h)−2f (x)+f (x−h)
f (x) ≈
h2
O(h) O(h)
2
O(h )
2
O(h )
其中,h表示网格间距,O(hn)表示截断误差与hn成正比。可以看出,中心差商比前向或后向差商具有更高的精度。
误差分析
有限差分法求得的数值解与真实解之间存在误差,这些误差主要来源于以下几个方面:
常用差分格式
有限差分法中最重要的步骤是构造合适的差分格式来近似微分项。根据泰勒展开式,可以得到以下常用的一阶和二阶差分格式:
差分格式
表达式
截断误差
前向一阶差商
′
f (x+h)−f (x)
f (x) ≈
h
后向一阶差商
′
f (x)−f (x−h)
f (x) ≈
h
中心一阶差商
′
f (x+h)−f (x−h)
截断误差:由于使用有限项级数来近似无穷级数而产生的误差; 舍入误差:由于计算机对小数进行四舍五入而产生的误差;
离散误差:由于对连续区域进行离散化而产生的误差; 稳定性误差:由于数值格式的稳定性不足而导致误差的累积或放大。
为了减小误差,一般可以采取以下措施:
选择更高阶或更精确的差分格式; 减小网格间距或时间步长; 选择合适的初始条件和边界条件; 选择稳定且收敛的数值格式。
+
。 2
h)
为了验证上述方法的正确性,我们取M = 10, N = 100,则原问题可以写为如下形式:
则该问题对应的递推关系式为:
⎧ut (x, t) − uxx (x, t) = 0,
有限差分法、有限单元和有限体积法简介
有限差分法、有限单元法和有限体积法的简介1.有限差分方法有限差分方法(Finite Difference Method,FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用。
该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。
有限差分法以Taylor级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。
该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。
对于有限差分格式,从格式的精度来划分,有一阶格式、二阶格式和高阶格式。
从差分的空间形式来考虑,可分为中心格式和逆风格式。
考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。
目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。
差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。
构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。
其基本的差分表达式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等,其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。
通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。
2.有限元方法有限元方法(Finite Element Method,FEM)的基础是变分原理和加权余量法,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的插值点,将微分方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式,借助于变分原理或加权余量法,将微分方程离散求解。
采用不同的权函数和插值函数形式,便构成不同的有限元方法。
有限元方法最早应用于结构力学,后来随着计算机的发展慢慢用于流体力学的数值模拟。
在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元内选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域内的解可以看作是由所有单元上的近似解构成。
一阶导数边界处的高阶差分格式
一阶导数边界处的高阶差分格式在数学和科学领域中,一阶导数边界处的高阶差分格式是一个重要且复杂的概念。
它在数值计算和科学工程中有着广泛的应用。
本文将探讨一阶导数边界处的高阶差分格式,讨论其基本原理、应用场景以及个人理解。
1. 基本原理一阶导数边界处的高阶差分格式是用差分来逼近微分的方法。
在边界处求解一阶导数时,我们需要使用高阶的差分格式来更精确地逼近导数的值。
常见的高阶差分格式包括中心差分、向前差分和向后差分。
在边界处,特别是当函数在该点不可导或者导数变化剧烈时,高阶差分格式能够提高逼近的准确性。
2. 应用场景一阶导数边界处的高阶差分格式广泛应用于数值计算、科学工程和实际问题的求解中。
在物理学中,当需要计算边界处的导数时,高阶差分格式能够提供更精确的数值结果。
在工程领域中,处理边界条件时,高阶差分格式也能够有效地提高数值计算的准确性。
在金融领域和生物医学领域,一阶导数边界处的高阶差分格式也有着重要的应用价值。
3. 个人理解对于我个人而言,一阶导数边界处的高阶差分格式是一个具有挑战性但又十分重要的概念。
通过学习和应用高阶差分格式,我意识到数值计算中的边界条件处理非常关键,而高阶差分格式能够帮助我们更准确地处理这些边界条件。
在我的实际工作中,我也经常需要使用高阶差分格式来解决复杂的数值计算问题,因此对其原理和应用有着更深入的理解和实际经验。
总结一阶导数边界处的高阶差分格式是数值计算和科学工程中不可或缺的重要概念。
通过本文的探讨,我们对其基本原理和应用场景有了更深入的了解,并且探讨了个人对该概念的理解和应用经验。
在今后的工作和研究中,我将继续深入学习和探索一阶导数边界处的高阶差分格式,以提高自己在数值计算和科学工程领域的能力。
通过以上内容,我希望本文能够对一阶导数边界处的高阶差分格式有一个更全面、深刻和灵活的理解。
一阶导数边界处的高阶差分格式在数学和科学领域中扮演着重要的角色。
它是一种用差分逼近微分的方法,特别在边界处求解一阶导数时,能够提供更精确的数值结果。
(整理)一阶线性常系数双曲性方程的有限差分方法的研究53.
精品文档引言主要讨论双曲性方程及双曲性方程组的差分方法。
从简单的一届线性双曲型方程开始,构造差分格式,分析其稳定性及其他性质,然后推广到一届线性双曲性方程组。
双曲方程与 椭圆方程,抛物方程的重要区别,是双曲方程具有特征和特征关系,其解对初值有局部依赖性质。
初值的函数性质(如间断,弱间断等)也沿特征传播,因而解一般无光滑性,迄今已发展许多逼近双曲方程的差分格式,这里只介绍常见的九种方法,讨论了各种求解方法,分析了其性质,最后对初边值问题及二维问题进行了讨论。
1 一阶线性常系数双曲型方程先考虑线性常系数方程[1]0=∂∂+∂∂xu a t u ,R x ∈,t>0 (1.1) 其中a 为给定常数,这是最简单的双曲型方程,一般称其为对流方程。
虽然(1.1)式非常简单,但是其差分格式的构造以及差分格式性质的讨论是讨论复杂的双曲型方程和方程组的基础。
它的差分格式可以推广到变系数方程,方程组以及拟线性方程和方程组。
对于方程(1.1)附以初始条件[1]u(x,0)=u 0(x), R x ∈ (1.2)在第一章中讨论了初值问题(1.1),(1.2)式的解,其解沿方程(1.1)的特征线[1]ε=-at x (1.3)是常数,并可表示为)()(),(00at x u u t x u -==ε下面讨论双曲性方程的应风格式,Lax-Friedrichs 格式,Lax-wendroff 格式,Courant-Friedrichs-Lewy 条件利用偏微分方程的特征线来构造有限差分格式,蛙跳格式,数值例子。
精品文档1.1 迎风格式迎风格式在实际计算中引起了普遍的重视,从而产生了很多好的方法和技巧。
迎风各式的 基本思想是简单的,就是在双曲型方程中关于空间偏导数用在特征线方向一侧的单边差商来代替,(1.1)式的迎风各式[1]是011=-+--+hu u au u nj n j n jn j τ, a>0 (1.4)的截断误差和稳定性:011=-+--+hu u au u nj n j n jn j τ, a>0+∂∂+∂∂+∂∂=-+3332221!31!21τττtu t u t u u un jn j/τ÷ +∂∂+∂∂+∂∂=-⇒+233221!31!21τττtu t u t u u u njn j ① n j n ju u 1-- +∂∂+∂∂-∂∂=333222!31!21h tu h x u h x u (两边乘于ha),得 ⇒hu u anj n j 1+-=axu∂∂-!2a 22xu∂∂h +!3a 33xu ∂∂()420h h + ②①+②τn jn j u u -+1+hu u anj n j 1+-=tu∂∂+!2122t u ∂∂τ!3133tu ∂∂2τ+()30τ+a xu ∂∂-!2a 22xu∂∂h +!3a 33xu ∂∂()420h h +精品文档⎪⎭⎫ ⎝⎛∂∂+∂∂x u a t u+!2122t u∂∂τ-!2a 22xu∂∂h +!3a 33xu ∂∂2h +所以(,)j n T x t =!2122t u ∂∂τ-!2a 22xu∂∂h +截断误差为()h +τ0迎风格式对τ一阶精度,对h 一阶精度.当0,0h τ→→时(,)0j n T x t →,故迎风格式相容. 下面讨论迎风格式(1.4)的稳定性: 先把差分格式变化为便于计算的形式 n j n j u u -+1+()nj n j u u a 1--λ=0其中hτλ=网格式1+n j u =n j u -()n j n j u u a 1--λ令nj u =n u ikjh e则1+n v ikjh e =nv ikjh e -λa ()()h j ik n ikjh n e v e v 1--1+n v ikjh e =n v ikjh e -λa n v ikjh e +λa n v ikjh e ∙ikh e -1+n v=()ikh e a a -+-λλ1n v()k G ,τ=ikhae a -++λ1=()11-+-ikh e a λ=λa +1()1sin cos -+kh i kh =λa +1khcos -λa kh sin=λa +1()kh cos 1--λa i kh sin精品文档()2,k G τ=()[]2cos 11kh a --λ+kh a 222sin λ=()kh a cos 121--λ+22λa ()2cos 1kh -+kh a 222sin λ= ()kh a cos 121--λ+22λa +kh a 222sin λ=λa 221⨯-2cos 1kh-+22λa -22λa kh cos 2+22λa kh 2cos +22λa kh sin=λa 41-2sin 2kh+22λa -22λa kh cos 2+22λa =λa 41-2sin 2kh+222λa -222λa kh cos =λa 41-2sin 2kh+222λa ()kh cos 1- =λa 41-2sin 2kh +2⋅222λa 2cos 1kh-=λa 41-2sin 2kh+422λa 2sin2kh =λa 41-()λa +12sin 2kh当 1<λa 时原差分格式是稳定的。
有限差分求解bergers方程python
有限差分求解bergers方程python有限差分法是一种求解偏微分方程数值解的有效方法,它通过将偏微分方程离散化成有限个点的函数值来进行数值求解。
Burgers方程是一类重要的偏微分方程,其数学模型描述了物理学中的许多现象,如流体力学、声波传播等。
本文将阐述如何使用有限差分法求解Burgers方程的Python实现方法。
首先,我们需要了解Burgers方程的数学模型。
其一维形式为:$\frac{\partial u}{\partial t}+u\frac{\partialu}{\partial x}=\nu\frac{\partial^2 u}{\partial x^2}$ 其中,$u(x,t)$是速度场,$\nu$是运动粘性系数。
这个方程的初始条件通常为$u(x,0)=f(x)$,其中$f(x)$是速度场的初始分布。
边界条件可以是周期性边界条件,也可以是固定边界条件。
为了使用有限差分法求解Burgers方程,我们需要将其空间离散化和时间离散化。
我们选择三点中心差分格式来离散化Burgers方程的空间部分。
中心差分格式的一阶导数近似为:$\frac{\partial u}{\partial x}\approx\frac{u_{i+1}-u_{i-1}}{2\Delta x}$二阶导数近似为:$\frac{\partial^2 u}{\partial x^2}\approx\frac{u_{i+1}-2u_i+u_{i-1}}{\Delta x^2}$我们将时间区间$[0,T]$离散化为$N$个时间步长,时间步长为:$\Delta t=\frac{T}{N}$则有限差分格式的离散化形式为:$\frac{u_{i}^{n+1}-u_i^n}{\Deltat}+u_i^n\frac{u_{i+1}^n-u_{i-1}^n}{2\Deltax}=\nu\frac{u_{i+1}^n-2u_i^n+u_{i-1}^n}{\Delta x^2}$ 其中,$n$表示时间步长,$i$表示空间节点。
cfd数字计算方法
有限差分法/有限元方法/有限体积法有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用。
该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。
有限差分法以Taylor级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。
该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。
对于有限差分格式,从格式的精度来划分,有一阶格式、二阶格式和高阶格式。
从差分的空间形式来考虑,可分为中心格式和逆风格式。
考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。
目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。
差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。
构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。
其基本的差分表达式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等,其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。
通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。
有限元方法的基础是变分原理和加权余量法,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的插值点,将微分方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式,借助于变分原理或加权余量法,将微分方程离散求解。
采用不同的权函数和插值函数形式,便构成不同的有限元方法有限元方法最早应用于结构力学,后来随着计算机的发展慢慢用于流体力学的数值模拟。
在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元内选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域内的解可以看作是由所有单元上的近似解构成。
一阶导数离散格式
一阶导数离散格式一阶导数离散格式是在数值计算中经常用到的一种方法,用于计算函数在某一点处的导数值。
它的计算原理基于函数在该点的局部线性近似。
在数学中,导数表示函数在某一点的变化率,可以用来描述函数的斜率或曲线的陡峭程度。
而离散格式是一种将连续函数转化为离散点上的计算方法,常用于计算机中对函数进行数值计算。
一阶导数离散格式的基本思想是通过计算函数在某一点的两个相邻离散点的差值,然后除以这两个点之间的距离,从而得到该点处的导数值。
最简单的一阶导数离散格式是前向差分格式,它通过计算函数在该点和相邻点之间的差值,然后除以两点之间的距离。
具体公式可以表示为:f'(x)≈(f(x+h)-f(x))/h其中,f'(x)表示函数f在x点处的导数值,h表示相邻点之间的距离。
类似地,还有后向差分格式和中心差分格式。
后向差分格式通过计算函数在该点和前一个点之间的差值,然后除以两点之间的距离。
中心差分格式则是通过计算函数在该点前后两个点的差值之和,然后除以两倍的距离。
这些离散格式的选择取决于具体的应用需求和精度要求。
前向差分格式适用于计算简单且误差要求不高的情况,后向差分格式适用于计算复杂但误差要求不高的情况,而中心差分格式适用于计算复杂且要求较高精度的情况。
需要注意的是,离散格式的误差来源于函数在离散点上的近似和计算中的舍入误差。
因此,为了得到更精确的结果,需要选择合适的离散点间距和使用更高阶的离散格式。
总之,一阶导数离散格式是数值计算中常用的一种方法,通过计算函数在离散点上的差值和距离,可以近似得到函数在某一点处的导数值。
它在科学和工程领域中有着广泛的应用,可以帮助我们更好地理解和分析函数的性质。
24常用的离散格式
假扩散在文献中,假扩散,人工粘性,
数值粘性常常是作为同义词使用的。
假扩散是对流项离散过程中所引入的一个重要误差。 由于对流—扩散方程中一阶导数项的离散格式的截断 误差小于二阶而引起较大数值计算误差的现象称为假 扩散。在一个离散格式中,假扩散的存在会使数值解 的结果偏离真解的程度加剧。假扩散系数越大,偏离 得越严重。以上所指的假扩散是由于截断误差而引起 的,也是假扩散这一概念的最初含义。现在,在计算 传热学领域中,这一概念的含义有所扩大。能引起较 大的数值计算误差的原因有三个:1.非稳态项或对流 项采用一阶截差的格式;2.流动方向与网格线呈倾斜 交叉(多维问题);3.建立差分格式时没有考虑到非 常数的源项影响。现在一般把由这三种原因而引起的 数值计算误差都归在假扩散的名称下。
中心差分格式的特点及适用性
Pe小于2时,中心差分格式的计算结果与精确 解基本吻合。 Pe大于2时,数值解完全失去物理意义。
原因:离散方程系数出现负值,负的系数会导致 物理上不真实的解。 解决办法:将计算网格加密,使网格间距变小, 降低Pe数的大小。(计算量随之增大)
基于此限制,中心差分格式不能作为对于一般 流动问题的离散格式,需创建其它更合适的格 式(对纯扩散稳态,如热传导是适用的)。 6
对离散格式的讨论以一维稳态对流扩散方程为例,不 涉及瞬态项。 定义两个新的物理量:
F:通过界面上单位面积的对流质量通量,简称对流质量流 量; D:界面的扩散传导性 在此基础上定义一个非常重要的参数Peclet数
F u P 对流与扩散的强度 e D / x 3
Peclet数(佩克莱数 )
23
低阶格式的假扩散特性
数值计算三种算法比较
有限元法,有限差分法和有限体积法的区别作者:闫霞1. FDM 1.1概念有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用。
该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。
有限差分法以Taylor级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。
该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。
1.2差分格式(1)从格式的精度来划分,有一阶格式、二阶格式和高阶格式。
(2)从差分的空间形式来考虑,可分为中心格式和逆风格式。
(3)考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。
目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。
差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。
1.3构造差分的方法构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。
其基本的差分表达式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等,其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。
通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。
2. FEM 2.1概述有限元方法的基础是变分原理和加权余量法,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的插值点,将微分方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式,借助于变分原理或加权余量法,将微分方程离散求解。
采用不同的权函数和插值函数形式,便构成不同的有限元方法。
2.2原理有限元方法最早应用于结构力学,后来随着计算机的发展慢慢用于流体力学、土力学的数值模拟。
在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元内选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域内的解可以看作是由所有单元上的近似解构成。
【计算流体力学】第4讲-差分方法2
暗示
Re x 是某一特 征量
5
对流-扩散方程的特性:
u t
u x
1 Re
2u x2
(线性)差分方程:
u n1 j
ak
u
n j
k
(1)
k
j-2 j-1 j j+1 j+2
n+1
n
u n1 j
a un 2 j2
a un 1 j 1
......
a2
u
n j
2
某点的值是上一时刻周围几个点上值的线性组合
ui ui1 ui1 ui 则j点在间断右侧
j
(a>0 时, 右侧为“前”)
原理: 越靠近间断,振荡越剧烈
2) 根据GVC的思想构造格式
u a u 0 a 0 t x
xu j
(3u j
4u j1
u j2 ) /(2x)
(u j1 u j1) /(2x) when
when u j u j1 u j1 u j u j u j1 u j1 u j
B: 高阶人工粘性 人工粘性
系数
人工粘 性项
x2
x
N
U x
光滑区为二阶小量
分离流—— 对粘性敏感
Von Neumann MacCormack
N
u x
N
| u | c p
2 p x2
大梯度区,加大 人工粘性
转捩——对粘性敏感 8
Jameson 人工粘性法
二阶人工粘性
四阶人工粘性
u t
f (u) x
人工粘性法
TVD, 保单调限 制器 群速度控制格式
j=1
j=N n时刻: 单调函数
偏微分方程的离散化方法4重要知识
u(x x1, y, t) u(x, y, t)
,
u
u(x, y, t) u(x x2 , y, t)
x x x1
x1
x x x1
x2
2
2
k u
k x x1 2
u(x
x1,
y, t) x1
u( x,
y,
t)
k x x2 2
u(x, y, t) u(x x2 , y, t) x2
(1 2 )Pin
(
Pn i1
Pn i1
)
,
t x
2
,截断误差:O(t
x2 )
从方程可以看出:如果已知第 n(本步时间)的值 Pin ,就可以求得第 n+1
时刻(下步时间)的值
P n1 i
。因此如初始条件,即
n=0
时各网格的
P
值已给定,
就可以依次求得以后各时间的 P 值。这种差分格式是显式差分格式。在显式差分
re
re 0.14 x 2 y 2
2)、对于各向异性地层,步长: x, y ,其等值供给半径:
re
0.28
Ky Kx
1/ 2
x 2
Kx Ky
1/ 2
1/ 2
y 2
K K
y x
1/ 4
Kx Ky
1/ 4
重点辅导
28
ai,
j
P n1 i 1, j
ei,
j
P n1 i, j
bi,
j
P n1 i 1
di,
j
P n1 i. j 1
fi, j (形成五对
角矩阵)
重点辅导
23
一阶格式和二阶格式误差对比
向量 y 中,这样方程右边为 b h2 f ( y)
赋值程序为
clc,clear h=pi/160; x=zeros(1,pi/h+1); for i=1:pi/h+1
x(i)=(i-1)*h; end
y=x(1:pi/h+1);%x1 到 x(m+1)组成的矩阵
f.m 为
function y=f(x); y=exp(x)*(sin(x)-2*cos(x));
q.m 为
function y=q(x); y=1;
这样当题目中的 f(x)和 q(x)需要发生变化时只要改变 f.m 和 q.m 中的
函数即可,不需要去改变主程序。
在 h 设定以后, m ( ) / h 1,所以系数矩阵为(m-1)*(m-1)的三
阵
取不同步长时部分结点处数值解的误差的绝对值和数值解的最大误
差
h\x
Π/5 2Π/5 3Π/5 4Π/5 E(h)
E(2h)/E(h)
Π/160 0.0373 0.0697 0.1304 0.2438 0.4565 *
Π/320 0.0185 0.0347 0.0649 0.1216 0.2277 2.005
2 f ( xi i
) m
因为在这个题目中 q(x)=1, 1, eπ , 1 0,2 0 所以
将这个线性方程写成矩阵形式:
1 1 1 2 h2
1 1 2 h2
1
u0 h
u1 h2 f (x1)
1 um1 h2 f ( xm1)
1 um heπ
解,我们取 x / 5,2 / 5,3 / 5,4 / 5 进行研究并放在一个矩阵中
偏微(05)一阶双曲型方程
Lax-Friedrichs格式 1.2 Lax-Friedrichs格式
un+1 − un j j
u n − u n− 1 j +a j =0 , τ h un+1 − un u n+ 1 − u n j j j +a j =0 , τ h
a >0,
a <0,
(1.4)
(1.5)
把迎风格式写成统一的形式(1.11) 把迎风格式写成统一的形式( ) 就可以不考虑微分方程特征线的走向而直接应用
截断误差为 O(τ + h2 ) 是绝对不稳定的
n +1 − 1 u n + u n u j + 1 j −1 j 2 un − un +a j +1 j −1 =0, 2h
τ
(1.9)
Lax-Friedrichs格式1954 Lax-Friedrichs格式1954 格式
Lax-Friedrichs格式 1.2 Lax-Friedrichs格式
n 2 2 n ∂u τ ∂ u u x ,t = u x ,t j n +1 +O τ 3 j n +τ + ∂t 2t j 2 ∂ j
(
) (
)
∂u + a ∂ u = 0 Lax-Wendroff格式 1.3 Lax-Wendroff格式 ∂t ∂x 将 u ( x j , t n+1 ) 在点 x j ,tn 处做Taylor展开 处做Taylor展开 Taylor
G (τ , k ) = 1 + aλ ( 1 − cos kh ) + a 2λ 2 sin2 kh
差分方法基础
第二讲 有限差分法基本原理一般的流体控制方程都是非线性的偏微分方程。
在绝大多数情况下,这些偏微分方程无法得到精确解;而CFD 就是通过采用各种计算方法得到这些偏微分方程的数值解,或称近似解。
当然这些近似解应该满足一定的精度。
目前,主要采用的CFD 方法是有限差分法和有限体积法。
本讲主要介绍有限差分法,它也是下一讲中的有限体积法的基础[1]。
有限差分法求解流动控制方程的基本过程是:首先将求解区域划分为差分网格,用有限个网格点代替连续的求解域,将待求解的流动变量(如密度、速度等)存储在各网格点上,并将偏微分方程中的微分项用相应的差商代替,从而将偏微分方程转化为代数形式的差分方程,得到含有离散点上的有限个未知变量的差分方程组。
求出该差分方程组的解,也就得到了网格点上流动变量的数值解。
2.1 差分和逼近误差由于通常数字计算机只能执行算术运算和逻辑运算,因此就需要一种用算术运算来处理函数微分运算的数值方法。
而有限差分法就是用离散网格点上的函数值来近似导数的一种方法。
设有x 的解析函数)(x f y =,从微分学知道函数y 对x 的导数为 xx f x x f x y dx dy x x ∆-∆+=∆∆=→∆→∆)()(lim lim 00 (2-1) dy 、dx 分别是函数及自变量的微分,dx dy /是函数对自变量的导数,又称微商。
相应地,上式中的x ∆、y ∆分别称为自变量及函数的差分,x y ∆∆/为函数对自变量的差商。
在导数的定义中x ∆是以任意方式逼近于零的,因而x ∆是可正可负的。
在差分方法中,x ∆总是取某一小的正数。
这样一来,与微分对应的差分可以有三种形式:向前差分 )()(x f x x f y -∆+=∆向后差分 )()(x x f x f y ∆--=∆中心差分 )21()21(x x f x x f y ∆--∆+=∆上面谈的是一阶导数,对应的称为一阶差分。
对一阶差分再作一阶差分,就得到二阶差分,记为y 2∆。
一维对流方程的差分格式
一维对流方程的差分格式∂u/∂t+c∂u/∂x=0其中u是流体密度,t是时间,x是空间位置,c是流体速度。
为了离散化这个方程,我们将时间和空间范围分为小区间,然后在这些离散点上近似连续方程。
我们可以使用中心差分、向前差分或向后差分等方法来近似对流方程。
中心差分格式是一种常用的差分格式,通过使用当前时间步和两个相邻时间步的值来近似时间导数,使用当前空间点和两个相邻空间点的值来近似空间导数。
假设我们在时间方向上将时间分为n个步长Δt,将空间方向上将空间分为m个步长Δx,那么时间和空间步长分别为Δt = t_max / n 和Δx = x_max / m。
在中心差分格式中,时间导数可以使用向前差分或向后差分来计算。
使用向前差分有:∂u/∂t≈(u_i,j-u_i-1,j)/Δt使用向后差分有:∂u/∂t≈(u_i+1,j-u_i,j)/Δt空间导数可以使用中心差分来计算:∂u/∂x≈(u_i+1,j-u_i-1,j)/(2Δx)结合时间导数和空间导数的近似,我们可以得到中心差分格式的一般形式:(u_i,j+1-u_i,j)/Δt+c(u_i+1,j-u_i-1,j)/(2Δx)=0通过对该方程进行变形,可以得到u_i,j+1的计算公式:u_i,j+1=u_i,j-cΔt/(2Δx)(u_i+1,j-u_i-1,j)在空间和时间方向上进行迭代,可以逐步求解一维对流方程。
除了中心差分,还存在其他差分格式,如向前差分和向后差分。
向前差分格式使用当前时间和前一时间步的值来近似时间导数,向后差分格式使用当前时间和后一时间步的值来近似时间导数。
中心差分格式的优点是它具有二阶精度,即误差随着步长的平方而减少。
然而,该格式可能会出现数值耗散或数值扩散的问题,特别是在高梯度区域。
在实际应用中,选择正确的差分格式对于获得准确的数值解至关重要。
一维对流方程的差分格式提供了一种近似求解连续方程的方法,使得我们能够使用计算机来解决复杂的流体力学问题。
对流扩散方程有限差分方式
对流扩散方程有限差分方式求解对流扩散方程的差分格式有很多种,在本节中将介绍以下3种有限差分格式:中心差分格式、Samarskii 格式、Crank-Nicolson 型隐式差分格式。
3.1 中心差分格式时刻导数用向前差商、空间导数用中心差商来逼近,那么就取得了(1)式的中心差分格式]6[21111122h u u u vhu u au u nj n j n j nj n j n jn j -+-+++-=-+-τ(3)假设令 haτλ=,2h vτμ=,那么(3)式可改写为)2()(2111111nj n j n j n j n j n j n j u u u u u u u -+-+++-+--=μλ (4)从上式咱们看到,在新的时刻层1+n 上只包括了一个未知量1+n j u ,它能够由时刻层n 上的值n j u 1-,n j u ,n j u 1+直接计算出来。
因此,中心差分格式是求解对流扩散方程的显示格式。
假定),(t x u 是定解问题的充分滑腻的解,将1+n j u ,n j u 1+,nj u 1-别离在),(n j t x 处进行Taylor 展开:)(),(),(211ττO t u t x u t x u unjn j n j n j+⎥⎦⎤⎢⎣⎡∂∂+==++)(2),(),(322211h O x u h x u h t x u t x u u nj nj n j n j n j +⎥⎦⎤⎢⎣⎡∂∂+⎥⎦⎤⎢⎣⎡∂∂+==++ )(2),(),(322211h O x u h x u h t x u t x u u njnj n j n j n j +⎥⎦⎤⎢⎣⎡∂∂+⎥⎦⎤⎢⎣⎡∂∂-==--代入(4)式,有 21111122),(hu u u vhu u au u t x T nj n j n j nj n j n jn j n j -+-+++---+-=τ)()()(2222h O v x u v h O a x u a O t u nj nj nj ⋅-⎥⎦⎤⎢⎣⎡∂∂-⋅+⎥⎦⎤⎢⎣⎡∂∂++⎥⎦⎤⎢⎣⎡∂∂=τ )()()(222h O v a O x u v x u a t u njnj nj ⋅-++⎥⎦⎤⎢⎣⎡∂∂-⎥⎦⎤⎢⎣⎡∂∂+⎥⎦⎤⎢⎣⎡∂∂=τ )(2h O +=τ显然,当0→τ,0→h 时,0),(→n j t x T ,即中心差分格式与定解问题是相容的。
有限差分方法
数学方程的建立
稳定过程: 稳定过程:泊松方程 静电场:电场的散度正比电流密度,等于势场u的梯度 静电场:电场的散度正比电流密度,等于势场 的梯度
静磁场: 静磁场:类似于静电场
√
物理问题和数学方程(2/5) 物理问题和数学方程(2/5)
输运过程: 输运过程:扩散方程 扩散:流体由于不均匀而发生扩散, 扩散:流体由于不均匀而发生扩散,扩散密度正比于 密度的梯度, 密度的梯度,同时满足质量守恒
√
物理问题和数学方程(5/5) 物理问题和数学方程(5/5)
第三类
∂u v (a0u + b0 ) = c0 (rb , t ), a0、b0和c0是已知函数 ∂n Γ 热传导,系统通过表面与外界交换热量: 例:热传导,系统通过表面与外界交换热量:表面 热流 ∂u 正比于表面温度 u 与外界温度 u0 之差,即 之差, ∂n ∂u = k (u − u0 ) ∂n 初始条件 v 在各处的值: 初始瞬间待求函数 u 在各处的值: u t =0 = f1 (r )
拉普拉斯方程
方程( ( , )=0 方程( f(x,y)=0 ) ∂ 2u ∂ 2u ∇ 2u = 2 + 2 = 0 ∂x ∂y 五点差商格式
√
迭代解法(1/6) 迭代解法(1/6)
差分方程组的特点
方程个数等于内点数,每条方程最多含5 方程个数等于内点数,每条方程最多含5个未知项 系数矩阵是稀疏和带状的 跌代法求解:同步法、 跌代法求解:同步法、异步法和逐次超松弛法
边界条件的差分格式
√
一维扩散方程(3/3) 一维扩散方程(3/3)
差分方程组及其求解
0.10
1.000 0.7500
0.08
0.5000 0.2500 0
一阶导数差分格式
一阶导数差分格式
一阶导数差分格式是一种近似计算函数导数的方法,它通过对函数在特定点处进行有限差分的操作来近似求得函数导数的值。
常见的一阶导数差分格式有前向差分、后向差分和中心差分。
1. 前向差分:
前向差分使用函数的当前点和其后一点来计算导数的近似值。
导数的近似值为:f'(x) ≈ (f(x+h) - f(x))/h
2. 后向差分:
后向差分使用函数的当前点和其前一点来计算导数的近似值。
导数的近似值为:f'(x) ≈ (f(x) - f(x-h))/h
3. 中心差分:
中心差分使用函数当前点的前后两个点来计算导数的近似值。
导数的近似值为:f'(x) ≈ (f(x+h) - f(x-h))/(2h)
其中,h表示差分的步长,通常取一个较小的值来提高近似的
精度。
一阶导数差分格式在数值计算和数值微分中广泛使用,能够方便地对函数的导数进行估计。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学 10-1 班 余帆 10072121
1、考虑问题
考虑二阶常微分方程边值问题:
Ludd2xu2 quf
(1)
u(a),u(b)
其中 q,f 为[a,b]上的连续函数,, 为常数。
2、网格剖分与差分格式
将区间[a,b]分成 N 等分,分点为
xi aih ,i0,1 ,,N,
A(i,i+1)=-1; %确定系数矩阵右上对角线元素 end for i=2:(N-1)
A(i,i-1)=-1; %确定系数矩阵左下对角线元素 end %ቤተ መጻሕፍቲ ባይዱ定差分等式右边的向量
ff(1)=f(x(2))*h*h+exp(a); ff(N-1)=f(x(N))*h*h+exp(b); for i=2:(N-2)
h=(b-a)/N,于是我们得到区间 I=[a,b]的网格剖分, x i 为网格节点,h 为步 长。
差分格式为:
Lhui
ui1
2ui h2
ui1
qiui
fi
i 1,2,,N1,
u0 ,uN .
3、截断误差
将方程(1)在节点离散化,由泰勒公式展开得 u (x i 1 ) 2 u h ( 2 x i) u (x i 1 ) d 2 d u ( 2 x ) x i 1 h 2 d 2 4 d u ( 4 x ) x i (h 3 ) 所以截断误差为 Ri(u)1h22d4 du(4xx)i (h3)
取 N=10;
真解 u
1.10517091807565 1.22140275816017
1.34997843016779
1.49196552031986
1.64887281406447
1.82226956248731
2.01388985780186
2.22564993524113
2.45966729399935
2.8 2.6 2.4 2.2
2 1.8 1.6 1.4 1.2
1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
在图中可以看出,真解和逼近解几乎在同一点上,逼近的很好。
7、实验总结
经过这次实验,使我更深一步的了解了中心差分格式这个思想,在编程过程 中,确定系数矩阵和常数项是最重要的,在确定过程中,要注意 matlab 中循环 是从 1 开始的,而我们推导的公式中循环是从 0 开始的,这一点要区分开来,不
从表中可以看出,逼近解和真解的差距很小。
另外,在图表中显示:
逼近解 u1:*
真解 u:+
1.34985880757600 1.49182469764127 1.64872127070013 1.82211880039051 2.01375270747048 2.22554092849247 2.45960311115695
u2
=
h 2 f1 h 2 f2
1
2qN1h2
u
N
1
h
2
fN
1
系数矩阵
A=
2q11h2
1
2q2h2
1
,我们可以利用高斯消去
1 2qN1h2
法求得 u(x)的数值解。
6、实验结果
程序输出结果:
逼近解 u1
1.10521961652189 1.22149147782632
4、数值例子 u(x) ex q(x) 1 sin x f(x)exsinx 5、求解
其中 x0,1
由 Ludd2xu2 quf ,
f(x)exsinx
u(x) ex q(x) 1 sin x
将向量式的差分格式用矩阵形式表示出来,得到矩阵形式为
2q11h2
1
2q2h2
1
u 1
然就会出现很大的误差。
附:
程序代码
format long N=100; a=0;b=1; h=(b-a)/N; A=zeros(N-1); for i=1:N+1
x(i)=a+(i-1)*h; %确定分点坐标 end for i=1:(N-1)
A(i,i)=2+q(x(i+1))*h*h; %确定系数矩阵主对角线元素 end for i=1:(N-2)
ff(i)=f(x(i+1))*h*h; end u1=A\ff'; %直接求矩阵的逆 u2=gauss_pivot(A,ff) %利用高斯消去法求解 %在图上画出真解和逼近解 for i=1:(N-1)
t(i)=a+i*h; end t1=t(1:99); plot(t1,u2,'*') %逼近解 hold on plot(x,exp(x),'+') %真解