伽辽金法
伽辽金法(Galerkin method)在有限维试探空间中选择近似解,并要求方程残差对同一空间中的所有测试函数为零。它把一个函数方程变为系数方程,是有限元和许多谱方法的共同框架。残差正交必须说明所用的弱形式、内积和测试空间,不能只说“误差取平均为零”。
只用一个正弦函数逼近
考虑 、,精确解为 。取满足端点条件的试探函数 。弱形式要求 对测试空间中的函数成立。该空间只有一个方向,所以取 即够。左边为 ,右边为 ,得到 其中点约为 ,接近真值 ,却不是通过中点插值得到的。系数由全区间的弱方程确定。
有限维弱问题
设 为实 Hilbert 空间,弱问题为求 ,使 取有限维子空间 ,Galerkin 近似满足同一方程,但仅测试 。若基为 ,令 ,则 连续分片基给出有限元法,全局正交基可给出谱方法。二者的基函数与实现不同,但此处同属相同弱投影原则。平衡通量讲义中的有限元弱形式也展示了同一 Galerkin 结构。[1]
Céa 估计的证明
假设双线性型满足有界性 ,以及强制性 ,其中 ; 是连续线性泛函。这些条件保证弱问题和有限维问题各有唯一解。
将两份弱方程相减,得到 Galerkin 正交 记 ,任取 。因为 ,有 若误差非零,约去其范数,再对 取下确界,得到 误差为零时不等式也成立。这说明离散误差不超过空间最佳逼近的一个固定倍数。对称正定的情形,用 定义能量内积,正交展开进一步给出常数为一的最佳逼近;一般非对称情形不能直接称为正交投影最短距离。
多个模式与可复算误差
对 Poisson 例子,正弦导数的正交性使不同模式解耦。对奇数 ,载荷积分为 ,刚度为 ,所以系数为 ;偶数模式的载荷为零。取 得 中点为 。由于 ,Galerkin 正交给出一个无需数值微分的误差式: 其中 是保留的奇数频率。增加模式后能量误差不增;点值误差则不一定每个点都单调改善。
有解变式只用 作基。计算 、,系数为 ,此时近似恰等于真解。一个精心匹配的基可能比若干不匹配的基更有效,但实际计算通常并不知道真解形式,需要系统可扩展的空间。
正弦 Galerkin 的可运行实现
代码只针对本例的常数右端,使用已精确计算的模态系数。输入一组互异正整数频率,返回求值函数及系数,不修改输入。构造和每次求值均需 时间,存储为 ;一般非对角 Galerkin 矩阵还需装配和线性求解成本。
import math
def poisson_sine_galerkin(frequencies):
ks = list(frequencies)
if not ks or any(not isinstance(k, int) or k <= 0 for k in ks) or len(set(ks)) != len(ks):
raise ValueError("distinct positive integer frequencies required")
coefficients = {k: 4/(k**3*math.pi**3) if k % 2 else 0.0 for k in ks}
def solution(x):
x = float(x)
if not math.isfinite(x) or not 0 <= x <= 1:
raise ValueError("x must lie in [0,1]")
return sum(c*math.sin(k*math.pi*x) for k, c in coefficients.items())
return solution, coefficients
one, _ = poisson_sine_galerkin([1])
two, _ = poisson_sine_galerkin([1, 3])
print(one(0.5), two(0.5))
print(4/math.pi**3, 104/(27*math.pi**3)) # independent midpoint formulas不满足强制性时的边界
对流占优方程、不可压流的混合形式或约束系统,直接使用同一试探测试空间可能不稳定。Petrov–Galerkin 允许不同测试空间,混合方法需检查 inf-sup 条件,稳定化则修改相应形式。这些方法仍可用弱方程组织,但不能无条件使用上面的强制性估计。数值积分近似和边界实现也可能引入额外一致性误差,需要在理论与验收中列出。
参考资料
- ↑ Martin Vohralík. A posteriori numerical analysis based on the method of equilibrated fluxes,§2.2—2.4,连续弱解、有限元近似和能量范数。