2. 数学预备:向量代数、张量基础与曲线曲率概念

各位同学,欢迎来到第二章。说实话,这一章看起来有点「干」,但它是后面所有自由曲面建模的根基。我当年刚接触光学设计时,总觉得这些数学工具离实际工程很远,直到有一次在非球面优化里栽了跟头……嗯,从那以后我老实了。

今天我们要聊三块内容:向量代数、张量基础、曲线曲率。别怕,我会用工程案例把它们串起来。

2.1 向量代数——自由曲面的「坐标语言」

自由曲面上的每一个点,都需要用向量来描述它的位置和方向。说白了,向量就是带箭头的线段,既有大小又有方向。

2.1.1 向量的基本运算

在三维直角坐标系中,一个向量通常写成:

v = (x, y, z) = x·i + y·j + z·k

其中 i, j, k 是三个坐标轴方向的单位向量。常用的运算有:

运算 公式 几何意义
加法 u + v = (u₁+v₁, u₂+v₂, u₃+v₃) 平行四边形法则
点积 u·v = |u||v|cosθ 投影长度,判断垂直
叉积 u×v = |u||v|sinθ·n 法向量,平行四边形的面积
模长 |v| = √(x²+y²+z²) 向量的长度
我的经验:在自由曲面建模中,点积用来计算光线与曲面法线的夹角,叉积用来求曲面的切平面。这两个运算几乎每天都会用到。

2.1.2 曲面的参数化表示

自由曲面通常用参数方程表示:

r(u, v) = (x(u, v), y(u, v), z(u, v))

u 和 v 是两个参数,取值范围通常是 [0,1] 或某个矩形区域。曲面上任意一点的位置向量就是 r(u,v)。

为什么要用参数化?因为这样我们可以方便地求偏导数:

r_u = ∂r/∂u    (沿 u 方向的切向量)
r_v = ∂r/∂v    (沿 v 方向的切向量)

这两个切向量张成的平面,就是该点的切平面。它们的叉积给出法向量:

n = r_u × r_v
注意:法向量方向取决于 u、v 的排序。我曾经在编写光线追迹程序时,因为 u、v 顺序搞反,导致法向量指向曲面内部,追迹结果全错了。排查了整整两天……所以,请统一约定右手系规则。

2.2 张量基础——从标量到高阶的「数据结构」

向量是一阶张量,标量是零阶张量。那张量到底是什么?

我个人习惯这样理解:张量是一个多维数组,每个分量在坐标变换下遵循特定的变换规律。你想想看,自由曲面的曲率、应力、折射率梯度,这些物理量都需要用张量来描述。

2.2.1 张量的阶与表示

阶数 名称 例子 分量数(3维)
0 标量 温度、曲率半径 1
1 向量 法向量、光线方向 3
2 二阶张量 曲率张量、应力张量 9
3 三阶张量 曲率导数张量 27

二阶张量可以写成一个 3×3 矩阵:

T = [[T₁₁, T₁₂, T₁₃],
     [T₂₁, T₂₂, T₂₃],
     [T₃₁, T₃₂, T₃₃]]

2.2.2 爱因斯坦求和约定

在张量运算中,我们经常遇到求和。比如两个向量的点积:

u·v = u₁v₁ + u₂v₂ + u₃v₃ = Σᵢ uᵢvᵢ

爱因斯坦求和约定简化了写法:重复出现的下标表示求和。上面的式子直接写成:

u·v = uᵢvᵢ

再比如,二阶张量 T 作用在向量 v 上:

wᵢ = Tᵢⱼ vⱼ    (对 j 求和)
核心要点:自由曲面的第一基本形式(度量张量)和第二基本形式(曲率张量)都是用张量语言描述的。掌握了张量,你就能看懂曲面几何的「底层代码」。

2.3 曲线曲率——曲面弯曲程度的「度量尺」

曲率描述曲线弯曲的程度。直线曲率为 0,圆半径越小曲率越大。

2.3.1 平面曲线的曲率

对于参数曲线 r(t) = (x(t), y(t)),曲率公式为:

κ = |r'(t) × r''(t)| / |r'(t)|³

如果是显式函数 y = f(x),则简化为:

κ = |y''| / (1 + y'²)^(3/2)

这个公式在光学设计中非常常用。比如非球面方程:

z(r) = (c·r²) / (1 + √(1 - (1+k)·c²·r²)) + A₄·r⁴ + A₆·r⁶ + ...

其中 c 是顶点曲率(c = 1/R),k 是圆锥系数。你看,曲率直接出现在方程里。

2.3.2 空间曲线的曲率与挠率

空间曲线除了曲率 κ,还有挠率 τ,描述曲线偏离平面的程度。Frenet-Serret 公式给出了三个基本向量(切向量 T、法向量 N、副法向量 B)的变化规律:

dT/ds = κ·N
dN/ds = -κ·T + τ·B
dB/ds = -τ·N

其中 s 是弧长参数。这个公式是曲线几何的「运动方程」。

避坑指南:我曾经在计算自由曲面上的光线路径时,直接用参数 t 代替弧长 s 求导,结果曲率值全偏了。记住:曲率公式中的导数必须对弧长参数求导,或者用链式法则转换。

2.3.3 曲面的主曲率与高斯曲率

曲面上一点,沿不同方向的法截线曲率不同。其中最大值和最小值称为主曲率 κ₁ 和 κ₂。它们的乘积称为高斯曲率:

K = κ₁ · κ₂

高斯曲率是曲面几何的「内在量」,不依赖于曲面的嵌入方式。这个性质在自由曲面设计中有重要应用——比如判断曲面是否可展。

高斯曲率 曲面类型 例子
K > 0 椭圆点 球面、椭球面
K = 0 抛物点 柱面、锥面、可展曲面
K < 0 双曲点 马鞍面、双曲面
注意:在自由曲面优化中,高斯曲率突变的地方往往是光线追迹的「雷区」。我建议你在设计初期就画出曲面的高斯曲率分布图,提前发现潜在问题。

2.4 本章知识结构

下面这张图总结了本章的核心概念和它们之间的关系:

第二章知识结构图:向量代数、张量基础与曲线曲率 第二章 知识结构图 向量代数 • 向量基本运算 • 点积与叉积 • 参数曲面表示 • 切向量与法向量 • 偏导数计算 张量基础 • 张量的阶与表示 • 爱因斯坦求和约定 • 度量张量(第一基本形式) • 曲率张量(第二基本形式) • 坐标变换规律 曲线曲率 • 平面曲线曲率公式 • 空间曲线 Frenet 公式 • 主曲率 κ₁, κ₂ • 高斯曲率 K • 平均曲率 H 自由曲面数学建模 光线追迹 曲面优化 像差分析 向量代数提供「坐标语言」,张量提供「数据结构」,曲率提供「度量工具」——三者缺一不可

从图中可以看出,向量代数、张量基础和曲线曲率是自由曲面数学建模的三大支柱。它们不是孤立的,而是相互支撑的。向量代数是基础工具,张量是高级语言,曲率是核心度量。