研一数学基础复习笔记(十):Ritz、Galerkin 与有限元思想
1. 为什么面试前要看这个问题?
前面几篇主要回答了一个问题:
如何从微分方程、泛函、变分原理出发,理解力学问题的控制方程?
但真正做数值计算时,我们还需要回答另一个问题:
连续问题怎么变成计算机可以求解的代数方程组?
例如边值问题:
$$ y'' - y = 1,\quad y(0)=0,\quad y(L)=0 $$前一篇已经说明,它可以对应如下泛函:
$$ S[y] = \int_0^L \left[\frac{1}{2}(y')^2 + \frac{1}{2}y^2 + y\right] dx $$理论上,真实解是使泛函取极值的函数。
但问题是:函数空间是无限维的,计算机不可能直接在所有函数中寻找最优解。
于是数值方法的核心思想出现了:
用有限个基函数近似未知函数,把无限维问题转化成有限维问题。
例如假设:
$$ y(x) \approx y_a(x) = \sum_{i=1}^{n}a_iN_i(x) $$其中:
- $N_i(x)$ 是选定的基函数;
- $a_i$ 是待求系数;
- $y_a(x)$ 是近似解。
这样,原来要求一个未知函数 $y(x)$,就变成了求有限个未知系数 $a_i$。
这就是 Ritz 方法、Galerkin 方法和有限元方法共同的核心。
2. 核心概念
2.1 近似解的基本形式
在数值方法中,通常不会直接求真实解 $y(x)$,而是构造一个近似解:
$$ y_a(x) = \sum_{i=1}^{n}a_iN_i(x) $$也可以写成矩阵形式:
$$ y_a(x) = \mathbf{N}^{\mathrm{T}}(x)\mathbf{a} $$其中:
$$ \mathbf{N}(x) = \begin{bmatrix} N_1(x) \\ N_2(x) \\ \vdots \\ N_n(x) \end{bmatrix} $$ $$ \mathbf{a} = \begin{bmatrix} a_1 \\ a_2 \\ \vdots \\ a_n \end{bmatrix} $$这里最重要的思想是:
选定基函数之后,未知函数的求解就转化为未知系数的求解。
这和前面“线性空间、基与坐标”的思想是一致的。
函数 $y(x)$ 可以看成函数空间中的对象,基函数 $N_i(x)$ 就是用来表示它的一组基。
2.2 Ritz 方法的基本思想
Ritz 方法通常从泛函出发。
如果已知泛函:
$$ S[y] = \int_0^L \left[\frac{1}{2}(y')^2 + \frac{1}{2}y^2 + y\right] dx $$先假设近似解:
$$ y_a(x) = \mathbf{N}^{\mathrm{T}}(x)\mathbf{a} $$然后代入泛函,得到近似泛函:
$$ S_a(\mathbf{a}) = S[y_a] $$此时 $S_a$ 不再是关于函数的泛函,而是关于有限个系数 $a_i$ 的普通多元函数。
要求近似泛函取极值,只需要令:
$$ \frac{\partial S_a}{\partial a_i} = 0,\quad i=1,2,\cdots,n $$最后可以得到代数方程组:
$$ \mathbf{K}\mathbf{a} = \mathbf{f} $$所以 Ritz 方法的核心路线是:
$$ \text{泛函} \quad \Longrightarrow \quad \text{近似函数} \quad \Longrightarrow \quad \text{代数方程组} $$这就是把连续变分问题转化为有限维代数问题的过程。
2.3 Galerkin 方法的基本思想
Galerkin 方法通常从微分方程或弱形式出发。
假设原方程为:
$$ L[y] = 0 $$用近似解 $y_a$ 代入后,一般不会严格满足方程:
$$ L[y_a] \ne 0 $$于是定义残差:
$$ R(x) = L[y_a] $$Galerkin 方法要求残差对选定的测试函数正交:
$$ \int_0^L N_i(x)R(x)\,dx = 0,\quad i=1,2,\cdots,n $$如果测试函数和近似函数使用同一组基函数 $N_i(x)$,这就是 Bubnov-Galerkin 方法。
它的核心思想是:
虽然近似解不能让残差处处为零,但可以要求残差在选定的函数空间中“平均意义下为零”。
这就是加权残数法的一种特殊形式。
2.4 Ritz 方法和 Galerkin 方法的区别
Ritz 方法和 Galerkin 方法都能得到代数方程组,但出发点不同。
Ritz 方法从泛函出发:
$$ \delta S = 0 $$Galerkin 方法从残差正交出发:
$$ \int_0^L N_i(x)R(x)\,dx = 0 $$可以简单理解为:
- Ritz 方法强调“能量极值”;
- Galerkin 方法强调“残差正交”;
- 如果问题具有合适的变分结构,两者可能得到相同或非常接近的方程;
- 如果没有自然泛函,Galerkin 方法仍然可以从微分方程出发构造近似。
所以在面试中可以这样说:
Ritz 方法依赖泛函,Galerkin 方法依赖残差或弱形式。有限元方法常常可以从这两种角度理解。
3. 关键公式
3.1 近似函数
一般近似形式为:
$$ y_a(x) = \sum_{i=1}^{n}a_iN_i(x) $$矩阵形式为:
$$ y_a(x) = \mathbf{N}^{\mathrm{T}}(x)\mathbf{a} $$其中 $\mathbf{N}(x)$ 是基函数向量,$\mathbf{a}$ 是待定系数向量。
3.2 Ritz 方法中的近似泛函
将近似函数代入泛函:
$$ S[y] = \int_0^L \left[\frac{1}{2}(y')^2 + \frac{1}{2}y^2 + y\right] dx $$得到:
$$ S_a(\mathbf{a}) = \int_0^L \left[ \frac{1}{2}(y_a')^2 + \frac{1}{2}y_a^2 + y_a \right] dx $$由于:
$$ y_a = \mathbf{N}^{\mathrm{T}}\mathbf{a} $$并且:
$$ y_a' = \mathbf{N}_x^{\mathrm{T}}\mathbf{a} $$所以近似泛函可以写成:
$$ S_a(\mathbf{a}) = \frac{1}{2}\mathbf{a}^{\mathrm{T}}\mathbf{K}\mathbf{a} - \mathbf{a}^{\mathrm{T}}\mathbf{f} $$其中:
$$ \mathbf{K} = \int_0^L \left[ \mathbf{N}_x\mathbf{N}_x^{\mathrm{T}} + \mathbf{N}\mathbf{N}^{\mathrm{T}} \right] dx $$ $$ \mathbf{f} = -\int_0^L \mathbf{N}\,dx $$令 $S_a$ 对 $\mathbf{a}$ 取极值:
$$ \frac{\partial S_a}{\partial \mathbf{a}} = \mathbf{0} $$即可得到:
$$ \mathbf{K}\mathbf{a} = \mathbf{f} $$这就是 Ritz 方法形成代数方程组的基本过程。
3.3 Galerkin 方法中的残差正交
设微分方程为:
$$ L[y] = 0 $$近似解为:
$$ y_a = \sum_{j=1}^{n}a_jN_j(x) $$代入后得到残差:
$$ R(x) = L[y_a] $$Galerkin 方法要求:
$$ \int_0^L N_i(x)R(x)\,dx = 0,\quad i=1,2,\cdots,n $$如果 $R(x)$ 来自方程:
$$ y'' - y - 1 = 0 $$则:
$$ R(x) = y_a'' - y_a - 1 $$Galerkin 条件为:
$$ \int_0^L N_i(x)(y_a'' - y_a - 1)\,dx = 0 $$通过分部积分,可以将高阶导数转化为低阶导数,从而得到弱形式。
这一步和有限元方法密切相关。
3.4 有限元中的分片近似
有限元方法的关键是把求解区域划分为许多小单元。
例如把区间 $[0,L]$ 划分为:
$$ 0=x_0 < x_1 < \cdots < x_N=L $$每个小区间:
$$ [x_n,x_{n+1}] $$称为一个单元。
在单元上采用线性插值:
$$ y_a(x) = \frac{x_{n+1}-x}{x_{n+1}-x_n}y_n + \frac{x-x_n}{x_{n+1}-x_n}y_{n+1} $$可以写成:
$$ y_a(x) = N_1^{(e)}(x)y_n + N_2^{(e)}(x)y_{n+1} $$其中单元形函数为:
$$ N_1^{(e)}(x) = \frac{x_{n+1}-x}{x_{n+1}-x_n} $$ $$ N_2^{(e)}(x) = \frac{x-x_n}{x_{n+1}-x_n} $$这就是一维线性有限元的基本近似形式。
3.5 有限元矩阵的稀疏性
有限元使用的形函数通常具有局部支撑性质。
也就是说,一个节点形函数只在相邻单元内非零,在远处单元上为零。
因此矩阵元素:
$$ K_{ij} = \int_0^L \left[ N_{i,x}N_{j,x} + N_iN_j \right] dx $$只有当 $N_i$ 和 $N_j$ 的支撑区域有重叠时才可能非零。
如果两个节点相隔较远,则:
$$ K_{ij} = 0 $$所以有限元生成的整体矩阵通常是稀疏矩阵。
这也是有限元适合大规模工程计算的重要原因。
4. 和力学/数值计算的联系
4.1 Ritz 方法体现了“能量最小化”
在力学中,很多问题可以写成能量泛函的极值问题。
Ritz 方法的思路就是:
在一个有限维近似空间中寻找使能量最小的近似解。
这和真实问题中的变分原理是一致的。
真实解是在无限维函数空间中使泛函取极值;
Ritz 解是在有限维子空间中使泛函取极值。
所以 Ritz 方法可以理解为:
把无限维的能量极值问题投影到有限维空间中求解。
4.2 Galerkin 方法体现了“残差正交”
Galerkin 方法不一定要求先有能量泛函。
它直接从微分方程出发,构造残差:
$$ R = L[y_a] $$然后要求残差对测试空间正交。
这意味着近似解虽然不可能完全满足微分方程,但它的误差在测试空间中不能继续被检测出来。
从几何角度看,这类似于投影:
把真实解投影到近似空间中,使残差与近似空间正交。
这和前面讲过的“正交基”和“投影”思想是连在一起的。
4.3 有限元方法的核心是局部近似
Ritz 方法可以使用全局多项式作为基函数。
谱方法可以使用傅里叶函数、切比雪夫多项式等全局正交函数。
有限元方法不同,它把区域分成许多小单元,在每个单元上构造局部形函数。
这种局部近似带来几个好处:
第一,适合复杂几何区域。
第二,容易处理局部材料和边界条件。
第三,整体矩阵通常是稀疏的。
第四,可以通过细化网格提高精度。
第五,可以使用不同阶次的单元控制精度。
所以有限元方法比全局 Ritz 方法更适合工程问题。
4.4 谱方法和有限元方法的区别
谱方法通常使用全局光滑基函数,例如正弦函数、余弦函数或正交多项式。
它的优点是:
如果解足够光滑,收敛速度可能非常快。
但它的缺点是:
处理复杂边界和复杂几何时不够灵活。
有限元方法使用局部形函数。
它的优点是:
适应复杂区域、复杂边界和非均匀材料能力强。
但它的计算过程通常更复杂,需要网格剖分、单元矩阵、整体装配和边界条件处理。
可以简单理解为:
- 谱方法更偏数学分析;
- 有限元更偏工程计算;
- Ritz 方法是变分近似的一般思想;
- 有限元可以看作这种思想在局部基函数上的系统化实现。
4.5 有限元装配的思想
有限元计算通常先在每个单元上建立单元矩阵:
$$ \mathbf{k}^{(e)} $$和单元载荷向量:
$$ \mathbf{f}^{(e)} $$然后按照节点连接关系装配到整体矩阵:
$$ \mathbf{K} $$和整体载荷向量:
$$ \mathbf{f} $$最终得到:
$$ \mathbf{K}\mathbf{a} = \mathbf{f} $$这和前面讲过的分块矩阵、稀疏矩阵、自由度划分都联系起来了。
所以这个系列前面的内容不是孤立的:
- 矩阵是有限元方程的表达语言;
- 分块矩阵帮助理解自由度划分和边界条件;
- 基函数决定近似空间;
- 正交性影响投影和误差;
- 特征值用于动力学和稳定性;
- 变分原理提供方程来源;
- Ritz、Galerkin 和有限元则完成数值离散。
4.6 边界条件处理
对于问题:
$$ y(0)=0,\quad y(L)=0 $$如果有限元节点包含边界点,那么对应边界自由度可以直接设为零。
例如:
$$ y_0 = 0,\quad y_N = 0 $$此时只需要求内部节点自由度:
$$ \mathbf{a}_i = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_{N-1} \end{bmatrix} $$整体方程可以通过删除边界自由度对应的行列来处理。
这就是常说的“划行划列法”。
如果基函数不天然满足边界条件,也可以使用:
- 罚函数法;
- 拉格朗日乘子法;
- 增广拉格朗日法;
- Nitsche 方法。
这些方法都和前面“约束变分”中的思想有关。
5. 面试中可以怎么回答?
如果面试官问:
Ritz 方法的基本思想是什么?
可以这样回答:
Ritz 方法是从泛函极值出发的近似方法。先选取一组满足必要边界条件的基函数,把未知函数表示为这些基函数的线性组合。然后把近似函数代入泛函,使泛函变成关于有限个待定系数的函数。最后对这些系数求极值,得到代数方程组。它的本质是把无限维变分问题转化为有限维优化问题。
如果面试官问:
Galerkin 方法的基本思想是什么?
可以这样回答:
Galerkin 方法从微分方程残差出发。近似解代入方程后一般会产生残差,Galerkin 方法要求残差与测试函数空间正交。如果测试函数和试函数选用同一组基函数,就是常见的 Bubnov-Galerkin 方法。它的本质是让近似解在选定空间中以加权平均意义满足控制方程。
如果面试官问:
Ritz 方法和 Galerkin 方法有什么区别?
可以这样回答:
Ritz 方法通常要求问题有泛函,从能量极值出发;Galerkin 方法可以直接从微分方程或弱形式出发,通过残差正交得到代数方程。对于具有自伴结构和能量泛函的问题,两者可能得到相同结果。但 Galerkin 方法适用范围更广,因为它不一定要求先构造自然泛函。
如果面试官问:
有限元方法和 Ritz 方法有什么关系?
可以这样回答:
有限元可以看作 Ritz 或 Galerkin 思想在分片局部基函数上的系统化实现。Ritz 方法强调把未知函数展开成基函数线性组合并代入泛函,有限元也是这样做的,只是它使用的是定义在单元上的局部形函数,而不是全局多项式。因此有限元更适合复杂几何和复杂边界条件。
如果面试官问:
为什么有限元矩阵通常是稀疏矩阵?
可以这样回答:
因为有限元形函数通常具有局部支撑性质,一个节点形函数只在相邻单元附近非零。两个相距较远的节点形函数支撑区域没有重叠,对应刚度矩阵元素积分为零。因此整体矩阵中只有相邻自由度之间存在耦合,大量元素为零,所以有限元矩阵通常是稀疏矩阵。
如果面试官问:
有限元方法为什么适合工程计算?
可以这样回答:
有限元方法通过网格把复杂区域分解成简单单元,在每个单元上构造局部近似函数,再通过装配形成整体方程。这种方法适合复杂几何、复杂材料、复杂边界条件,并且形成的矩阵通常是稀疏的,便于大规模计算。因此它成为工程仿真中最主流的数值方法之一。
6. 这一篇的核心总结
这一篇主要复习了 Ritz 方法、Galerkin 方法和有限元思想。
可以总结为三句话:
- Ritz 方法从泛函极值出发,把无限维变分问题转化为有限维代数问题。
- Galerkin 方法从残差正交出发,使近似解在测试空间中满足加权平均意义下的控制方程。
- 有限元方法使用局部形函数和单元装配,把 Ritz/Galerkin 思想发展成适合复杂工程问题的通用数值方法。
所以,有限元不是凭空出现的计算技巧,而是线性代数、函数空间、变分原理和数值近似共同作用的结果。
从面试角度看,可以这样理解:
有限元方法的本质,是用局部基函数近似连续场变量,再通过变分或加权残数思想形成矩阵方程。
7. 系列收束:这 10 篇到底串起来讲了什么?
这个系列从矩阵开始,到有限元思想结束,其实形成了一条完整主线。
第一,矩阵是多自由度系统的表达语言。
第二,基和线性空间决定了未知量如何表示。
第三,特征值揭示系统固有性质。
第四,矩阵指数描述线性动力系统时间演化。
第五,变分原理把能量泛函和控制方程联系起来。
第六,约束变分和拉格朗日乘子处理约束关系。
第七,变分反问题帮助我们从微分方程构造泛函。
第八,Ritz、Galerkin 和有限元把连续问题转化为可计算的离散方程。
如果用一句话概括整个系列:
数值力学的核心,就是先用数学结构理解物理问题,再用有限维近似把它变成计算机可以求解的矩阵方程。
这也是面试中最应该表达出来的主线。