有限元法真面目
学过高等数学的同学们可能知道,我们生活在一个骗局之中。在看书的时候,我们往往会惊讶与高数书上,解微分方程的奇技淫巧。然而,nothing could be further from the truth!
实际情况是,我们往往解不出方程组的解析解。
那么,求解其数值解不行吗?现在 Matlab 中有很多求解微分方程的数值解法呀!欧拉法、龙格库塔法,他不香么?
香是香,但在许多物理问题中,我们知道,很多现象都可以化成一个微分方程组来解决,例如流体问题、热传导问题、电动力学问题。这些问题,问了直观地展示其结果,通常都是用有限元—— Finite Element Method (FEM) 的方法求解的。
很多工程师们都用过一些软件,比如 COMSOL、ANSYS,这些软件,都是基于有限元法求解的物理问题。很多大学的学子们,可能在读论文的时候,都会对 FEM 感到非常的亲切。可能会被这些,将一个问题拆分成一个个子单元的问题,来解决实际问题的方法所吸引。的确,这很接近于我们的微观物理学流派的观念——量化。
最近不是有量化投资了么?虽然本人也不知道是什么东东。
实际上,有限元这个方法,在国内或国外,总是被误解。很多学者认为,有限元法,就是一种特殊的建模方法。我想,这应该归功于 COMSOL 和 ANSYS 这类应用软件吧。但是,这里要告诉大家,FEM 本质上,是一种求解微分方程的方法!!!下面,我们将来详细谈谈。
泛函
在谈到有限元法的时候,我们应该知道泛函,这是一个非常重要的概念,且请言之:
所谓泛函,就是函数的函数(注意,这不是一个严格的定义)。
例如,若要求求出平面内,两点 ( x 1 , y 1 ) , ( x 2 , y 2 ) (x_1,y_1),(x_2,y_2) (x1,y1),(x2,y2)之间距离最短的路径的表达式,则问题转换为如下变分问题:
I [ y ( x ) ] = ∫ x 1 x 2 1 + y ′ 2 ( x ) d x I[y(x)]=\int_{x_{1}}^{x_{2}} \sqrt{1+y^{\prime 2}(x)} \mathrm{d} x I[y(x)]=∫x1x21+y′2(x)dx
于是,变量 I [ y ( x ) ] I[y(x)] I[y(x)]就是一个泛函,他与函数 y ( x ) y(x) y(x)的表达式有关。
于是,我们重述一下问题,原问题就变成:找到一个函数 y ( x ) y(x) y(x) 使得泛函 I [ y ( x ) ] I[y(x)] I[y(x)] 最小。似成相识, isn’t it ?
让我们回顾一下这个问题,找到一个数 x x x 使得函数 z ( x ) z(x) z(x) 最小,一般情况下,我们是怎么解的?当然是:
d z ( x ) d x = 0 \frac{dz(x)}{dx} = 0 dxdz(x)=0
我们称之为微分问题——函数的极值问题。
于是,我们也可以同样用于泛函,即:
{ I = ∫ x 1 x 2 1 + y ′ 2 ( x ) d x → min y ( x 1 ) = y 1 , y ( x 2 ) =