摘要:本节是第一章的实操收官。不查表、不背结论,从三维欧氏度量出发,经参数化与链式法则一步步推出单位球面在极坐标下的度量 ds^2 = d\theta^2 + \sin^2\theta\, d\varphi^2,随后分别手算大圆弧与纬线圈弧长,最后用 SymPy 复核每一步。手推与数值互证,是本册所有后续推导的标准作业流程。
本节在知识体系中位于第一章末尾:把前三节分别到手的「参数化」「诱导度量」「分量变换」三件工具合起来用一次。任务四项——推导球面度量;计算两类圆弧长度;对比「距离的直觉」与「距离的账本」;用符号计算复核全部结果。完成后,第二章推导克氏符号时将直接调用本节产物。
任务背景是一个具体疑问:在球面上,纬线看起来是「绕一圈的圆」,经线也是圆,但走同样的经度跨度,高纬处的纬线弧明显更短。度量表达式应当把这件事精确地编码进去。我们即将看到,编码它的正是那个 \sin^2\theta 因子。
单位球面 S^2 \subset \mathbb{R}^3 上,取余纬度 \theta(从北极量起的角)与经度 \varphi:
先自查这张卡覆盖哪里:\theta 与 \varphi 取开区间时,两个极点(\theta = 0 与 \theta = \pi)不在卡内,经线 \varphi = 0 被缝合——正是上一节「球面至少要两张卡」结论的体现。极点的问题不影响推导:度量是逐点对象,卡覆盖到的每一点都合法。
按诱导度量流程,先算两个坐标切向量:
逐项算三个内积(每项都是欧氏点积,逐分量乘加即可):
于是
每个中间结果都值得回看一眼:E = 1 说明沿经线走,一度就是一段固定弧长——经线是均匀刻度的;F = 0 说明经线族与纬线族处处垂直,所以经纬网在球面上是正交网格;G = \sin^2\theta 说明纬线方向的标准尺码随纬度收缩,赤道处(\theta = \pi/2)满格,两极附近趋于零。直觉疑问由此完全落地:高纬纬线短,不是「画小了」,是度量账本里那个 \sin^2\theta 记的账。

大圆弧(经线段):从赤道到北纬六十度(即 \theta 从 \pi/2 到 \pi/3),路径上 \varphi 不动、d\varphi = 0,线元退化为 ds = d\theta:
单位球上弧长就等于圆心角,符合直觉。
纬线弧:在余纬 \theta_0 处沿纬线走过经度差 \Delta\varphi,此时 d\theta = 0:
北纬六十度即 \theta_0 = \pi/3,\sin\theta_0 = \tfrac{\sqrt 3}{2} \approx 0.866;同一经度跨度在赤道则是满值 \Delta\varphi。对照检验:纬线圈是嵌入空间里半径 \sin\theta_0 的圆,其周长 2\pi \sin\theta_0 与度量积分完全一致——内在账本与外部观察这次给出了同一笔账,互相印证。
手推再仔细也要过机器这一关。下面的会话用符号计算复算 E, F, G 与两条弧长(在 Python 交互环境中执行):
from sympy import symbols, sin, cos, sqrt, integrate, pi, simplify, Matrix, trigsimp th, ph = symbols('theta varphi', positive=True) # 球面参数化(列向量) r = Matrix([sin(th)*cos(ph), sin(th)*sin(ph), cos(th)]) r_th = r.diff(th) # 对 theta 的偏导 r_ph = r.diff(ph) # 对 varphi 的偏导 E = trigsimp(r_th.dot(r_th)) F = trigsimp(r_th.dot(r_ph)) G = trigsimp(r_ph.dot(r_ph)) print(E, F, G) # 输出: 1 0 sin(theta)**2 # 大圆弧长: theta 从 pi/3 到 pi/2, varphi 不动 L1 = integrate(sqrt(E*1), (th, pi/3, pi/2)) print(L1) # 输出: pi/6 # 纬线弧长: theta 固定为 pi/3, varphi 走 2 pi(整圈纬线) L2 = integrate(sqrt(G.subs(th, pi/3)), (ph, 0, 2*pi)) print(simplify(L2)) # 输出: sqrt(3)*pi 即 2 pi sin(pi/3)
机器输出与手推逐项一致。值得留意的是 trigsimp 的作用:直接点积会得到一长串三角乘积,化简后才显形为 1, 0, \sin^2\theta——手推时合并 \cos^2 + \sin^2 = 1 那一步,机器同样必须执行。
⚠️ 常见坑:把 \theta 当成「纬度」。地理纬度从赤道量起,余纬度从北极量起,两者相差 \tfrac{\pi}{2}。混用会得到 ds^2 = d\lambda^2 + \cos^2\lambda\, d\varphi^2(\lambda 为地理纬度)——这个式子本身没错,但与查表公式对照时经常差一个 \sin 换 \cos,检查两小时找不到错的故事大多源于此。另一种坑是忘开根号:ds^2 是长度平方,积分时务必先取平方根。
这次实验验证的不只是一条公式。第一,度量完全可以从更高维空间「继承」下来,继承过程只用到点积与链式法则,没有任何新假设——这条路径以后会反复走(环面、旋转曲面、乃至第六章的时空度量)。第二,度量分量 G = \sin^2\theta 是「位置依赖」的:尺子在不同方向、不同地点读数不同,这正是弯曲空间的日常,而不是异常。第三,本节刻意没问「球面上两点的最短路径是什么」——这个问题需要新工具(如何对曲线长度做变分),而做变分之前必须先解决「向量如何跨点比较」,这就是第二章联络的全部任务。