显式差分和隐式差分
显式算法与隐式算法的区别

显式算法与隐式算法的区别-CAL-FENGHAI.-(YICAI)-Company One1显式算法与隐式算法的区别所谓显式和隐式,是指求解方法的不同,即数学上的出发点不一样。
并不是说显式只能求动力学问题,隐式只能求静力学问题,只是求解策略不通。
显式求解是对时间进行差分,不存在迭代和收敛问题,最小时间步取决于最小单元的尺寸。
过多和过小的时间步往往导致求解时间非常漫长,但总能给出一个计算结果。
解题费用非常昂贵。
因此在建模划分网格时要非常注意。
隐式求解和时间无关,采用的是牛顿迭代法(线性问题就直接求解线性代数方程组),因此存在一个迭代收敛问题,不收敛就的不到结果。
两者求解问题所耗时间的长短理论上无法比较。
实际应用中一般感觉来说显式耗时多些。
由于两者解题的出发点,所以一般来说显式用于求解和时间相关的动力学问题。
隐式用来求解和时间无关的静力学问题。
但也不是绝对的。
比如,用隐式求解时,为了克服迭代不收敛,改用显式算,但是要多给点时间,这样虽然克服了不收敛的问题,但是求解的时间费用也是相当客观的。
另外,隐式也可以求解动力学问题。
这是ansys里面的两种求解方法。
大多数非线性动力学问题一般多是采用显式求解方法,特别是在求解大型结构的瞬时高度非线性问题时,显示求解方法有明显的优越性。
下面先简要对比一下隐式求解法和显示求解法。
动态问题涉及到时间域的数值积分方法问题。
在80年代中期以前,人们基本上采用纽曼法进行时间域的积分。
根据纽曼法,位移、速度和加速度有着如下关系:u(i+1)=u(i)+△t*v(i)[(1—2p)a(i)+2p*a(i+1)] (1)v(i+1)=V(i)+△t[(1-2q)a(i)+2qa(i+1)] (2)上面式子中 u(i+1),u(i)分别为当前时刻和前一时刻的位移,v(i+1)和V(i)为当前时刻和前一时刻的速度,a(i+1)和a(i)为当前时刻和前一时刻的加速度,p和q为两个待定参数,△t为当前时刻与前一时刻的时问差,符号 * 为乘号。
显式与隐式算法区别

显式(explicit)和隐式(implicit)这两个词在有限元分析中大家可能经常看到,特别是涉及到动力学分析时。
但其实广义的说他们分别对应着两种不同的算法:显式算法(explicit method)和隐式算法(implicit method)。
所以不论在动力学或者静力学中都有涉及到。
显式算法:不直接求解切线刚度,不进行平衡迭代,计算速度快,时间步长只需要足够小,一般不存在收敛问题,需要的内存也小。
隐式算法:每一增量步都需要对静态方程进行平衡迭代,且每次迭代需要求解大量的线性方程组,这一特点使之占用大量的资源。
但该算法增量步可以很大,至少比显式算法大的多,实际计算中会受到迭代次数及非线性程度的影响我们都知道有限元分析FEA在计算微分方程(differential equations)时,由于计算本身的局限,比如计算机储存的位数有限,以及方程本身的复杂性,计算机运用的是数值算法(numerical algorithm)来逼近真实解的。
有限元分析中数值算法的基础是欧拉法(Euler method),欧拉法又分为forward Euler method 和backward Euler method,这两种方法被简称为显式法(explicit method)和隐式法(implicit method)。
中心差分法:(动力学分析)用有限差分代替位移对时间的求导,将运动方程中的速度与加速度用位移的某种组合来标示,这样就将常微分方程组的求解问题转化为代数方程组的求解问题,并假设在每个小的时间间隔内满足运动方程。
首先我们来看看这两种算法的区别。
显式算法(explicit method )(forward Euler method )考虑常微分方程:初始条件:设为每一步的时间步长, 在Tn 时刻,. (n=0,1,2,3...),在T(n+1)时刻有:所以在显式算法中,T(n+1)时刻的值由T(n)时刻决定,也就是说当前时刻的值由上一时刻的值决定。
所谓显式和隐式

所谓显式和隐式,是指求解方法的不同,即数学上的出发点不一样。
并不是说显式只能求动力学问题,隐式只能求静力学问题,只是求解策略不通。
显式求解是对时间进行差分,不存在迭代和收敛问题,最小时间步取决于最小单元的尺寸。
过多和过小的时间步往往导致求解时间非常漫长,但总能给出一个计算结果。
解题费用非常昂贵。
因此在建模划分网格时要非常注意。
隐式求解和时间无关,采用的是牛顿迭代法(线性问题就直接求解线性代数方程组),因此存在一个迭代收敛问题,不收敛就的不到结果。
两者求解问题所耗时间的长短理论上无法比较。
实际应用中一般感觉来说显式耗时多些。
由于两者解题的出发点,所以一般来说显式用于求解和时间相关的动力学问题。
隐式用来求解和时间无关的静力学问题。
但也不是绝对的。
比如,用隐式求解时,为了克服迭代不收敛,改用显式算,但是要多给点时间,这样虽然克服了不收敛的问题,但是求解的时间费用也是相当客观的。
另外,隐式也可以求解动力学问题。
热传导方程的差分格式汇总

热传导方程的差分格式汇总1.显式差分格式:显式差分格式是最简单的一种方法,通过将导热方程时间和空间上的导数进行近似,引入差分算子,将方程转化为差分格式。
其中最常见的差分格式有:a. 前向差分法(Forward Difference Method):利用当前节点和其相邻节点的温度值进行计算。
例如,在一维离散情况下,可以使用公式:u(i,j+1)=u(i,j)+α(u(i+1,j)-2u(i,j)+u(i-1,j))b. 后向差分法(Backward Difference Method):利用当前节点和其相邻节点的温度值进行计算。
例如,在一维离散情况下,可以使用公式:u(i,j+1)=u(i,j)+α(u(i+1,j+1)-2u(i,j+1)+u(i-1,j+1))c. 中心差分法(Central Difference Method):利用当前和其相邻节点的温度值进行计算。
例如,在一维离散情况下,可以使用公式:u(i,j+1)=u(i,j)+α(u(i+1,j)-2u(i,j)+u(i-1,j))+β(u(i+1,j)-u(i-1,j))其中α和β是时间和空间步长的比例因子。
2.隐式差分格式:显式差分格式具有较大的稳定性限制。
为了克服这个问题,可以使用隐式差分格式,其中使用下一个时间步长的温度值来求解当前时间步长。
常见的隐式差分格式有:a. C-N差分法(Crank-Nicolson Method):利用前后两个时间步长的温度值进行计算。
例如,在一维离散情况下,可以使用公式:u(i,j+1)=u(i,j)+0.5α(u(i+1,j+1)-2u(i,j+1)+u(i-1,j+1))+0.5α(u(i+1,j)-2u(i,j)+u(i-1,j))b. 力学模拟法(Finite Element Method):将空间离散化后,通过引入有限元方法,将热传导问题转化为线性方程组,再通过求解线性方程组得到温度分布。
第二章显式隐式格式

五、数值天气预报的概念和历 史回顾
numerical weather prediction uses numerical
methods to approximate a set of partially differential equations on discrete grid points in a finite area to predict the weather systems and processes in a finite area for a certain time in the future. In order to numerically integrate the partial differential equations, which govern the atmospheric motions and processes, with time, one needs to start the integration at certain time.
Fi n
收敛到 F ( xi , t n )
稳定性
差分近似的稳定性是指对于任意给定的初值, 当n无限增大时,任意时刻的数值是否有界的 问题。假如数值解是稳定有界的,则相应的数 值格式称为稳定的格式。 计算稳定性的分析方法: 冯纽曼方法(Von-Neumann方法,又称谐 波分析法):通过测试差分格式近似解一个谐 波分量的稳定性,研究差分格式的稳定性。
收敛性convergence
设差分方程的解为 Fi n
微分方程的解为
n i n
F ( xi , t n )
Fi F ( xi , t n )
in 0
则称:差分方程的解
显式求解方法和隐式求解方法对比

采用有限元方法开展结构的动力学分析最终归结为求解离散后的常微分方程组tR KU U C U M =++ 。
在时域内求解该方程最常用的方法是直接积分法,而又根据求解过程中是否需要迭代求解线性方程组,将直接积分法分为隐式积分方法和显式积分方法两类。
隐式积分法认为t+Δt时刻系统的状态不仅与t时刻状态有关,且与t+Δt时刻某些量有关。
因此隐式算法是根据t n 及t n-1...时刻体系的物理量值建立关于以t n+1时刻物理量为未知量的线性方程组,通过求解方程组确定t n+1时刻的物理量(常用的方法有线性加速度法、常平均加速度法、Newmark 方法、Wilson-θ法、Houbolt 方法等)。
而显式积分法认为t+Δt时刻系统的状态仅与t时刻状态有关可,因此可由t n 及t n-1...时刻体系的物理量值直接外推t n+1时刻物理量值(如中心差分法),不需要求解线性方程组,实现了时间离散的解耦。
两种算法的比较 :(1)隐式算法隐式算法基于虚功原理,要迭代计算。
隐式算法在每一增量步内都需要对静态平衡方程进行迭代求解,并且每次迭代都需要求解大型的线性方程组,这一过程需要占用相当数量的计算资源、磁盘空间和内存。
理论上在这个算法中的增量步可以很大,但是实际运算中上要受到接触以及摩擦等条件的限制。
随着单元数目的增加,计算时间几乎呈平方次增加。
由于需要矩阵求逆以及精确积分,对内存要求很高。
隐式算法的不利方面就是收敛问题不容易解决,且在开始起皱失稳时,在分叉点处刚度矩阵出现奇异。
(2)显式算法显示算法基于动力学方程,无需迭代,包括动态显式和静态显式算法。
动态显式算法采用动力学方程的中心差分格式,不用直接求解切线刚度,不需要进行平衡迭代,计算速度快,也不存在收敛控制问题。
该算法需要的内存也比隐式算法要少。
数值计算过程可以很容易地进行并行计算,程序编制也相对简单。
它也有一些不利方面。
显式算法要求质量矩阵为对角矩阵,而且只有在单元级计算尽可能少时速度优势才能发挥, 因而往往采用减缩积分方法,容易激发沙漏模式,影响应力和应变的计算精度。
偏微分方程的离散化方法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
隐式差分方程课件

当
1 2
时,加权六点格式为Crank-Nicolson隐式格式;
当 1 时,加权六点格式为古典隐式格式。
加权六点格式亦可直接由差商代替导数得到
U n1 m
U
n m
k
1 h2
U 2 n1
xm
(1
)
1 h2
U 2 n
xm
2.3.4 系数依赖于x,t的一维热传导方程的一 个隐式格式的推导
即两边去[1掉高kD于x2 二12阶 2导k 2数Dx4的项,]umn且1 用 [1h12(x21代替)k
Dx2
Dx2
1 2
(1
)2
k
2 Dx4
]umn
,则得差分格式
(1r
2 x
)U
n1 m
[1
(1
)r
2 x
]U
n m
或者 (1
2r
)U
n1 m
0.956 821 703 419 0.000 079
0.915 507 772 134 0.000 151
0.643 146 895 793 0.000 531
0.413 637 929 568 0.000 683
0.171 096 336 778 0.000 564
0.629 273 956 459 0.000 194
r
(U
n m1
U
n m1
)
由于格式(2.44)中包括六个结点,故也可 称为六点格式(如图2.6所示)。
图2.6
m-1,n+1
m,n+1
m+1,n+1
非线性动力学方程的求解方法

非线性动力学方程的求解方法1、概述在工程实际问题中,我们常常面临这样的选择:我们所遇的问题究竟是静力的还是动力的。
静力问题与动力问题,从力学的角度看就是是否考虑与加速度有关的力,而从数学求解方法看则是一个三维边值问题还是一个四维边值-初值问题。
在这个问题的选择上没有固定的原则,一般取决于我们研究者、分析者对工程问题的判断。
一般认为,实际工程大都是处于动力环境之中,因而属于动力问题。
但是,由于时间、经费等方面的原因的限制,我们不可能把所有的问题都按照动力问题的方法来分析。
对于许多具体的问题,与速度和加速度有关的力足够小,但是又影响结构分析结果的,将采用静力假定来模拟这些力。
线性的动力有限元控制方程如式(1-1)所示。
[]}{}]{[}]{[}{R q K q D qM =++ (1-1) 式中[M ][D ][K ]分别为结构的质量、阻尼和刚度矩阵,{R }为荷载列矢量,}{q、}{q 和}{q 分别是加速度、速度和位移列矢量。
式(1-1)的解法大体上可以分为两类:直接积分法和模态叠加法。
直接积分法在对控制方程进行数值积分之前不对方程做任何形式的变换,直接用数值积分的方法在时域上一步一步地对方程进行积分。
模态叠加法是在求解之前对方程进行某种数学变换,使基底降低,或使矩阵的带宽减小,再进行求解。
这两种方法在形式上不同,但是密切相关。
上述每一类求解方法中又有许多具体的解法,每一种解法又有各自的特点。
因此我们在选择一种方法求解一个问题时,要对该方法的收敛性、稳定性、效率、精度和费用等进行一些分析,讨论它对所求问题的有效性,从而使我们能够针对某一特定的问题,选择合适的方法。
直接积分法基于以下两条:(1)不是在求解时间区间内任意时刻t 都满足式(1-1),而是在相隔△t 上的一些离散时刻满足式(1-1)。
(2)对位移、速度和加速度在每一时间区间△t 内变化的形式进行假设,事实上若把式(1-1)看成一个常系数微分方程组,便可以用任何一种有限差分格式通过位移来近似表示速度和加速度,因此不同的差分格式就得到不同的方法。
复习第三章求解导热问题的有限差分法

n Tm Tw
(n=0,1,2,…)
⑥式
12
第一节 差分格式 将④,⑤,⑥式联立,得完整差分格式:
n n n Ti n1 f Ti ( 1 2 f ) T f T 1 i i 1
⑦式
(n=1,2,…;i=2,3,…,m-1)
Ti 0 T0 (i 2,3,...,m 1)
内容 (1)显式差分格式 1、差分格式 (2)完整隐式差分格式 (3)六点差分格式 (1)内节点法 (2)外节点法
2、直接差分法
1
第一节 差分格式 一 . 概述 1. 差分格式 实际导热问题必然涉及边值条件,在有限差分法 中它们也必须差分化。 因此,我们需要研究的不仅是差分方程本身,而 且是包括全部内部区域和所有边界上的差分方程所组 成的代数方程组。又称为差分格式。 2. 非稳态导热方程的完整的差分格式(步骤)
二. 显式差分格式
Ti n1 Ti n t
a
n n Ti n 2 T T 1 i i 1
( x ) 2
即显式差分方程。 ④式 由②式离散得:Ti 0
T0 (i 2,3,, m 1) ⑤式
11
第一节 差分格式 注意边界节点在初始时刻的温度值应由边界条件来提供。 由③式所示的边界条件在离散区域内表示为给定边 界节点在时刻t=0,1,2,…的温度值,即:
t ( ) 2
(T
n 1 i 1
2Ti
n1
n 1
T
n1 i 1
n 1 i 1
)
t 令f ( 2 ,则: )
Ti Ti
n
f (T
n1 i 1
2Ti
T
)
显式算法与隐式算法的区别

显式算法与隐式算法得区别1、显式算法最大优点就是有较好得稳定性。
动态显式算法采用动力学方程得一些差分格式(如广泛使用得中心差分法、线性加速度法、Newmark法与wilson法等),不用直接求解切线刚度,不需要进行平衡迭代,计算速度快,时间步长只要取得足够小,一般不存在收敛性问题。
因此需要得内存也比隐式算法要少。
并且数值计算过程可以很容易地进行并行计算,程序编制也相对简单。
但显式算法要求质量矩阵为对角矩阵,而且只有在单元级计算尽可能少时速度优势才能发挥。
因而往往采用减缩积分方法,容易激发沙漏模式,影响应力与应变得计算精度。
静态显式法基于率形式得平衡方程组与Euler向前差分法,不需要迭代求解。
由于平衡方程式仅在率形式上得到满足,所以得出得结果会慢慢偏离正确值。
为了减少相关误差,必须每步使用很小得增量。
2、隐式算法隐式算法中,在每一增量步内都需要对静态平衡方程进行迭代求解,并且每次迭代都需要求解大型得线性方程组,这以过程需要占用相当数量得计算资源、磁盘空间与内存。
该算法中得增量步可以比较大,至少可以比显式算法大得多,但就是实际运算中上要受到迭代次数及非线性程度得限制,需要取一个合理值。
3、求解时间t使用显式方法,计算成本消耗与单元数量成正比,并且大致与最小单元得尺寸成反比;应用隐式方法,经验表明对于许多问题得计算成本大致与自由度数目得平方成正比;因此如果网格就是相对均匀得,随着模型尺寸得增长,显式方法表明比隐式方法更加节省计算成本。
所谓显式与隐式,就是指求解方法得不同,即数学上得出发点不一样。
并不就是说显式只能求动力学问题,隐式只能求静力学问题,只就是求解策略不通。
显式求解就是对时间进行差分,不存在迭代与收敛问题,最小时间步取决于最小单元得尺寸。
过多与过小得时间步往往导致求解时间非常漫长,但总能给出一个计算结果。
解题费用非常昂贵。
因此在建模划分网格时要非常注意。
隐式求解与时间无关,采用得就是牛顿迭代法(线性问题就直接求解线性代数方程组),因此存在一个迭代收敛问题,不收敛就得不到结果。
隐式差分方程课件

代入微分方程(2.26),得到Crank-Nicolson格式。
基于如同Crank-Nicolson格式一样的六个网 格结点可获得另一精度较高的差分格式,如在 2 D 前式(2.42)中仅保留直到 x 的项,即有
(1
由式(2.19.3),可令 则可得 代入上式,则有如下差分格式:
1 1 2 n 1 2 n kDx )um (1 kDx )um 2 2 1 2 1 2 n 2 n Dx um 2 x (1 x )um h 12 1 2 1 2 1 2 Dx 2 x (1 x ) h 12
n 1 n (1 r x2 )U m [1 (1 )r x2 ]U m
n 1 n n n 1 n 1 n ( 1 2 r ) U r ( 1 )( U U ) r ( U U ) [ 1 2 r ( 1 )] U m m 1 m 1 m 1 m 1 m ,0 1 (2.46) 或者
(2.45) 它称为Douglas差分格式,具有截断误差阶 (k 2 h4 )。
1 1 2 n 1 1 1 2 n [1 (r ) x ]U m [1 (r ) x ]U m 2 6 2 6
例2.1 解初边值问题
u 2u t x 2 u t 0 sin x u (0, t ) u ( , t ) 0
表2.2
一维热传导方程的差分法

一维热传导方程的差分法一维热传导方程是描述材料内部温度分布随时间变化的数学模型。
它在许多实际工程问题中起着重要的作用,比如热传导、材料加工、建筑设计等。
差分法是一种用于数值求解偏微分方程的常用方法,其原理是将偏微分方程中的导数项用差分近似代替,然后将求解区域划分为离散点,最终得到一个代数方程组。
本文将介绍一维热传导方程的差分法求解过程。
一维热传导方程可以写成如下形式:\[\frac{\partial u}{\partial t} = \alpha \frac{\partial^2 u}{\partial x^2}\]\(u(x, t)\)表示材料内部温度分布,\(x\)是空间坐标,\(t\)是时间,\(\alpha\)是热扩散系数。
为了使用差分法求解该方程,我们需要对空间和时间进行离散化。
假设求解区域为\(0 \leq x \leq L\),时间区间为\(0 \leq t \leq T\),将空间和时间分别划分成\(N_x\)和\(N_t\)个小区间,步长分别为\(\Delta x = \frac{L}{N_x}\)和\(\Delta t = \frac{T}{N_t}\)。
接下来,我们将使用显式差分格式对一维热传导方程进行离散化。
我们定义离散点\(u_i^n = u(i\Delta x, n\Delta t)\),用\(u_i^n\)表示时间\(n\)、空间\(i\)处的温度。
那么热传导方程可以用差分格式表示为:\[\frac{u_i^{n+1} - u_i^n}{\Delta t} = \alpha \frac{u_{i+1}^n - 2u_i^n +u_{i-1}^n}{\Delta x^2}\]为了进行数值求解,我们需要给定初始条件和边界条件。
初始条件可以表示为:\[u_i^0 = f(i\Delta x)\]边界条件可以是温度固定或热传导定律,比如:\[u_0^n = g_1(t), u_{N_x}^n = g_2(t)\]或者\[\frac{\partial u}{\partial x}(0, t) = 0, \frac{\partial u}{\partial x}(L, t) = 0\]接下来,我们可以通过迭代计算离散点的温度值来求解一维热传导方程。
有限元分析基础-隐式与显式算法的区别

有限元分析基础- 显式与隐式算法的区别所谓显式和隐式,是指求解方法的不同,即在数学上的计算方法不一样,是两种不同针对时间的积分方法。
显式求解是对时间进行差分,不存在迭代和收敛问题,最小时间步取决于最小单元的尺寸。
过多或过小的时间步都会导致求解时间非常漫长,但总能给出一个计算结果。
隐式求解和时间无关,采用的是牛顿迭代法(线性问题就直接求解线性代数方程组),因此存在一个迭代收敛问题,不收敛就得不到结果。
在某些情况下,显式算法的计算效率远高于隐式算法,尤其是在多处理器并行运算的场景下,对于自由度较大的三维结构,显式算法可能具有较高的计算效率。
然而,对于自由度较小的二维结构,隐式算法可能更适合,因为它在每个增量步内不需要进行迭代,从而减少了计算时间。
总结来说,隐式方法适用于需要高计算精度和稳定性的场景,而显式方法则适用于需要高计算效率的场景。
显式算法与隐式算法的区别

显式算法与隐式算法的区别显式算法与隐式算法的区别1、显式算法最⼤优点是有较好的稳定性。
动态显式算法采⽤动⼒学⽅程的⼀些差分格式(如⼴泛使⽤的中⼼差分法、线性加速度法、Newmark法和wilson法等),不⽤直接求解切线刚度,不需要进⾏平衡迭代,计算速度快,时间步长只要取的⾜够⼩,⼀般不存在收敛性问题。
因此需要的内存也⽐隐式算法要少。
并且数值计算过程可以很容易地进⾏并⾏计算,程序编制也相对简单。
但显式算法要求质量矩阵为对⾓矩阵,⽽且只有在单元级计算尽可能少时速度优势才能发挥。
因⽽往往采⽤减缩积分⽅法,容易激发沙漏模式,影响应⼒和应变的计算精度。
静态显式法基于率形式的平衡⽅程组与Euler向前差分法,不需要迭代求解。
由于平衡⽅程式仅在率形式上得到满⾜,所以得出的结果会慢慢偏离正确值。
为了减少相关误差,必须每步使⽤很⼩的增量。
2、隐式算法隐式算法中,在每⼀增量步内都需要对静态平衡⽅程进⾏迭代求解,并且每次迭代都需要求解⼤型的线性⽅程组,这以过程需要占⽤相当数量的计算资源、磁盘空间和内存。
该算法中的增量步可以⽐较⼤,⾄少可以⽐显式算法⼤得多,但是实际运算中上要受到迭代次数及⾮线性程度的限制,需要取⼀个合理值。
3、求解时间t使⽤显式⽅法,计算成本消耗与单元数量成正⽐,并且⼤致与最⼩单元的尺⼨成反⽐;应⽤隐式⽅法,经验表明对于许多问题的计算成本⼤致与⾃由度数⽬的平⽅成正⽐;因此如果⽹格是相对均匀的,随着模型尺⼨的增长,显式⽅法表明⽐隐式⽅法更加节省计算成本。
所谓显式和隐式,是指求解⽅法的不同,即数学上的出发点不⼀样。
并不是说显式只能求动⼒学问题,隐式只能求静⼒学问题,只是求解策略不通。
显式求解是对时间进⾏差分,不存在迭代和收敛问题,最⼩时间步取决于最⼩单元的尺⼨。
过多和过⼩的时间步往往导致求解时间⾮常漫长,但总能给出⼀个计算结果。
解题费⽤⾮常昂贵。
因此在建模划分⽹格时要⾮常注意。
隐式求解和时间⽆关,采⽤的是⽜顿迭代法(线性问题就直接求解线性代数⽅程组),因此存在⼀个迭代收敛问题,不收敛就的不到结果。
隐式求解与显式求解

大多数非线性动力学问题一般多是采用显式求解方法,特别是在求解大型结构的瞬时高度非线性问题时,显示求解方法有明显的优越性。
下面先简要对比一下隐式求解法和显示求解法。
动态问题涉及到时间域的数值积分方法问题。
在80年代中期以前,人们基本上采用纽曼法进行时间域的积分。
根据纽曼法,位移、速度和加速度有着如下关系:u(i+1)=u(i)+△t*v(i)[(1—2p)a(i)+2p*a(i+1)] (1)v(i+1)=V(i)+△t[(1-2q)a(i)+2qa(i+1)] (2)上面式子中 u(i+1),u(i)分别为当前时刻和前一时刻的位移,v(i+1)和V(i)为当前时刻和前一时刻的速度,a(i+1)和a(i)为当前时刻和前一时刻的加速度,p和q为两个待定参数,△t 为当前时刻与前一时刻的时问差,符号* 为乘号。
由式(1)和式(2)可知,在纽曼法中任一时刻的位移、速度、加速度都相互关联,这就使得运动方程的求解变成一系列相互关联的非线性方程的求解,这个求解过程必须通过迭代和求解联立方程组才能实现。
这就是通常所说的隐式求解法。
隐式求解法可能遇到两个问题。
一是迭代过程不一定收敛,二是联立方程组可能出现病态而无确定的解。
隐式求解法最大的优点是它具有无条件稳定性,即时间步长可以任意大。
如果采用中心差分法来进行动态问题的时域积分,则有如下位移、速度和加速度关系式:u(i+1)=2u(i)-u(i-1)+a(i)(△t)^2 (3)v (i+1)=[u (i+1)-u (i-1)]/2(△t) (4)式中u(i-1),为i -1时刻的位移。
由式(3)可以看出,当前时刻的位移只与前一时刻的加速度和位移有关,这就意味着当前时刻的位移求解无需迭代过程。
另外,只要将运动过程中的质量矩阵和阻尼矩阵对角化,前一时刻的加速度求解无需解联立方程组,从而使问题大大简化,这就是所谓的显式求解法。
显式求解法的优点是它既没有收敛性问题,也不需要求解联立方程组,其缺点是时间步长受到数值积分稳定性的限制,不能超过系统的临界时间步长。
热传导方程的数值求解

热传导方程的数值求解热传导方程是描述热传导现象的一种常见偏微分方程。
它在物理学、工程学以及其他领域中都有广泛的应用。
在本文中,我们将讨论热传导方程的数值求解方法。
通过数值求解,我们可以得到方程的近似解,从而更好地理解和分析热传导过程。
热传导方程的一般形式可以写作:$\frac{\partial u}{\partial t} = \alpha \nabla^2 u$其中,$u$是温度分布随时间和空间变化的函数,$\alpha$是热扩散系数。
上式表示了温度分布随时间变化的速率与温度分布的曲率之间的关系。
要求解这个方程,并得到温度分布随时间变化的近似解,我们可以使用一些常见的数值方法。
其中,有限差分法是最常见的一种方法。
有限差分法是将求解区域离散化,将连续的空间和时间分割成有限的小区域。
通过在这些小区域上近似描述方程,我们可以用差分方程代替原方程,进而得到方程的数值解。
对于热传导方程,我们可以将时间和空间分割成一系列网格点。
在每个网格点上,我们可以用温度的数值逼近代替温度的连续函数值。
这样,我们可以得到在每个时间步长和空间步长上的温度逼近。
通过迭代计算,我们可以得到整个时间和空间范围内的温度近似解。
在具体的计算过程中,我们可以采用显式差分法或隐式差分法。
显式差分法是一种较为简单的方法,它根据当前时间步的温度逼近来计算下一个时间步的温度逼近。
然而,显式差分法需要满足一定的稳定性条件。
在一些情况下,显式差分法可能会导致数值解不稳定和发散。
为了克服这些限制,我们可以使用隐式差分法。
隐式差分法通过在时间步迭代过程中使用未知的时间步温度逼近,可以得到更加稳定的数值解。
然而,隐式差分法的计算复杂度较高,需要求解一个线性方程组。
除了有限差分法之外,还有其他的数值方法可以用于求解热传导方程。
例如,有限元法、辛方法等。
每种方法都有其优缺点和适用范围。
根据具体的问题和计算需求,选择适合的数值方法是至关重要的。
在实际求解过程中,还需要注意数值参数的选择。
差分方法稳定性介绍

03
多尺度问题的求解
多尺度问题广泛存在于科学和工程领 域,对差分方法的稳定性提出更高要 求。未来研究中,将更加注重多尺度 问题的求解方法和技术研究。
THANKS
感谢观看
差分方法稳定性介绍
• 引言 • 差分方法的基本原理 • 差分方法的稳定性分析 • 差分方法的误差分析 • 提高差分方法稳定性的措施 • 差分方法稳定性的应用案例 • 总结与展望
01
引言
差分方法的概念
差分方法
差分方法是一种数值计算方法,用于求解微分方程的近似解。它通过构造差分 格式来逼近微分方程的导数,从而将微分方程转化为代数方程进行求解。
差分方法的稳定性分析
稳定性定义
数值稳定性
差分方法在数值计算过程中,对于初 始条件和边界条件的小扰动,解的变 化能够保持有界,即不会因计算步数 的增加而无限放大。
渐近稳定性
当计算步数趋于无穷时,差分方法的 解能够收敛到真实解,即误差能够逐 渐减小并趋于零。
稳定性判据
要点一
Lax-Richtmyer稳定性判据
对于线性偏微分方程,如果差分格式能够保持离散能量不 增长,则该格式是稳定的。该判据提供了判断差分格式稳 定性的一个充分条件。
要点二
Courant-Friedrichs-Lewy (CFL…
对于显式差分格式,为了保证计算的稳定性,时间步长与 空间步长之间需要满足一定的关系,即CFL条件。该条件 给出了时间步长的上限。
边界条件的处理
Dirichlet边界条件
直接给出边界上的函数值,处理简单。
Neumann边界条件
给出边界上的法向导数值,需要通过差分 近似进行处理。
Robin边界条件
周期边界条件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
2
3
4
5
6
求解区域:
边界条件:
初始条件:
内部节点:
A = sparse(nx,nx); for i=2:nx-1 A(i,i-1) = -s; A(i,i ) = (1+2*s); A(i,i+1) = -s; end
边界节点:
A(1 ,1 ) = 1; A(nx,nx) = 1;
载荷项:
rhs = zeros(nx,1); rhs(2:nx-1) = Told(2:nx-1); rhs(1) = Tleft; rhs(nx) = Tright;
稳定性(stability):如果偏微分方程的严格解析解有界,差分格式给出的 解也有界,称该差分格式是稳定的;如果差分格式给出的解是无界的,则 称该差分格式是不稳定的。
稳定性反映了差分格式在计算中控制误差传递的能力
收敛性(convergence):如果当时间和空间步长趋于零时,FDE解趋于PDE
0
s 2 2s s
0
0 0
0
0
0
s 2 2s s
0
0
0 1
内部节点:
for i=2:nx-1 A(i,i-1) = -s; A(i,i ) = (2+2*s); A(i,i+1) = -s; end
边界节点:
A(1 ,1 ) = 1; A(nx,nx) = 1;
1 0
0
0
0 0
s
2 2s
特点:结构简洁,直接求解,求解速度快。
但是,时间步长需满足:
显式差分格式才能得到稳定的数值解,否则,数值解将会不稳定而振荡。
显示差分格式示意图
2. 隐式差分格式:
时间一阶精度 空间二阶精度
隐式有限差分格式
Crank-Nicolson 隐式差分格式
T n1 i
Ti n
t
2(x)2
((Tin11
内部 边界
Crank-Nicolson 隐式差分格式的程序实现
sTi
n1 1
(2
2s)Ti n 1
sTi
n1 1
sTi
n 1
(2
2s)Ti n
sTi
n 1
1
2
3
4
5
6
边界条件:
初始条件:
Ac(n1) Bc(n)
1 0
0
0
0
s
2 2s
s
0
0
0
A
0
s 2 2s s 0 0 s 2 2s s
当dt=1,tau=0.7时,显式差分格式不稳定,结果振荡; 隐式差分格式稳定,结果不精确。
当dt=0.5,tau=0.7时,显式差分格式稳定, 隐式差分格式稳定,结果不精确,两者都不精确。
当dt=0.1,tau=0.7时,显式差分格式稳定; 隐式差分格式稳定;结果都比较精确。
当dt=0.01,tau=0.7时,显式差分格式稳定; 隐式差分格式稳定;结果都相当精确。
解,称该差分格式是收敛的。
如果
lim (U
h 0, t 0
m i, j
,k
um i, j,k
)
0
则称该差分格式是收敛的。
收敛性描述的是当差分网格无限细化时,差分方程的解是否具有无限逼 近偏微分方程的解的能力
Lax等价定理(Lax equivalence theorem):如果逼近一个给定问题的差 分格式是相容的,那么该差分格式的收敛性与稳定性互为充分必要条件。
• 2.时间步长和空间步长的选择受限制。通常要求时间步长 足够小。
隐式差分格式(implicit difference scheme)
特点
G(Y (t),Y (t t)) 0
1. 时间步长和空间步长的选择不受限制;
2. 需要联立解方程组
例子: 1. 显式差分格式:
左端:n+1时刻的值; 右端:n时刻的值。
s
0
0பைடு நூலகம்
0
0 s 2 2s s
0 0
B
0
0
s
2 2s
s
0
0 0
0
s 2 2s s
0 0
0
0
0 1
内部节点: 边界节点:
B= sparse(nx,nx); for i=2:nx-1 B(i,i-1) = s; B(i,i ) = (2-2*s); B(i,i+1) = s; end
B(1 ,1 ) = 1; B(nx,nx) = 1;
相容性是比较容易满足的。在此基础上,如果满足了稳定性条件,差分格式的 收敛性就自动满足。
2.5 有限差分法实例
U=100
U=0
2U 0
j+1 (i-1,j+1) (i,j+1) 2
j (i-1,j)
j-1 (i-1,j-1)
3 h2 0 (hi3,j) h1 h44 (i,j)
(i+1,j+1)
T1n T2n
c(n)
T3n T4n
T5n T6n
例子:牛顿冷却定律:温度高于周围环境的物体向周围媒质传递热量 逐渐冷却时所遵循的规律。当物体表面与周围存在温度差时,单位时 间从单位面积散失的热量与温度差成正比。
Tair
Tcap
一阶常微分方程的数值解 首先对时间和温度进行离散:
dT f (T ,t) dt
j (i-1,j)
j-1 (i-1,j-1)
3
h2 0
(hi3,j)
h1
h44
(i,j)
(i+1,j+1)
1 (i+1,j) (i+1,j-1)
局部节点编号 总体节点编号
i-1
i i+1
U (i 1, j) U (i 1, j) U (i, j 1) U (i, j 1) 4U (i, j) 0
回顾
1. 有限差分法基础 2. 差分格式 3. 差分方程 4. 边界条件的处理 5. 相容性、稳定性和收敛性
回顾
1. 有限差分法的相容性、稳定性和收敛性
相容性:针对差分格式而言,在时间步长和空间步长趋近于零的情况下, 如果差分格式的截断误差(差分格式与原有偏微分方程之差)的模趋近于零, 则该差分格式与原偏微分方程是相容的,或称该差分方程与原偏微分方程 具有相容性。
a(121,106)=-0.25; a(135,134)=-0.25; a(135,120)=-0.25; a(15,14)=-0.25; a(15,30)=-0.25; for i=2:14
a(i,i-1)=-0.25; a(i,i+1)=-0.25; a(i,i+15)=-0.25; end for i=122:134 a(i,i-1)=-0.25; a(i,i+1)=-0.25; a(i,i-15)=-0.25; end for i=1:7 for j=2:14; a(15*i+j,15*i+j-1)=-0.25; a(15*i+j,15*i+j+1)=-0.25; a(15*i+j,15*i+j+15)=-0.25; a(15*i+j,15*i+j-15)=-0.25; end end
1 (i+1,j) (i+1,j-1)
i-1
i i+1
U=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 U=0
U (i 1, j) U (i 1, j) U (i, j 1) U (i, j 1) 4U (i, j) 0
j+1 (i-1,j+1) (i,j+1) 2
显式与隐式差分格式
主讲人:胡才博 中国科学院大学地球科学学院 中国科学院计算地球动力学重点实验室
显式和隐式:求解问题与时间相关
• 显式差分格式(explicit difference scheme) 差分方法中可逐层逐点分别求解的格式。
• 特点
Y (t t) F (Y (t))
• 1. 不联立解方程;
T1n T2n
c(n)
T3n T4n
T5n T6n
sTi
n1 1
(2
2s)Ti n 1
sTin11
sTi
n 1
(2
2s)Ti n
sTi
n 1
Ac(n1) Bc(n)
A = sparse(nx,nx);
1 0
0
0
0 0
s
2 2s
s
0
0
0
0 s 2 2s s 0 0
A
0
sTin11
(2
2s)Ti n 1
sTi
n1 1
sTi
n 1
(2
2s)Ti n
sTin1
一般差分格式
1/2
Forward-Time Central-Space method Backward -Time Central -Space method Crank-Nicolson 隐式差分格式
一种隐式差分格式的程序实现
0
0
0
0
T n1 1
T n1 2
c ( n 1)
T n1 3
T n1 4
0 0
0
0
0
s 2 2s s
0
0
0
1
T n1 5
T n1 6
1 0
0
0
0 0
s
2 2s
s
0
0
0
0 s 2 2s s
0 0