差分方程
差分方程¶
对于一个偏微分方程,采用有限差分来近似从而得到差分方程。
比如热传导方程
\[\frac{\partial{T}}{\partial{t}}=\alpha\frac{\partial^2T}{\partial x^2}\]
用一阶前差代替\(\frac{\partial{T}}{\partial{t}}\),得
\[\left(\frac{\partial{T}}{\partial{t}}\right)^n_i=\frac{T_i^{n+1}-T_{i}^{n}}{\Delta t}+\dots\]
n表示不同时间,i表示不同位置
用中心型差代替\(\frac{\partial^2T}{\partial x^2}\),得
\[\left(\frac{\partial^2T}{\partial x^2}\right)^n_i=\frac{T_{i+1}^{n}-2T_{i}^n+T_{i-1}^{n}}{(\Delta x)^2}-\dots\]
用有限差分表示该偏微分方程,有
\[\frac{T_i^{n+1}-T_{i}^{n}}{\Delta t}=\frac{T_{i+1}^{n}-2T_{i}^n+T_{i-1}^{n}}{(\Delta x)^2}\quad(1)\]
该方程即差分方程。
显格式¶
整合式(1),有
\[T_i^{n+1}=T^n_i+\alpha\frac{\Delta t}{(\Delta x)^2}(T_{i+1}^{n}-2T_{i}^n+T^n_{i-1})\]
通过该差分方程,只要知道初始时刻不同位置的值,就可以利用初值进行不断地推进求解,从而得到不同时刻的解。
显然,每一个差分方程都只含有一个未知数,因此可以直接求解,将这种格式的差分方程称为显格式,类似于显函数的定义
隐格式¶
整合式(1),把空间差分写成n和n+1时刻的平均,这样可得到一个隐格式
\[\frac{T_i^{n+1}-T_{i}^{n}}{\Delta t}=\alpha\frac{\frac{1}{2}(T_{i+1}^{n+1}+T_{i+1}^{n})-\frac{1}{2}(T_{i}^{n+1}+T_{i}^{n})+\frac{1}{2}(T_{i-1}^{n+1}+T_{i-1}^{n})}{(\Delta x)^2}\]
上述格式称为C-N格式
该格式包含了三个未知数(n+1时刻对应的3个值),因此不能单数求解,需要将该方程所有点的表达式联立起来求解。
显格式和隐格式比较¶
隐格式的求解比较复杂,那为什么还要用?
因为在显式方法中,需要给定一个合适的\(\Delta t\),如果\(\Delta t\)过大,推进求解就会不稳定,可能出现数值达到无穷大或者对负数开根号等无法计算的情况,因此会选取较小的\(\Delta t\),导致网格点增多,总计算时间延长。
隐式方法对\(\Delta t\)就没有这样的要求。