有限差分法的一个算例
——计算流体力学大作业
作者:郝柏函2010011545
指导:李嵩
1. 题目
编程计算热传导方程
?u?2u??2, t?0,x?[0,2],?=2 ?t?x?uu?0,?0
边界条件:x?0?xx?2初始条件:
ut=0=sin?x4
(1) 用FTCS格式
n?1njj?1u?sun??1?2s?un?sujj?1
?1nun?ujj?t???x2?unj?1n?2un?ujj?1?
?u?x?0是矛盾的,所以将其改
x?2分别在满足和不满足稳定性条件两种情况下计算,给出结果比较和分析。 (2)自选一种其他格式编程计算,并给出结果和分析 注:原题中给出的初始条件ut=0=sin为ut=0=sin?x2与边界条件
?x4
2. FTCS格式
2.1. 计算方法
2.1.1. 差分格式及其相容性
?1un?unj?u?2u?jnn??2,?2?un对于方程采用FTCS差分格式j?1?2uj?uj?1?,
?t?x?t?x即
其中,s??1nnun?sunjj?1??1?2s?uj?suj?1
(1.1)
??t?x2。以下讨论这一格式的相容性。
?1un?unjj
?t??u?O??t??t21?unnn2u?2u?u??O?x????j?1jj?1?x2?x2
所以
?1?un???u?unj??2u?jnnn?2?uj?1?2uj?uj?1??????2??O??t???O??x2? ???t???t?x?x???因此,该格式与原微分方程是相容的,而且对于时间精度是一阶的,对于空
间,精度是二阶的。 2.1.2. 稳定性与收敛性
对于适定的线性微分方程,格式如果差分格式,那么稳定和收敛是等价的。所以只需要讨论稳定性就可以了。
i?j??设un j?rne则(1.1)式可写为
即
rn?1e?ij???srne?ij?1????1?2s?rne?ij???srne?ij?1??
放大因子
rn?1?rn?sei???1?2s??se?i??
G?
rn?1?sei???1?2s??se?i?rn
?1?2s?2scos??1?2s?1?cos???1?4ssin2?2所以
为保证G?1,应有
1?4s?G?1
只要满足(1.2)式,差分格式就是稳定的。
s???t?x2?1 2(1.2)
2.1.3. 初始、边界条件处理以及全部计算过程
初始条件ut=0=sin?x2,差分格式为
边界条件ux?0?0,u1j=sin?j?x2 (1.3)
?u?x?0,为了保证空间的二阶精度,采用二次多项式来构造差分
x?2nn4um?1?um?2格式,结果为u?0,u?,其中m是x方向上位置的格点数。
3n1nm给出了初始、边界条件,以及之前的差分格式,就可以给出完整地算法: (1)首先用(1.3)式计算出第一个时层的温度;
n?1n?1(2)然后使用(1.1)式就算出下一时层的温度值,但是,此时u1,um还没有就算出,
然后利用边界条件求出un?11?0,un?1mn?1n?14um?1?um?2?
3(3)不断使用第(2)步,直至计算出所要求时层所对应的温度值 注:为了保证计算效率,s???t?x2不应过小。如果要求计算结果是稳定的,应满足(1.2)
式,如果要求不稳定,应不满足(1.2)式。
2.2. 计算结果与分析
本文采用matlab编程,程序见于第4小节。
在不稳定的差分格式下,计算结果是不可采信的,如图 1所示。
图 1 不稳定格式计算得到温度分布,s=1.04,其中,时间采用2400步,空间采用100步
采用不稳定格式虽然也能得到比较光滑的温度分布图,但是,根据本算例的物理意义,左端为恒定温度0,右端为绝热壁面,所以计算结果应该是,温度始终大于0,别且距左端越近,温度越低。可见,非稳定格式的计算结果是定性错误的。
而稳定格式的计算结果是可以采信的。如图 2,图 3,图 4所示。
图 2 稳定格式计算得到温度分布,s=0.05,其中,时间采用50,000步,空间采用100步
图 3 稳定格式计算得到温度分布,s=0.005,其中,时间采用500,000步,空间采用100步