其实这个应该放在 FDM里面去记录的。只是我那部分写的太乱了。嗯,我每篇都写的很乱哈哈。
Both Euler's method are of first order, Crank-Nicholson (also called Trapezoidal method) is second order:
则通过克兰克-尼科尔森方法导出的差分方程是
第n步上采用前向欧拉方法与第n+1步上采用后向欧拉方法的平均值
(注意,克兰克-尼科尔森方法本身不是这两种方法简单地取平均,方程对解隐式依赖)
![](https://img.haomeiwen.com/i7086733/7a0f6074792afb6e.png)
Crank-Nicholson是二阶的方法:
![](https://img.haomeiwen.com/i7086733/e0ee249541b8b5a6.png)
我暂时没有理解这个二阶的意思。
注意,这是一个隐式方法,需要求解代数方程组以得到时间域上的下一个u值。
- 如果偏微分方程是非线性的,中心差分后得到的方程依旧是非线性方程系统,因此在时间步上推进会涉及求解非线性代数方程组。
- 许多问题中,特别是线性扩散,代数方程中的矩阵是三对角的,通过三对角矩阵算法可以高效求解,这样,算法的时间复杂度由直接求解全矩阵的O(n^3)转化为 O(n)。
The local truncation error is
![](https://img.haomeiwen.com/i7086733/95b5eaf2ee9d42c9.png)
这个...和后向比较一下:
![](https://img.haomeiwen.com/i7086733/b184fd9bd3496c5b.png)
再和前向比较一下
![](https://img.haomeiwen.com/i7086733/de956dde528dd07f.png)
设 f(t,y)=λy ,
![](https://img.haomeiwen.com/i7086733/003d3db7a50c9d23.png)
![](https://img.haomeiwen.com/i7086733/c95ce15933a6b791.png)
网友评论