第三章 数学基础(二):微分几何与曲面拟合
各位同学,欢迎来到第三章。上一章我们聊了向量、矩阵和优化,算是把工具包备齐了。这一章,我们要真正进入自由曲面的核心——微分几何和曲面拟合。
说实话,我刚入行那会儿,觉得微分几何就是数学家的玩具,跟我做光学设计有什么关系?直到有一次,我设计一个离轴三反系统,光线追迹怎么都收敛不了,折腾了两周。最后一位老前辈看了一眼我的曲面,说了一句:“你这高斯曲率都跳成什么样了,光线能追过去才怪。” 从那以后,我再也不敢小看这些“数学玩具”了。
3.1 曲面的第一基本形式
先问大家一个问题:你在曲面上量一段曲线的长度,怎么量?
你可能会说,用尺子量啊。但在数学上,我们需要一个工具来描述曲面上的“度量”。这就是第一基本形式。
假设我们有一个参数曲面 r(u, v),那么曲面上任意一点处的切向量可以表示为 ru 和 rv。曲面上一条曲线的弧长微元 ds 满足:
ds² = E du² + 2F du dv + G dv²
其中:
- E = ru · ru
- F = ru · rv
- G = rv · rv
E、F、G 这三个系数,就是第一基本形式的系数。它们完全决定了曲面上的长度和角度度量。
3.2 曲面的第二基本形式
第一基本形式告诉我们“怎么量”,第二基本形式则告诉我们“怎么弯”。
第二基本形式的系数定义为:
L = ruu · n
M = ruv · n
N = rvv · n
其中 n 是曲面的单位法向量。第二基本形式可以写成:
II = L du² + 2M du dv + N dv²
这个形式描述的是曲面在某个方向上的弯曲程度。说白了,就是曲面偏离其切平面的程度。
3.3 主曲率与高斯曲率
有了第一和第二基本形式,我们就可以计算曲率了。曲率这东西,说白了就是曲面“弯”的程度。
在曲面上任意一点,沿着不同方向,弯曲程度是不一样的。其中有两个特殊方向,弯曲程度达到极值,这就是主方向,对应的曲率就是主曲率 κ1 和 κ2。
主曲率可以通过求解以下方程得到:
(EG - F²)κ² - (EN + GL - 2FM)κ + (LN - M²) = 0
解这个二次方程,得到两个根,就是 κ1 和 κ2。
高斯曲率 K 定义为两个主曲率的乘积:
K = κ₁ · κ₂ = (LN - M²) / (EG - F²)
高斯曲率是一个非常重要的量。为什么?因为它只依赖于第一基本形式,与曲面的参数化方式无关。这就是著名的“绝妙定理”。
平均曲率 H 则是两个主曲率的平均值:
H = (κ₁ + κ₂) / 2 = (EN + GL - 2FM) / 2(EG - F²)
平均曲率在光学设计中也很重要。比如,反射镜的像散就与平均曲率的变化有关。
3.4 曲面拟合与插值算法
好了,理论讲完了。现在问题来了:我们设计自由曲面时,通常是用一系列离散的点来描述曲面形状的。怎么从这些离散点得到连续的曲面?这就涉及到曲面拟合。
我常用的方法有两种:最小二乘法和径向基函数。
3.4.1 最小二乘法
最小二乘法大家应该不陌生。它的核心思想是:找一个曲面,使得所有数据点到这个曲面的距离的平方和最小。
假设我们用多项式基函数来拟合:
z(x, y) = a₀ + a₁x + a₂y + a₃x² + a₄xy + a₅y² + ...
那么问题就转化为求解系数向量 a,使得:
min ||Φa - z||²
其中 Φ 是基函数矩阵,z 是数据点的高度值。这个问题的解是:
a = (ΦᵀΦ)⁻¹Φᵀz
3.4.2 径向基函数
最小二乘法适合拟合比较平滑的曲面。但如果数据点分布不均匀,或者曲面局部变化剧烈,最小二乘法就不太够用了。这时候,我推荐用径向基函数。
径向基函数的形式是:
z(x, y) = Σᵢ wᵢ φ(||(x, y) - (xᵢ, yᵢ)||)
其中 φ 是径向基函数,常用的有:
- 高斯函数:φ(r) = exp(-ε²r²)
- 多二次函数:φ(r) = √(r² + c²)
- 薄板样条:φ(r) = r² log(r)
权重 wᵢ 通过求解线性方程组得到:
Φw = z
其中 Φij = φ(||pi - pj||)。
3.5 知识体系总览
为了让大家更直观地理解本章的知识结构,我画了一张图:
3.6 本章小结
这一章的内容确实有点硬核。但请相信我,这些数学工具是自由曲面设计的基石。
- 第一基本形式:告诉你曲面上的长度和角度怎么算
- 第二基本形式:告诉你曲面怎么弯曲
- 主曲率和高斯曲率:判断曲面是否可加工的关键指标
- 最小二乘法:适合平滑曲面的全局拟合
- 径向基函数:适合局部变化剧烈的曲面拟合
嗯,我记得有一次在项目评审会上,一个年轻工程师拿着他的设计报告,高斯曲率图上一片红。我问他:“你这个曲面,打算怎么加工?” 他愣住了。所以,学完这一章,我希望大家能养成一个习惯:设计完曲面,先看看它的曲率分布,再想想怎么加工。
下一章,我们会把这些数学工具真正用起来,开始讲自由曲面的参数化建模。到时候,你会发现今天的苦功夫都是值得的。
课后练习:
- 给定一个球面参数方程 r(θ, φ) = (R sinθ cosφ, R sinθ sinφ, R cosθ),计算它的第一、第二基本形式系数,以及高斯曲率。
- 用 Python 实现一个最小二乘法曲面拟合函数,输入是 (x, y, z) 数据点,输出是拟合曲面的系数。
- 思考:为什么高斯曲率为零的曲面可以用平板材料弯曲成型?
公众号:蓝海资料掘金营,微信deep3321