在课程上没有提到泰勒展开式,其实开篇大部分都在讲的泰勒展开式.我会从直接从泰勒展开式开始:
先复习下泰勒展开式:
忽略误差项,令
,
则
---A
---B
式A+式B可以得到,忽略高阶项可以得到:
式A-式B可以得到,忽略高阶项可以得到:
我们就得到了关于f(x)的一阶,二阶微分的近似计算式,这个就是有限差分法的最基本的想法.(如果你继续计算去算的话,还可以得到三阶,四阶微分的近似计算式,不过在CEM中很少会用到).
接下来会去对这个上述结论如何在计算机计算中应用做下展开.
有限差分法在计算中有2种方法,如下图所示, 一种是传统的FDM,另一种是改进型的, 都会做下简单介绍.
1. 传统的FDM计算步骤:
a. 需要求解的微分方程如下:
b. 把上面得到的近似求解公式带入上述微分方程可以得到:
c. 把上面式子整理一下,得到:
d. 按照上述式子,把它map到矩阵如下图:
f(1)~f(N)是求解的值, c(1)~c(N)是加的已知的source, 只要求出a(k),b(k),就能解出我们想要的结果
但这个矩阵很难算,一般不会用这个方式
2. 改进型的FDM:
把当做是一个矩阵算符, 记成
,
, 然后这个微分方程
可以写成:
然后我们需要去看是什么:
先看一个简单的运算,如果是b(x)f(x)写成矩阵运算形式,是对角矩阵,对角线上每一个值代表了b(x)
接下来一样的,先看是什么: 我们已经知道了
..
和
然后再反推出矩阵形式如下:
只是需要注意的是,并没有被定义,这个取决于边界条件,
如果求解的周期性结构的话,;
简单一点的话, 就可以认为;
具体还是要实际情况实际分析.
同理可求得:
Maxwell方程是x,y,z的偏微分方程,用类似的方式也可以求得偏微分方程的矩阵算符,这边就简单写下
先看二阶偏微分,
取决于边界条件.
参考资料: Dr.Raymond Rumpf在youtube上的CEM课程