有限元方法 本章说明弱形式如何利用有限元方法来进行离散。假设我们需要离散以下扩散问题: 这是一个对流-扩散问题的特殊情况,其中,。 有限元的基本实现是将整个计算域Ω离散为多个特别简单的形状的小单元,比如2D中的三角形,3D中的四面体等等。相应的网格,例如三角形,由边和节点组成。下一步就是要选择一个比较容易实现的一些近似方法,其中一种比较简单的方法就是将解表示为采用线性多项式插值的所谓基函数的和。基函数的构造方法是指定某个节点为1,而相邻的节点为0,二者之间的值就是从0到1线性变化。这里说的相邻指的是中间有一条边将其连接起来。 遍历三角形网格的所有节点(从1到N)。定义节点i的基函数为,也就是在节点i处其值为1,其他点处值为0。注意只是在节点i及其相邻的三角形内不为零。现在假设真实值u可以用基函数的求和来近似描述: 参数是在节点i的值。同样,我们可以对试函数进行类似处理: 下标h表示离散函数属于由所有三角形边中最长边表示的具有确定的网格尺寸h的网格。 由于我们可以任意选择试函数,因此可以将除了j点以外的所有的设置为零, 接下来我们将所有的试函数(j=1,...,N)输入到弱形式中去,每个试函数都可以得到一个方程。这样可以生成一个线性代数系统,系统矩阵就是我们所说的刚度矩阵。为什么我们可以自由选择试函数,不妨回想一下前面提到的弱形式需要对所有可取的试函数成立。选择试函数是有限元方法的重要环节,因为他在很大程度上影响着刚度矩阵。由于刚度矩阵中很多项为零,所以一般是稀疏矩阵。 当我们使用试函数的时候,生成的有限元刚度矩阵应该是一个方阵。如果弱形式本身定义良好的话,刚度矩阵应该是非奇异的,也就是说系统有一个唯一解。 现在考虑扩散方程的弱形式: 将表达式写成离散形式: 方程重新排列: 采用矩阵标注可得: 或者: 在这里刚度矩阵K是: 解矢量U的单元为,载荷矢量L的单元为, 现在我们明白为什么选择基函数和试函数很关键了。如果我们关注刚度矩阵,会发现其中很多元素为零,因为前面已经提到每个都是大部分为零,同样的梯度也是大部分为零的。有很多有效的算法去求解这类稀疏矩阵,COMSOL Multiphysics提供一套稀疏线性系统求解器。 有限元方法同样适用于非线性问题。非线性方法一般来说采用迭代的算法,每一次迭代就是求解一个与上面类似的线性弱形式方法。 抽象和几何解释 为什么有限元可以解决问题,它是如何解决问题的?前面的讨论中可以找到一些答案。为了有一个更清晰的答案,我们需要了解一些更多的泛函的概念。我们将发现有限元方法通过一种优化方法将解投影到一个有限维函数空间来求解。 标量积 为了得到有限元方法的几何解释,或脑海中的意象,我们需要熟悉标量积的概念。在线性代数中,我们知道两个矢量f和g的标量积为 这里的矢量f和g属于3维矢量空间。标量积可以推广到任意维N, 标量积有时也称做内积。 如果两个矢量正交, 一个矢量f可以通过标量积投影到另一个矢量g 其中fp是与g平等的投影矢量: 矢量差 与g正交: 投影矢量的唯一性特征是原始和投影矢量之间的差与它所投影的矢量正交。如果需要找到在方向g上与f最近的矢量,fp就是我们的答案。矢量e可以看作是关于f到fp之间的近似误差。换句话说,误差矢量e与矢量g正交。后面在对有限元进行几何解释时将用到这个结论。但首先我们得介绍一些泛函分析的概念。 与矢量不同,泛函分析讲的是函数,它们必须属于无限维的矢量空间。我们可以积分形式定义一个无限维矢量空间(函数空间)中的标量积: 如果两个函数正交,则有 进一步将标量积的概念推广,并且考虑包含函数梯度的被积函数, 下标1和2用来说明上面是两种不同的标量积。 Hilbert空间 如果对于一个标量积,我们只考虑那些与自身进行的标量积(积分)有一个有限值的函数u, 我们说这些函数属于一个确定的函数类,或函数空间。由标量积和定义域Ω组成的函数空间就被称为Hilbert空间。 对应于上面的标量积1的Hilbert空间通常标记为L2,与标量积2对应的Hilbert空间常称为H1。通常空间L2中的函数比H1中的多,因为H1中的函数自动地存在于L2中,反之则不一定。我们也可以将这种现象称为H1是L2的一个子空间,或 |
分享到
豆瓣网
开心网
人人网
QQ书签
Google
1657个朋友已经阅读过这篇文章
用户评论
没有找到数据. , |