张量篇 第 T4 章 梯度、协变导数、散度定理与曲面几何
对应原书:Simmonds《A Brief on Tensor Analysis》第 2 版,第 IV 章 The Gradient, the Del Operator, Covariant Differentiation, and the Divergence Theorem(书 p.71–105,PDF p.83–117)。
页码提示:扫描件缺原书空白页 p.70,所以从本章起原书第 \(p\) 页 = PDF 第 \(p+12\) 页(前三章是 \(p+13\))。
本章是原书的微积分部分:从地形图上的梯度出发,得到一般坐标下的梯度、散度、旋度,引出协变导数,再到散度定理,最后用第二版新增的一节讲曲面微分几何(测地线、Gauss 曲率、绝妙定理)。对量化读者,前半部分最有用:梯度是协变向量,要借助度量才能变成"方向",这正是 \(\Sigma^{-1}\boldsymbol\mu\) 型最优组合和自然梯度的几何来源;约束驻值问题就是拉格朗日乘子条件;一般坐标下的 Laplace 算子和散度定理则是在对数价格等变换坐标下写定价 PDE、保证数值格式守恒的工具。连续介质运动学和曲面几何与量化关系弱,本章压缩为简介。
学习目标
读完本章,你应当能够:
- 由方向导数推出梯度的坐标形式 \(\nabla f=f_{,i}\mathbf g^i\),说明偏导数 \(f_{,i}\) 是梯度的协变分量,并用度量把它变成"最速上升方向" \(g^{ij}f_{,j}\);在量化中对应 \(\Sigma^{-1}\boldsymbol\mu\)。
- 把"曲面上到原点距离的驻点"写成 \(\nabla f=\lambda\mathbf x\),认出它是拉格朗日乘子条件和(非线性)特征值问题。
- 掌握 del 算子 \(\nabla=\mathbf g^i\partial_i\)、散度、旋度和向量梯度的定义,以及协变导数 \(\nabla_iv^k=v^k_{,i}+\Gamma^k_{ij}v^j\)、\(\nabla_iv_j=v_{j,i}-\Gamma^k_{ij}v_k\) 的来历与用法。
- 会用 \(\nabla\cdot\mathbf v=J^{-1}(Jv^i)_{,i}\) 和 \(\nabla^2f=J^{-1}(Jg^{ij}f_{,j})_{,i}\) 在任意坐标下写散度和 Laplace 算子。
- 理解散度定理与"积分对任意区域成立 ⇒ 被积函数为零"的局部化论证,知道它如何从守恒律推出连续性方程(以及概率密度的 Fokker–Planck 方程的守恒形式)。
- 对曲面几何建立概念:第一基本形式、测地线方程、Gauss 曲率是内蕴不变量;知道协方差矩阵空间上的仿射不变距离是这套思想在量化中的一个应用。
读前导读
先说实话:这一章大部分是选读
和第 T3 章一样,本章的原书是给力学专业写的:散度、旋度、连续介质运动学、曲面上的测地线和曲率,主要服务于流体、弹性体和薄壳。对量化读者,大约三分之二的篇幅可以跳过。值得花时间的是下面几处:
- 梯度经过度量才成为方向(T4.1 的量化翻译框、实战 2 第 1 部分)。 偏导数向量 \(\boldsymbol\mu\) 只是"敏感度";在风险度量 \(\Sigma\) 下,真正的最速上升方向是 \(\Sigma^{-1}\boldsymbol\mu\),也就是你在 CFA 里见过的切点组合方向,最大上升率正是最大夏普比。自然梯度、牛顿方向是同一件事换了度量。这是全章最重要的一点。
- 约束驻值 = 拉格朗日乘子(T4.2)。 最小方差组合、主成分都是这个模板。
- 换坐标写定价方程(T4.4 末的量化翻译框)。 Black–Scholes 换到对数价格后多出 \(-\frac12\sigma^2\partial_x\) 一项,来源就是第 T3 章讲的"二阶导数在换元下的附加项"。
- 密度换元与概率守恒(T4.6)。 体积元 \(dV=|J|\,du\) 就是概率密度变量替换里的 \(|J|\);Fokker–Planck 方程的守恒形式说明了为什么有限体积法能保证数值解的总概率为 1。
- 协方差矩阵之间的距离(T4.7 末的框、实战 2 第 3 部分)。 一个不随计量单位改变的协方差距离。
这一章在解决什么问题
第 T3 章讲了"坐标弯曲时,基向量逐点变化"。本章在此基础上回答三个问题:(1) 梯度在一般坐标下怎么写,为什么偏导数本身还不是"方向";(2) 对向量场求导时,怎样把"基向量变化"的修正系统地加进去(协变导数);(3) 怎样把"整体守恒"变成"每一点都成立的方程"(散度定理)。最后用曲面几何展示:有些"弯曲"是坐标造成的,可以换坐标消掉;有些是空间本身的,消不掉。
连接到你熟悉的东西:均值–方差优化的一阶条件 \(\Sigma\mathbf w\propto\boldsymbol\mu\),在本章的语言里就是"用度量 \(\Sigma\) 把协变梯度 \(\boldsymbol\mu\) 升成逆变方向"。理解了这一点,就能看懂为什么把"梯度下降"直接用在不同尺度的参数上会出问题。
需要先想起来的数学
1. 方向导数与梯度。 函数 \(f\) 沿单位方向 \(\mathbf t\) 的变化率是 \(\nabla f\cdot\mathbf t\)。由 Cauchy–Schwarz 不等式 \(|\mathbf a\cdot\mathbf b|\le|\mathbf a||\mathbf b|\),\(\mathbf t\) 与梯度同向时变化率最大。例:\(f=3x+4y\),梯度 \((3,4)\),沿 \((0.6,0.8)\) 走一单位,\(f\) 增加 5,是所有单位方向里最多的。见 第 00 册第 05 章 多元微积分与优化。
2. 拉格朗日乘子。 在约束 \(g(\mathbf x)=0\) 下求 \(f\) 的极值,最优点满足 \(\nabla f=\lambda\nabla g\):目标的梯度与约束曲面的法向平行,否则沿约束面还能继续改进。\(\lambda\) 是约束的"影子价格"。见第 00 册第 05 章。
3. 重积分换元与 Jacobian 行列式。 换变量 \(x=x(u)\) 时 \(dx=|\det(\partial x/\partial u)|\,du\)。例:极坐标 \(dx\,dy=r\,dr\,d\theta\)。概率密度换元 \(p_Y(y)=p_X(x)|dx/dy|\) 用的是同一个因子。见第 00 册第 05 章和 第 00 册第 03 章 积分。
4. 矩阵的逆、行列式与特征值。 \(\Sigma^{-1}\boldsymbol\mu\)、\(\det\mathbf B\)、广义特征值 \(\Sigma_1^{-1}\Sigma_2\) 都会出现。见 第 00 册第 06 章 线性代数速成。
5. 本章新符号。 \(\nabla\)(读作 del 或 nabla)是"对各坐标求偏导再拼成向量"的算子;\(\nabla\cdot\mathbf v\) 是散度(一点附近的净流出率,见 T4.3),\(\nabla\times\mathbf v\) 是旋度(局部旋转强度)。\(R\) 表示一块区域,\(\partial R\) 表示它的边界,\(\mathbf n\) 是边界的外法向单位向量,\(dA\)、\(dV\) 是面积元、体积元。\(\epsilon^{ijk}\) 是置换符号:\((i,j,k)\) 为 \((1,2,3)\) 的偶排列时取 \(+1\),奇排列取 \(-1\),有重复指标时取 0,用来写叉乘和行列式。\(\operatorname{tr}\) 是迹(对角元之和)。逗号仍表示偏导,指标记号见第 T2、T3 章和 第 00 册第 08 章。
怎么读这一章
- 核心必读:T4.1(尤其量化翻译框和例 4.1)、T4.2、实战 2 第 1 部分。
- 选读,读结论即可:T4.4 只需记住"协变导数 = 偏导数 + \(\Gamma\) 修正项"和末尾的量化翻译框;T4.4.4 的散度公式 \(J^{-1}(Jv^i)_{,i}\) 在写变换坐标下的 PDE 时有用;T4.6 读散度定理的含义、\(dV=|J|du\) 和 Fokker–Planck 框;T4.7 只读最后的"与量化的距离"框。
- 可以跳过:T4.3 的旋度与不变性证明、T4.5 连续介质运动学、T4.7 的推导主体、T4.8 中的弹性、刚体、肥皂膜等条目。
- 建议顺序:T4.1 → T4.2 → 实战 2 第 1 部分 → T4.4 量化翻译框与实战 2 第 2 部分 → T4.6 → T4.7 末框与实战 2 第 3 部分。
T4.1 梯度
T4.1.1 几何定义
在地形图上,光滑且不水平的地形在每点有唯一的最速上升方向。作者据此定义:标量场 \(f(\mathbf x)\) 在 \(\mathbf x\) 处的梯度 \(\nabla f\) 是这样一个向量,它的方向是 \(f\) 随离开 \(\mathbf x\) 的距离增长最快的方向,大小是该最大增长率。物理例子:Fourier 热传导定律 \(\mathbf q=-k\nabla T\);理想无旋流 \(\mathbf v=\nabla\phi\)。
注意这个定义里有"距离",也就是说梯度的定义依赖度量。这一点在量化中至关重要,下面会反复回到它。
T4.1.2 坐标形式
设一般坐标 \(x^i=\hat x^i(u^j)\),光滑曲线 \(C:\ u^j=\hat u^j(s)\),\(s\) 为弧长。沿 \(C\) 由链式法则
左边是方向导数(directional / path derivative),只依赖 \(f\) 和曲线,与坐标无关(拿温度计和计步器就能测)。右边的每一项都依赖坐标。单位切向 \(\mathbf t=\mathbf g_it^i\),\(t^i=du^i/ds\),于是 \(df/ds=f_{,i}t^i\)。对照"屋顶 × 地窖 = 点积"(2.10),它正是 \(\mathbf t\) 与下述向量的点积:
\(df/ds\) 在 \(\mathbf t\) 与 \(\nabla f\) 同向时最大,最大值为 \(|\nabla f|\),与几何定义一致。要点:偏导数 \(f_{,i}\) 是梯度的地窖(协变)分量,配的是倒易基 \(\mathbf g^i\)。 要得到屋顶分量(真正"指向"某处的那套分量),必须升指标:\((\nabla f)^i=g^{ij}f_{,j}\)。
推导拆解:为什么 \(df/ds\) 恰好等于 \(\nabla f\cdot\mathbf t\)?
- 链式法则给出 \(df/ds=f_{,i}t^i\),这是"一串数乘另一串数再加总"。
- 要把它写成两个向量的点积,需要一对基满足 \(\mathbf g^i\cdot\mathbf g_j=\delta^i_j\)(倒易基的定义,第 T2 章)。于是 \((f_{,i}\mathbf g^i)\cdot(t^j\mathbf g_j)=f_{,i}t^j\delta^i_j=f_{,i}t^i\)。所以偏导数只能当作 \(\mathbf g^i\) 前的系数,即协变分量。
- 若想把 \(\nabla f\) 用 \(\mathbf g_j\) 展开("往各坐标方向各走多少"),要用 \(\mathbf g^i=g^{ij}\mathbf g_j\) 换基,得 \(\nabla f=(g^{ij}f_{,j})\mathbf g_i\),这就是升指标。
在笛卡尔坐标中 \(g^{ij}\) 是单位矩阵,两套分量相同,所以平时感觉不到区别。一旦各坐标的"一格"长短不一或互不垂直,偏导数向量就不再指向最速上升方向。
量化翻译:梯度不是方向,度量才把它变成方向。 在组合权重空间里,"距离"应该用什么度量?如果用欧氏距离 \(\sum_i(\Delta w_i)^2\),最速上升方向就是偏导数向量本身;如果用风险 \(\Delta\mathbf w\cdot\Sigma\Delta\mathbf w\) 作度量,最速上升方向是 \(\Sigma^{-1}\nabla f\)。以预期超额收益 \(f(\mathbf w)=\boldsymbol\mu\cdot\mathbf w\) 为例,它的偏导数(协变分量)是 \(\boldsymbol\mu\),在风险度量下的最速上升方向是 \(\Sigma^{-1}\boldsymbol\mu\),这就是最大夏普组合(切点组合)的方向,最大"上升率"\(|\nabla f|=\sqrt{\boldsymbol\mu\cdot\Sigma^{-1}\boldsymbol\mu}\) 正是最大夏普比。同一个逻辑在参数估计中给出自然梯度(度量 = Fisher 信息),在牛顿法中给出牛顿方向(度量 = Hessian)。实战 2 用暴力搜索验证这一点。
推导拆解:用拉格朗日乘子验证上面的结论。问题是:在"单位风险"约束 \(\mathbf d\cdot\Sigma\mathbf d=1\) 下最大化 \(\boldsymbol\mu\cdot\mathbf d\)。
- 驻点条件:目标的梯度 \(\boldsymbol\mu\) 平行于约束的梯度 \(2\Sigma\mathbf d\),即 \(\boldsymbol\mu=2\lambda\Sigma\mathbf d\)。
- 两边左乘 \(\Sigma^{-1}\):\(\mathbf d\propto\Sigma^{-1}\boldsymbol\mu\)。方向确定了,长度由约束定:\(\mathbf d^*=\Sigma^{-1}\boldsymbol\mu/\sqrt{\boldsymbol\mu\cdot\Sigma^{-1}\boldsymbol\mu}\)。
- 代回目标:\(\boldsymbol\mu\cdot\mathbf d^*=\boldsymbol\mu\cdot\Sigma^{-1}\boldsymbol\mu/\sqrt{\boldsymbol\mu\cdot\Sigma^{-1}\boldsymbol\mu}=\sqrt{\boldsymbol\mu\cdot\Sigma^{-1}\boldsymbol\mu}\)。
金融直觉:两只资产预期超额收益相同,但 B 的波动是 A 的两倍且互不相关。偏导数向量 \(\boldsymbol\mu\) 说"两只各加一样多";而 \(\Sigma^{-1}\boldsymbol\mu\) 说"A 加的量是 B 的四倍"(方差之比)。前者把"一元钱的权重变动"当成同等距离,后者把"一份风险的变动"当成同等距离。CFA 里切点组合 \(\mathbf w\propto\Sigma^{-1}\boldsymbol\mu\) 的公式,在这里得到的解释是:它是在风险度量下的梯度方向。
例 4.1 \(f=xy+yz+zx\),在 \((12,5,-9)\) 处。笛卡尔中 \(\nabla f\sim(y+z,x+z,x+y)=(-4,3,17)\),\(|\nabla f|=\sqrt{314}\)。圆柱坐标中,该点 \(r=13\),\(\theta=\tan^{-1}(5/12)\),\(z=-9\),直接对 \(f=r^2\sin\theta\cos\theta+rz(\sin\theta+\cos\theta)\) 求偏导得地窖分量
另一种算法是用方框公式 \((3.89)_1\),它就是链式法则:\(f_{,r}=f_{,x}\cos\theta+f_{,y}\sin\theta=(-4)\frac{12}{13}+3\cdot\frac5{13}=-\frac{33}{13}\)。
T4.1.3 梯度垂直于等值面
若 \(f\) 在 \(\mathbf x_*\) 附近光滑,则 \(\nabla f(\mathbf x_*)\) 垂直于等值面 \(f(\mathbf x)=f(\mathbf x_*)\)。理由:\(f\) 在等值面内任一条过 \(\mathbf x_*\) 的曲线上为常数,所以 \((df/ds)_*=\nabla f\cdot\mathbf t_*=0\) 对一切切向 \(\mathbf t_*\) 成立。
例 4.2 求椭球面 \(x^2+y^2/4+z^2/9=1\) 上外法向为 \((1,1,1)\) 的点。\(\nabla f\sim(2x,y/2,2z/9)=k(1,1,1)\),\(k>0\),得 \((x,y,z)=(k/2,2k,9k/2)\),代入得 \(k=2/\sqrt{14}\),点为 \((1,4,9)/\sqrt{14}\)。
T4.2 约束驻值:线性与非线性特征值问题
力学中许多问题(如绕竖直轴匀速旋转的悬链的可能形状)经有限元离散后,化为:求曲面 \(f(\mathbf x)=0\) 上到原点距离取驻值的点。在驻点处,以原点为心的球面与曲面相切,所以法向 \(\nabla f\) 平行于 \(\mathbf x\):
满足的 \(\lambda\) 称为特征值,\(\mathbf x\) 称为特征向量。若 \(f\) 是 \(\mathbf x\) 的二次函数 \(f=\mathbf x\cdot\mathbf A\mathbf x-1\),\(\nabla f=2\mathbf A\mathbf x\) 是线性的,(4.8) 就是线性代数的特征值问题;否则是非线性特征值问题。本质上,(4.8) 就是拉格朗日乘子条件。
例 4.3 曲线 \(y=1/x^4\) 上离原点最近的点。令 \(f=x^4y-1\),\(\nabla f\sim(4x^3y,x^4)\),(4.8) 为 \(4x^3y=\lambda x\),\(x^4=\lambda y\)。由第一式 \(\lambda=4x^2y\),代入第二式得 \(x^2=4y^2\),\(x=\pm2y\);再代入 \(f=0\) 得 \(16y^5=1\)。只有一个特征值 \(\lambda=16^{2/5}\),却有两个特征向量 \(\mathbf x\sim(\pm16^{1/20},16^{-1/5})\),到原点距离都是 \(16^{-1/5}\sqrt5\)。
量化翻译。 组合优化里的驻值问题几乎都是这个形状:
- 最小方差组合:在 \(\mathbf 1\cdot\mathbf w=1\) 上最小化 \(\mathbf w\cdot\Sigma\mathbf w\),驻点条件 \(2\Sigma\mathbf w=\lambda\mathbf 1\),得 \(\mathbf w\propto\Sigma^{-1}\mathbf 1\);
- 第一主成分:在单位球面上最大化 \(\mathbf w\cdot\Sigma\mathbf w\),驻点条件 \(\Sigma\mathbf w=\lambda\mathbf w\),是线性特征值问题;
- 风险预算、最大分散化等目标是非线性的,驻点条件就是例 4.3 那样的非线性特征值问题,一般要数值求解,并且要像例 4.3 那样检查是否有多个解。
推导拆解:最小方差组合一步步来。拉格朗日函数 \(L=\mathbf w\cdot\Sigma\mathbf w-\lambda(\mathbf 1\cdot\mathbf w-1)\)。
- 对 \(\mathbf w\) 求梯度:\(\mathbf w\cdot\Sigma\mathbf w\) 的梯度是 \(2\Sigma\mathbf w\)(\(\Sigma\) 对称;一维类比 \(\sigma^2w^2\) 的导数 \(2\sigma^2w\)),\(\mathbf 1\cdot\mathbf w\) 的梯度是 \(\mathbf 1\)。令 \(\nabla L=\mathbf 0\) 得 \(2\Sigma\mathbf w=\lambda\mathbf 1\)。
- 解出 \(\mathbf w=\frac\lambda2\Sigma^{-1}\mathbf 1\)。
- 代入约束 \(\mathbf 1\cdot\mathbf w=1\) 定出 \(\frac\lambda2=1/(\mathbf 1\cdot\Sigma^{-1}\mathbf 1)\)。
和 (4.8) 对照:(4.8) 的约束是"在曲面 \(f=0\) 上"、目标是"到原点距离",条件写成 \(\nabla f=\lambda\mathbf x\);这里约束是预算线、目标是方差,条件写成 \(\nabla(\text{方差})=\lambda\nabla(\text{预算})\)。形状相同:两个梯度平行。
T4.3 Del 算子、散度、旋度与向量的梯度
由 (4.5),del 算子写成
对向量场 \(\mathbf v(u^j)\) 取 \(\nabla\) 与 \(\mathbf v\) 的三种"乘积":
因为 \(d\mathbf v/ds=\mathbf v_{,i}(\mathbf g^i\cdot\mathbf t)=(\nabla\mathbf v)^T\mathbf t\),原书把 \((\nabla\mathbf v)^T\)(而不是 \(\nabla\mathbf v\))称为 \(\mathbf v\) 的梯度。不同书的转置约定不一,读文献时要留意。对量化读者,\((\nabla\mathbf v)^T\) 就是向量函数的 Jacobian 矩阵:第 \(i\) 行是 \(v_i\) 的梯度。
例 4.4 \(\mathbf v=z\mathbf e_x+xy\mathbf e_y+xyz\mathbf e_z\)。\(\nabla\cdot\mathbf v=x+xy\);\(\nabla\times\mathbf v=xz\mathbf e_x+(1-yz)\mathbf e_y+y\mathbf e_z\);\(\nabla\mathbf v=y\mathbf e_x\mathbf e_y+yz\mathbf e_x\mathbf e_z+x\mathbf e_y\mathbf e_y+xz\mathbf e_y\mathbf e_z+\mathbf e_z\mathbf e_x+xy\mathbf e_z\mathbf e_z\)。
物理意义:\(\nabla\cdot\mathbf q\) 衡量一点邻域的热量流出率;\(\nabla\cdot(\rho\mathbf v)\) 衡量质量减少率;涡量 \(\nabla\times\mathbf v\) 衡量旋转;对称部分 \(\mathbf D=\frac12[\nabla\mathbf v+(\nabla\mathbf v)^T]\) 为应变率。
不变性(4.5 节)。记号与坐标无关,但需要证明。分量法:换到 \(\tilde u\) 坐标,由链式法则和 \(\mathbf g^j=(\partial u^j/\partial\tilde u^i)\tilde{\mathbf g}^i\),\(\tilde{\mathbf g}^i\cdot\partial\mathbf v/\partial\tilde u^i=\mathbf g^j\cdot\partial\mathbf v/\partial u^j\)。无坐标法:
右边的通量积分与坐标无关。(4.15) 是散度定理的推论,也是"散度 = 单位体积净流出率"的精确表述。
T4.4 协变导数
T4.4.1 定义
把 \(\mathbf v_{,i}\) 用屋顶分量展开时,协变导数自然出现:
记
\(\nabla_iv^k\) 称为 \(v^k\) 的协变导数(covariant derivative)。它的意义是:\(\mathbf v_{,i}\) 在一般坐标下的分量形式与笛卡尔坐标下一样,只是把偏导 \(\partial_i\) 换成 \(\nabla_i\)。\(\Gamma\) 项补偿的是基向量自身的变化,和第 T3 章加速度里的 \(\Gamma\) 项是同一回事。
金融直觉:可以类比外币报表折算。一家海外子公司以外币记账,母公司以本币报告。本币报表上某项资产的变动 = 外币金额的变动(按汇率折算)+ 汇率变动造成的折算差额。前者对应 \(v^k_{,i}\)(分量本身的变化),后者对应 \(\Gamma^k_{ij}v^j\)("计量单位"即基向量在变)。只看外币数字的变化会漏掉折算差额;只有两项相加,才是本币口径下真实的变化,这就是 \(\nabla_iv^k\)。
类比的边界:汇率是一个数,而基向量变化可能把一个方向的分量"转"到另一个方向上(如极坐标中 \(\mathbf g_{r,\theta}\propto\mathbf g_\theta\)),所以 \(\Gamma\) 有三个指标,是一张表而不是一个数。
T4.4.2 两条原则与地窖分量的协变导数
要把协变导数推广到其他对象,坚持两条原则:
- (a) 不变量(标量、向量、张量)的协变导数等于其偏导数;
- (b) 乘积的协变导数服从普通的乘积法则。
对标量 \(\phi=\mathbf u\cdot\mathbf v=u^jv_j\) 求偏导,代入 (4.17):
要满足 (a)(b),即 \(\phi_{,i}=v_j\nabla_iu^j+u^j\nabla_iv_j\),必须
规律:每个上标加一个 \(+\Gamma\) 项,每个下标加一个 \(-\Gamma\) 项。对 2 阶张量(习题 4.5):
T4.4.3 基向量和度量是协变常数
由 (a)(b) 可推出
即基向量和度量分量都是协变常数(度量相容性)。所以在协变导数下,升降指标与求导可以交换次序。
协变导数可以在只给出度量 \(g_{ij}\) 的 Riemann 流形上定义(\(\Gamma\) 只依赖 \(g_{ij}\))。但要注意:虽然光滑函数的偏导数可交换,\(\nabla_i\nabla_j\ne\nabla_j\nabla_i\),除非流形是平坦的。这个"不可交换"的程度就是曲率,T4.7 会看到。
T4.4.4 散度、旋度、向量梯度的分量形式
\(\nabla\) 作用于不变量时可写成 \(\nabla=\mathbf g^i\nabla_i\)。于是
一个显著的事实(习题 4.17):\(\Gamma^j_{ji}=J^{-1}J_{,i}\)(式 4.24),由行列式求导公式 \(\partial\det g/\partial u^k=\det g\cdot g^{ij}g_{ij,k}\) 与 \(\det g=J^2\) 得到。由此得到极有用的散度公式:
取 \(v^i=g^{ij}f_{,j}\)(梯度的屋顶分量),得一般坐标下的 Laplace 算子(习题 4.11):
推导拆解:从 (4.23) 到 (4.25) 只用一次乘积法则。把 \(\Gamma^i_{ij}=J^{-1}J_{,j}\) 代入 (4.23):\(\nabla\cdot\mathbf v=v^i_{,i}+J^{-1}J_{,j}v^j\)。右边乘以 \(J\) 得 \(Jv^i_{,i}+J_{,i}v^i\)(哑指标 \(j\) 改名为 \(i\)),这正是乘积 \((Jv^i)\) 求导的结果。于是 \(\nabla\cdot\mathbf v=J^{-1}(Jv^i)_{,i}\),Christoffel 符号被 \(J\) 完全吸收,不用再算它。
一维核对(对数价格)。 以价格 \(S\) 为"笛卡尔坐标",新坐标 \(x=\ln S\)。则 \(\mathbf g_x=dS/dx=S=e^x\),度量 \(g_{xx}=e^{2x}\),\(g^{xx}=e^{-2x}\),\(J=e^x\)。代入 Laplace 公式:
\[\nabla^2f=e^{-x}\big(e^x\cdot e^{-2x}f_x\big)_x=e^{-x}\big(e^{-x}f_x\big)_x=e^{-2x}(f_{xx}-f_x).\]它应当等于 \(f_{SS}\)。两边乘 \(S^2=e^{2x}\):\(S^2f_{SS}=f_{xx}-f_x\),正是第 T3 章的对数 Gamma 公式 \(V_{xx}=S^2V_{SS}+SV_S\) 移项(\(f_x=Sf_S\))。Black–Scholes 换到对数价格时的 \(-\frac12\sigma^2\partial_x\) 就是这里的 \(-f_x\)。
例 4.5 球坐标 \(J=\rho^2\sin\phi\):
用物理分量 \(v^{(\rho)}=v^\rho\),\(v^{(\phi)}=\rho v^\phi\),\(v^{(\theta)}=\rho\sin\phi\,v^\theta\) 展开,就是工程手册里的公式:
旋度与向量梯度:
旋度不需要 Christoffel 符号,因为 \(\Gamma\) 下指标对称,与反对称的 \(\epsilon\) 缩并为零。(4.28) 说明 \(\nabla_iv_j\) 是 2 阶张量 \(\nabla\mathbf v\) 的地窖分量,所以它按张量规律变换,这就是"协变导数"名称的来由;单独的偏导数 \(v_{j,i}\) 则不是张量分量。
量化翻译:在对数价格下写定价方程。 一维情形 \(x=\ln S\) 时 Black–Scholes 的空间算子 \(\frac12\sigma^2S^2\partial_{SS}+rS\partial_S\) 变成 \(\frac12\sigma^2\partial_{xx}+(r-\frac12\sigma^2)\partial_x\)。多出来的 \(-\frac12\sigma^2\partial_x\) 来自二阶导数在非线性换元下的附加项(第 T3 章)。多维随机波动率模型或在 \((\ln S,\ln v)\) 等坐标下写 PDE 时,扩散算子 \(\frac12a^{ij}\partial_{ij}\) 在换元下的二阶部分按 2 阶逆变张量变换,一阶部分会吸收附加项;用本节的协变写法可以避免逐项硬算出错。实战 2 数值核对了一维情形。
T4.5 连续介质运动学(简介)
这一节和量化没有直接关系,概要如下。物体的运动是映射 \(\mathbf y=\hat{\mathbf y}(\mathbf x,t)\),\(\mathbf x\) 是质点的初始位置。以 \((\mathbf x,t)\) 为自变量称 Lagrange(参考)坐标,弹性理论常用;以当前位置 \((\mathbf y,t)\) 为自变量称 Euler(空间)坐标,流体力学常用。Euler 描述下速度场 \(\mathbf v(\mathbf y,t)\) 通过 \(\mathbf y\) 隐式依赖 \(t\),加速度为
第一项是对流加速度,第二项是局部加速度。即使定常流(\(\mathbf v_{,t}=\mathbf 0\))也有加速度,例如不可压缩流体流过收缩喷管。算子 \((\ )^\cdot=\mathbf v\cdot\nabla+\partial_t\) 称为物质导数,表示随质点一起运动时的变化率。例 4.6 用圆柱坐标下的协变导数写出了加速度三个分量。
这个结构在量化中有一个弱类比:一个依赖价格和时间的函数 \(V(S,t)\),沿一条确定性价格路径的全导数是 \(\partial_tV+\dot S\,\partial_SV\),即"局部变化(Theta)+ 对流项(Delta × 价格变化速度)"。在随机情形还要加上 Itô 二阶项,那已超出本书范围。
T4.6 散度定理与局部化论证
T4.6.1 定理
散度定理是从守恒律的积分形式推出局部微分方程的主要工具。二维笛卡尔形式即 Green 定理 \(\int_R(P_{,x}+Q_{,y})dx\,dy=\int_{\partial R}P\,dy-Q\,dx\)。令 \(\mathbf v=P\mathbf e_x+Q\mathbf e_y\),外单位法向 \(\mathbf n=\mathbf t\times\mathbf e_z\),它成为不变形式
白话解释:散度定理就是一张"汇总表 = 明细加总"的勾稽关系。把区域 \(R\) 切成很多小格,每格的散度 × 体积是该格的净流出。相邻两格之间的流量,对一格是流出、对另一格是流入,加总时两两抵消,最后只剩穿过最外层边界的流量。左边是"各格净流出之和",右边是"整体对外的净流出",两者必然相等。
金融直觉:合并报表时,集团内部往来在合并层面全部抵消,集团对外的净现金流出 = 各子公司净现金流出之和。散度是"单个子公司(单位体积)的净流出",边界通量是"集团对外的净流出"。
面积元的不变性。 换坐标 \(x=\hat x(u,v)\),\(y=\hat y(u,v)\) 时,\(uv\) 平面的矩形网格映为 \(xy\) 平面的曲边网格,小单元面积近似为以 \(\mathbf g_u\Delta u,\mathbf g_v\Delta v\) 为边的平行四边形面积 \(|\mathbf g_u\times\mathbf g_v|\Delta u\Delta v=|J|\Delta u\Delta v\),所以
这就是多元积分换元公式。量化里做概率密度的变量替换 \(p_Y(y)=p_X(x)\,|\det\partial x/\partial y|\) 用的是同一个 \(|J|\)。
金融直觉:对数正态密度公式里那个看似多余的 \(1/x\) 就是这个 \(|J|\)。设 \(Y=\ln X\sim N(m,s^2)\)。概率在换元下守恒:\(p_X(x)\,dx=p_Y(y)\,dy\)。由 \(y=\ln x\) 得 \(dy=dx/x\),所以 \(p_X(x)=p_Y(\ln x)\cdot\dfrac1x=\dfrac1{xs\sqrt{2\pi}}e^{-(\ln x-m)^2/(2s^2)}\)。直观上,价格越高,同样宽度 \(dx\) 的价格区间对应的对数收益区间越窄,分到的概率就要按 \(1/x\) 缩小。
T4.6.2 从整体到局部
流体流过固定区域 \(R\),质量守恒要求区域内质量的减少率等于穿过边界的流出率:
用散度定理把右边换成体积分,得 \(\int_R[\rho_{,t}+\nabla\cdot(\rho\mathbf v)]dV=0\) 对一切 \(R\) 成立。若被积函数连续,它必须处处为零:否则在某点 \(P_*\) 不为零,由连续性它在以 \(P_*\) 为心的小球内保持同号,取 \(R\) 为这个小球就矛盾。于是得到连续性方程
这个"局部化论证"是推导连续介质场方程的标准模板。
量化翻译:概率守恒与 Fokker–Planck 方程。 把 \(\rho\) 换成状态变量的概率密度 \(p\),"质量守恒"就是"总概率守恒"。扩散过程 \(d\mathbf X=\mathbf b\,dt+\boldsymbol\sigma\,d\mathbf W\) 的密度满足 Fokker–Planck(前向 Kolmogorov)方程,它可以写成和 (4.39) 一样的守恒形式 \(p_{,t}+\nabla\cdot\mathbf J=0\),其中概率流 \(J^i=b^ip-\frac12\partial_j(D^{ij}p)\),\(D=\boldsymbol\sigma\boldsymbol\sigma^T\)。原书习题 4.8 强调守恒形式在数值计算中有用:用有限体积法离散守恒形式,相邻单元的流量一进一出严格抵消,数值解的总概率(或总质量)在舍入误差内保持不变。求解定价 PDE 或密度演化时,这比直接离散展开后的非守恒形式稳健。
T4.7 曲面微分几何(第二版新增,简介)
本节研究曲面与平面有何不同。原书指出两种观点:内蕴几何只用曲面内部的测量(广义相对论的核心);外在几何把曲面嵌入欧氏空间来研究(薄壳理论不可或缺)。作者采用外在观点推导,但指出哪些结果是内蕴的。约定:拉丁指标取 1–3,希腊指标取 1–2。
T4.7.1 曲面坐标与度量
隐式曲面 \(f(\mathbf x)=\) 常数的分量不独立,难以提取信息,所以用参数形式 \(\mathbf x=\hat{\mathbf x}(u^\alpha)\),\((u^1,u^2)\) 称 Gauss 曲面坐标。\(\mathbf g_\alpha=\mathbf x_{,\alpha}\) 与坐标曲线相切,在曲面坐标变换下按协变规律变换。非退化要求 \(g\equiv\det[\mathbf g_\alpha\cdot\mathbf g_\beta]>0\)。
第一基本形式(first fundamental form)
度量张量 \(\mathbf G=\mathbf g^\alpha\mathbf g_\alpha\) 是曲面切平面上的投影张量,三维中 \(\mathbf G=\mathbf 1-\mathbf{nn}\)。
T4.7.2 测地线
连接 \(P,Q\) 的曲面曲线长 \(s=\int\sqrt{g_{\alpha\beta}\dot u^\alpha\dot u^\beta}\,dt\),使之最短的曲线称为测地线(geodesic)。作者不用变分法,而用一个力学论证:一根涂了油的绳张在 \(P,Q\) 间并约束在曲面上,静止时绳长最小;因为涂了油,曲面对绳的力没有切向分量。由微元平衡 \(T'\boldsymbol\tau+T\boldsymbol\tau'=\mathbf f\) 和 \(\boldsymbol\tau\cdot\mathbf f=0\) 得张力 \(T\) 为常数,进而 \(\mathbf g^\gamma\cdot\boldsymbol\tau'=0\):测地线的加速度全在法向。分量形式:
其中 \(\Gamma^\gamma_{\alpha\beta}=\frac12g^{\gamma\lambda}(g_{\alpha\lambda,\beta}+g_{\beta\lambda,\alpha}-g_{\alpha\beta,\lambda})\) 只依赖度量。第二种写法说切向量"平行移动它自己"。用无摩擦滑动的珠子也得到同一方程,以时间为参数时为
与第 T3 章 \(f^k=0\) 时的运动方程同形。若希腊指标取 1–4,这正是广义相对论中自由质点的世界线方程。
T4.7.3 Gauss 曲率与 Gauss–Bonnet 定理
在曲面上取测地三角形 \(ABC\),借一个辅助的单位切向量场 \(\boldsymbol\lambda\) 度量转角。沿边界积分转角变化率,用二维散度定理 \(\int_R\nabla_\alpha v^\alpha dA=\int_{\partial R}v^\alpha\nu_\alpha ds\) 化为面积分,得到 Gauss–Bonnet 定理的特例:
\(\Delta\theta\) 是各顶点的外角;等价地,"内角和 \(-\pi=\int K\,dA\)"。其中
称为 Gauss 曲率。它度量的正是协变导数的不可交换性:\(K=\lambda^\alpha(\nabla_\beta\nabla_\alpha-\nabla_\alpha\nabla_\beta)\lambda^\beta\)。(推导 (4.92) 时展开出的乘积项 \(\nabla_\beta\lambda^\alpha\nabla_\alpha\lambda^\beta-\nabla_\beta\lambda^\beta\nabla_\alpha\lambda^\alpha\) 原书记作 \(\det(\nabla_\beta\lambda^\alpha)\),二维中它实为 \(\operatorname{tr}(A^2)-(\operatorname{tr}A)^2=-2\det A\);因 \(|\boldsymbol\lambda|=1\) 时该矩阵奇异,这一项为零,常数因子不影响结论。)(4.94) 左边与坐标、与辅助场 \(\boldsymbol\lambda\) 都无关,推导只用到度量,所以 \(K\) 是内蕴不变量。生活在曲面上的"蚂蚁"只要量测地三角形的内角和,就能判断自己的世界是否弯曲:平面上可取直角坐标使所有 \(\Gamma=0\),从而 \(K=0\)。
白话解释:用地球验证 (4.94)。在半径 \(R\) 的球面上,从北极沿两条相差 \(90^\circ\) 的经线走到赤道,再沿赤道连起来,得到一个三个角都是 \(90^\circ\) 的测地三角形,内角和 \(270^\circ\),比平面多出 \(\pi/2\)。球面的 Gauss 曲率处处是 \(K=1/R^2\),这个三角形占球面的 \(1/8\),面积 \(4\pi R^2/8\),于是 \(\int K\,dA=\frac1{R^2}\cdot\frac{\pi R^2}2=\frac\pi2\),正好等于多出的角度。
这一节对量化的启示只有一句:第 T3 章的 \(\Gamma\ne0\) 可能只是坐标选得弯,换坐标就能消掉;\(K\ne0\) 则是空间本身弯,任何坐标都消不掉。 多参数统计模型的参数空间(以 Fisher 信息为度量)常常属于后者(例如正态分布的 \((\mu,\sigma)\) 空间曲率为负常数),这时不存在一种参数化能让所有二阶效应都消失。
T4.7.4 外在几何:Gauss–Weingarten 方程与绝妙定理
取单位法向 \(\mathbf n=\frac12\varepsilon_{\alpha\beta}\mathbf g^\alpha\times\mathbf g^\beta\),其中曲面置换张量的地窖分量为
原书印误(式 4.96)。 原书第三种情形印作"if \(\alpha=\beta=0\)",希腊指标只取 1、2,应为 \(\alpha=\beta\)。
\(\mathbf g_\alpha\) 不张成三维空间,所以对基求导时多出法向分量:
\(b_{\alpha\beta}=\mathbf n\cdot\mathbf x_{,\alpha\beta}\) 是第二基本形式的系数,\(\mathbf B=-\nabla\mathbf n=b_{\alpha\beta}\mathbf g^\alpha\mathbf g^\beta\) 是对称的曲率张量;\(\boldsymbol\tau\cdot\mathbf B\cdot\boldsymbol\tau\) 是沿 \(\boldsymbol\tau\) 方向法截线的曲率。平均曲率 \(H=\frac12b^\alpha_\alpha\),向量场的曲面散度 \(\nabla\cdot\mathbf v=\nabla_\alpha v^\alpha-2Hv\),曲面 Laplace 算子 \(\Delta\phi=g^{\alpha\beta}\nabla_\alpha\phi_{,\beta}\)(Beltrami 算子)。
全书以两个结果收尾。其一,由 \(\oint\mathbf n'ds=\mathbf 0\) 与散度定理得 Codazzi 方程 \(\varepsilon^{\alpha\beta}\nabla_\beta b^\gamma_\alpha=0\),并进一步证明
即 Gauss 曲率等于两个主曲率之积。其二,由三阶混合偏导可交换的相容性条件 \(\varepsilon^{\beta\gamma}\mathbf g_{\alpha,\beta\gamma}=\mathbf 0\),得到 Gauss 曲率的内蕴公式
只含度量及其一、二阶导数。这就是 Gauss 的绝妙定理(Theorema egregium):曲率由第一基本形式决定。括号中的组合是 Riemann 曲率张量的反对称化部分。
与量化的距离。 曲面几何本身与交易无关。它在量化中的间接用处是"把一组对象看成弯曲空间并用其度量做计算"的思路。最实用的例子是正定矩阵(SPD)流形:把协方差矩阵集合配上仿射不变度量,两个协方差之间的测地距离为 \(d(\Sigma_1,\Sigma_2)=\big(\sum_i\log^2\lambda_i\big)^{1/2}\),\(\lambda_i\) 为广义特征值(\(\Sigma_1^{-1}\Sigma_2\) 的特征值)。它对任何换交易单元 \(\Sigma\to P^T\Sigma P\) 不变(第 T2 章:混合分量的特征值是不变量),而 Frobenius 距离不具备这个性质。可用于比较不同市场状态下的协方差、做协方差的插值与平均。信息几何(以 Fisher 信息为度量)中的测地线和曲率则用于分析估计效率,属于更进阶的话题。
推导拆解:先看一维,即两个方差 \(\sigma_1^2,\sigma_2^2\)。广义特征值只有一个 \(\lambda=\sigma_2^2/\sigma_1^2\),距离为 \(|\log(\sigma_2^2/\sigma_1^2)|=2|\log(\sigma_2/\sigma_1)|\)。它只看比值:波动率从 10% 升到 20%,和从 1% 升到 2%,距离相同;把收益从小数改成百分数(方差乘 \(10^4\)),比值不变,距离也不变。Frobenius 距离 \(|\sigma_2^2-\sigma_1^2|\) 看的是差值,换单位就变。
多维时,换交易单元 \(\Sigma\to P^T\Sigma P\) 使 \(\Sigma_1^{-1}\Sigma_2\) 变成 \(P^{-1}(\Sigma_1^{-1}\Sigma_2)P\),这是相似变换,特征值不变(第 T2 章),所以距离不变。
金融直觉:风险经理比较"上月和本月的风险结构变了多少"时,希望答案不取决于报表用人民币还是美元、用个股还是用因子组合来表示。仿射不变距离满足这一要求,它本质上是"各广义特征方向上方差比值的对数"的平方和,再开方。
T4.8 习题中的重要结论
原书第 IV 章 34 道习题(第二版新增较多),按主题归纳如下:
- 中值定理(习题 4.2):凸区域中 \(f(\mathbf b)-f(\mathbf a)=\nabla f(\mathbf x_*)\cdot(\mathbf b-\mathbf a)\),\(\mathbf x_*\) 在线段上。量化中用于估计目标函数或交易成本函数的 Lipschitz 常数、分析优化收敛。
- 张量分量的协变导数(习题 4.5):见 (4.117)–(4.119);张量场散度 \(\nabla\cdot\mathbf T=\nabla_jT^{jk}\mathbf g_k\)。
- 微分恒等式(习题 4.4、4.9、4.12、4.14):\(\nabla(\mathbf u\cdot\mathbf v)=(\nabla\mathbf u)\cdot\mathbf v+(\nabla\mathbf v)\cdot\mathbf u\),\(\nabla\cdot(f\mathbf v)=\nabla f\cdot\mathbf v+f\nabla\cdot\mathbf v\),\(\operatorname{tr}(\nabla\mathbf u)=\nabla\cdot\mathbf u\) 等。
- 迹与缩并(习题 4.15):\(\operatorname{tr}\mathbf T=T_i^{\cdot i}=g^{ij}T_{ij}=g_{ij}T^{ij}\),坐标不变;混合分量上下指标取等求和称为缩并。
- Laplace 算子(习题 4.11、4.18):在笛卡尔、斜笛卡尔、圆柱、球坐标以及抛物、椭圆、双极柱坐标中计算 \(\nabla^2f\)。这是 PDE 变量替换的基本功。
- 守恒形式(习题 4.8、4.10):理想气体运动方程化为 \((\rho\mathbf v)_{,t}+\nabla\cdot(\rho\mathbf{vv}+p\mathbf 1)=\mathbf 0\);不可压缩的两种等价定义 \(\dot\rho=0\) 与 \(\nabla\cdot\mathbf v=0\),后者是纯运动学条件,更可取。
- 线弹性与 Navier 方程(习题 4.13):本构 \(\mathbf T=\lambda\operatorname{tr}(\mathbf E)\mathbf 1+2\mu\mathbf E\),应变 \(\mathbf E=\frac12[\nabla\mathbf u+(\nabla\mathbf u)^T]\),推出 \((\lambda+\mu)\nabla(\nabla\cdot\mathbf u)+\mu\nabla^2\mathbf u+\mathbf f=\rho\ddot{\mathbf u}\)。完整走一遍"本构 + 运动学 + 平衡"的张量推导。
- 刚体动力学(习题 4.19–4.24):保距运动必为 \(\mathbf r=\mathbf c(t)+\mathbf Q(t)\mathbf x\)(\(\mathbf Q\) 为转子);\(\dot{\mathbf Q}\mathbf Q^T=\boldsymbol\omega\times\);惯性张量 \(\mathbf I=\int\rho[(\mathbf x\cdot\mathbf x)\mathbf 1-\mathbf{xx}]dV\);Euler 刚体方程(全书唯一涉及换标架处)。与量化无关。
- 曲面几何(习题 4.25–4.34):\(2\times2\) 行列式的 \(\varepsilon\) 表示 \(\det A=\frac12\varepsilon_{\alpha\beta}\varepsilon^{\lambda\mu}A^\alpha_\lambda A^\beta_\mu\);旋转曲面的曲率与 Clairaut 积分;薄膜平衡方程 \(\nabla_\alpha N^{\alpha\beta}+p^\beta=0\),\(b_{\alpha\beta}N^{\alpha\beta}+p=0\);Monge 形式 \(z=\hat z(x,y)\) 与 Lagrange 极小曲面方程 \((1+z_{,y}^2)z_{,xx}-2z_{,x}z_{,y}z_{,xy}+(1+z_{,x}^2)z_{,yy}=0\)。
- 肥皂膜(习题 4.32):\(N^{\alpha\beta}=T_0g^{\alpha\beta}\),\(p^\alpha=0\),薄膜方程的法向分量化为平均曲率与压差的关系。
原书疑似印误(习题 4.32,式 4.152)。 原书印作 \(H=-2p/T_0\)。按 \(H=\frac12b^\alpha_\alpha\) 直接代入 \(b_{\alpha\beta}N^{\alpha\beta}+p=0\):\(T_0b_{\alpha\beta}g^{\alpha\beta}=T_0b^\alpha_\alpha=2T_0H\),得 \(2T_0H+p=0\),即 \(H=-p/(2T_0)\)。结论"无压肥皂膜(\(p=0\))是平均曲率为零的极小曲面"不受影响。
量化实战
实战 1:复核原书例题——梯度换坐标、非线性特征值问题、散度公式
import numpy as np
from scipy.optimize import minimize
np.set_printoptions(precision=5, suppress=True)
# ---- 例 4.1:梯度的地窖分量就是偏导数,换坐标按 (3.89)_1 变换 ----
f = lambda x: x[0]*x[1] + x[1]*x[2] + x[2]*x[0]
grad_cart = lambda x: np.array([x[1] + x[2], x[0] + x[2], x[0] + x[1]])
x0 = np.array([12., 5., -9.])
r, th, z = np.hypot(12, 5), np.arctan2(5, 12), -9.0
dx_du = np.array([[np.cos(th), -r*np.sin(th), 0], # [dx^p/du^j],u = (r, theta, z)
[np.sin(th), r*np.cos(th), 0],
[0, 0, 1]])
f_u = np.einsum('pj,p->j', dx_du, grad_cart(x0)) # f_{,j} = dx^p/du^j * f_{,p}
print("笛卡尔梯度:", grad_cart(x0), " |grad f| = sqrt(%d)" % round(grad_cart(x0) @ grad_cart(x0)))
print("圆柱坐标地窖分量 (f_r, f_theta, f_z):", f_u, " 原书 f_r = -33/13 =", -33/13)
# ---- 例 4.3:曲线 y = 1/x^4 上离原点最近的点(非线性特征值问题)----
res = minimize(lambda t: t[0]**2 + t[0]**-8, x0=[1.0]) # 把 y = x^-4 代入 |x|^2
xs = res.x[0]; ys = xs**-4
print("最近点:", (round(float(xs), 6), round(float(ys), 6)), " 原书:", (round(16**(1/20), 6), round(16**(-1/5), 6)))
lam = 4 * xs**2 * ys # grad f = lambda x
print("lambda =", round(float(lam), 6), " 原书 16^(2/5) =", round(16**0.4, 6))
# ---- (4.25):div v = J^{-1} (J v^i)_{,i},球坐标与笛卡尔对照 ----
v_cart = lambda x: np.array([x[0]*x[1], x[1]*x[2]**2, np.sin(x[0])]) # 任意向量场
div_cart = lambda x: x[1] + x[2]**2 # 手算
def to_x(u):
rho, ph, t = u
return np.array([rho*np.sin(ph)*np.cos(t), rho*np.sin(ph)*np.sin(t), rho*np.cos(ph)])
def jac(fun, u, h=1e-5):
return np.column_stack([(fun(u + h*e) - fun(u - h*e)) / (2*h) for e in np.eye(3)])
def Jv_roof(u): # J * v^i,v^i = g^i . v
G = jac(to_x, u)
return np.linalg.det(G) * (np.linalg.inv(G) @ v_cart(to_x(u)))
u0 = np.array([1.3, 0.9, 0.4]); h = 1e-4
div_sph = sum((Jv_roof(u0 + h*e)[i] - Jv_roof(u0 - h*e)[i]) / (2*h)
for i, e in enumerate(np.eye(3))) / np.linalg.det(jac(to_x, u0))
print("散度:球坐标公式 %.6f,笛卡尔 %.6f" % (div_sph, div_cart(to_x(u0))))
关键输出:
笛卡尔梯度: [-4. 3. 17.] |grad f| = sqrt(314)
圆柱坐标地窖分量 (f_r, f_theta, f_z): [-2.53846 56. 17. ] 原书 f_r = -33/13 = -2.5384615384615383
最近点: (1.148698, 0.574349) 原书: (1.148698, 0.574349)
lambda = 3.031433 原书 16^(2/5) = 3.031433
散度:球坐标公式 1.049569,笛卡尔 1.049569
实战 2:最速方向依赖度量、对数价格下的定价算子、协方差的不变距离
三个小实验分别对应 T4.1、T4.4 和 T4.7 的量化翻译:
- 线性函数 \(f(\mathbf w)=\boldsymbol\mu\cdot\mathbf w\) 的偏导数是 \(\boldsymbol\mu\)。在"单位风险"约束 \(\mathbf d\cdot\Sigma\mathbf d=1\) 下暴力搜索使 \(\boldsymbol\mu\cdot\mathbf d\) 最大的方向,结果应是升指标后的 \(\Sigma^{-1}\boldsymbol\mu\),而不是 \(\boldsymbol\mu\) 本身。
- 对 Black–Scholes 看涨期权价格,用有限差分核对 \(V_x=SV_S\)、\(V_{xx}=S^2V_{SS}+SV_S\),以及两种坐标下空间算子相等。
- 随机生成两个协方差矩阵和一个非奇异"换单元"矩阵 \(P\),比较仿射不变距离与 Frobenius 距离在 \(\Sigma\to P^T\Sigma P\) 下的表现。
import numpy as np
from scipy.linalg import eigh
np.set_printoptions(precision=4, suppress=True)
rng = np.random.default_rng(11)
# ===== 1. 梯度是协变向量:“最速上升方向”取决于度量 =====
N = 4
mu = np.array([0.08, 0.10, 0.06, 0.12]) # 年化预期超额收益 = 线性函数 f(w)=mu.w 的梯度
vol = np.array([0.15, 0.25, 0.10, 0.30]); C = 0.3 + 0.7*np.eye(N)
Sigma = np.outer(vol, vol) * C
# 在度量 Sigma 下,单位“长度”(单位风险)内使 mu.d 最大的方向 = 升指标 Sigma^{-1} mu
d_metric = np.linalg.solve(Sigma, mu); d_metric /= np.sqrt(d_metric @ Sigma @ d_metric)
# 暴力核对:在风险椭球面 d.Sigma d = 1 上随机取 20 万个方向
L = np.linalg.cholesky(Sigma)
Z = rng.normal(size=(200_000, N)); Z /= np.linalg.norm(Z, axis=1, keepdims=True)
D = np.linalg.solve(L.T, Z.T).T # 满足 d.Sigma d = 1
best = D[np.argmax(D @ mu)]
print("度量下最速方向 Sigma^-1 mu:", d_metric)
print("暴力搜索最优方向 :", best, " Sigma 度量下夹角余弦:", round(best @ Sigma @ d_metric, 5))
d_eucl = mu / np.sqrt(mu @ Sigma @ mu) # 把协变梯度直接当位移(欧氏最速方向)
print("单位风险收益:Sigma^-1 mu 方向 %.4f,mu 方向 %.4f" % (mu @ d_metric, mu @ d_eucl))
print("最大夏普 = sqrt(mu.Sigma^-1 mu) = %.4f" % np.sqrt(mu @ np.linalg.solve(Sigma, mu)))
# ===== 2. 换到对数价格:Black–Scholes 算子的变换(二阶导数的附加项)=====
from scipy.stats import norm
sig, r, K, tau = 0.25, 0.03, 100.0, 0.5
def call(S):
d1 = (np.log(S/K) + (r + 0.5*sig**2)*tau) / (sig*np.sqrt(tau)); d2 = d1 - sig*np.sqrt(tau)
return S*norm.cdf(d1) - K*np.exp(-r*tau)*norm.cdf(d2)
S0, h = 105.0, 1e-3
V_S = (call(S0+h) - call(S0-h)) / (2*h)
V_SS = (call(S0+h) - 2*call(S0) + call(S0-h)) / h**2
g = lambda x: call(np.exp(x)); x0 = np.log(S0); hx = 1e-4
V_x = (g(x0+hx) - g(x0-hx)) / (2*hx)
V_xx = (g(x0+hx) - 2*g(x0) + g(x0-hx)) / hx**2
print("\nV_x = %.5f, S*V_S = %.5f" % (V_x, S0*V_S))
print("V_xx = %.5f, S^2 V_SS = %.5f, S^2 V_SS + S V_S = %.5f" % (V_xx, S0**2*V_SS, S0**2*V_SS + S0*V_S))
LS = 0.5*sig**2*S0**2*V_SS + r*S0*V_S
Lx = 0.5*sig**2*V_xx + (r - 0.5*sig**2)*V_x
print("BS 空间算子:S 坐标 %.5f,x=ln S 坐标 %.5f" % (LS, Lx))
# ===== 3. 协方差矩阵流形:仿射不变距离对“换交易单元”不变 =====
def rand_cov(n):
A = rng.normal(size=(n, 2*n)); return A @ A.T / (2*n)
S1, S2 = rand_cov(N), rand_cov(N)
def d_affine(A, B): # sqrt(sum log^2 lambda_i),lambda 为 A^{-1}B 的广义特征值
return np.sqrt(np.sum(np.log(eigh(B, A, eigvals_only=True))**2))
d_frob = lambda A, B: np.linalg.norm(A - B)
P = rng.normal(size=(N, N)) # 任意非奇异的换单元矩阵
T1, T2 = P.T @ S1 @ P, P.T @ S2 @ P
print("\n仿射不变距离:换单元前 %.6f,后 %.6f" % (d_affine(S1, S2), d_affine(T1, T2)))
print("Frobenius 距离:换单元前 %.6f,后 %.6f" % (d_frob(S1, S2), d_frob(T1, T2)))
关键输出:
度量下最速方向 Sigma^-1 mu: [2.9705 0.7404 5.7583 0.617 ]
暴力搜索最优方向 : [2.7587 0.7865 5.9243 0.6336] Sigma 度量下夹角余弦: 0.99949
单位风险收益:Sigma^-1 mu 方向 0.7312,mu 方向 0.5950
最大夏普 = sqrt(mu.Sigma^-1 mu) = 0.7312
V_x = 70.70393, S*V_S = 70.70393
V_xx = 284.91920, S^2 V_SS = 214.21525, S^2 V_SS + S V_S = 284.91918
BS 空间算子:S 坐标 8.81534,x=ln S 坐标 8.81535
仿射不变距离:换单元前 3.518153,后 3.518153
Frobenius 距离:换单元前 2.080391,后 7.221998
读法:
- 随机搜索找到的最优方向与 \(\Sigma^{-1}\boldsymbol\mu\) 在风险度量下的夹角余弦为 0.9995(随机采样的精度所限)。沿 \(\Sigma^{-1}\boldsymbol\mu\) 每单位风险得到 0.731 的超额收益,恰为最大夏普比 \(\sqrt{\boldsymbol\mu\cdot\Sigma^{-1}\boldsymbol\mu}\);把偏导数向量 \(\boldsymbol\mu\) 直接当方向只有 0.595。把协变的梯度当成逆变的位移,就等于默认用了欧氏度量,在风险意义下不是最优。
- 对数价格下的二阶导数比"现金 Gamma"\(S^2V_{SS}\) 多出 \(SV_S\),两种坐标下的空间算子数值相同。
- 换交易单元后,仿射不变距离不变,Frobenius 距离从 2.08 变成 7.22。比较两个协方差矩阵(例如牛熊两种状态)时,如果希望结论不依赖于"用什么单位、什么组合来表达资产",应使用前者。
本章小结
梯度的几何定义依赖距离;在一般坐标下,偏导数 \(f_{,i}\) 是梯度的协变分量,\(\nabla f=f_{,i}\mathbf g^i\),要变成"方向"必须用度量升指标。约束驻值条件 \(\nabla f=\lambda\mathbf x\) 就是拉格朗日乘子条件,二次目标时是线性特征值问题,否则是非线性特征值问题。把向量场求导写成分量时,基向量的变化以 Christoffel 符号的形式进入,构成协变导数 \(\nabla_iv^k=v^k_{,i}+\Gamma^k_{ij}v^j\)、\(\nabla_iv_j=v_{j,i}-\Gamma^k_{ij}v_k\),它由"不变量的协变导数等于偏导数"和"乘积法则"两条原则唯一确定,基向量与度量都是协变常数。散度在任意坐标下为 \(J^{-1}(Jv^i)_{,i}\),Laplace 算子为 \(J^{-1}(Jg^{ij}f_{,j})_{,i}\)。散度定理加局部化论证把积分守恒律变成连续性方程,概率密度的 Fokker–Planck 方程有同样的守恒形式。曲面几何部分给出测地线方程、Gauss–Bonnet 定理和绝妙定理:Gauss 曲率是只依赖度量的内蕴量,度量了协变导数的不可交换性。对量化最有用的是:\(\Sigma^{-1}\boldsymbol\mu\)、自然梯度、牛顿方向都是"用某个度量把协变梯度升成逆变方向";对数坐标下的定价算子要带上二阶附加项;比较协方差矩阵宜用对换基不变的距离。
| 概念 | 公式 | 量化对应 |
|---|---|---|
| 梯度 | \(\nabla f=f_{,i}\mathbf g^i\),\(df/ds=\nabla f\cdot\mathbf t\) | 偏导数是协变分量 |
| 最速方向 | \((\nabla f)^i=g^{ij}f_{,j}\) | \(\Sigma^{-1}\boldsymbol\mu\)、自然梯度、牛顿方向 |
| 约束驻值 | \(\nabla f=\lambda\mathbf x\) | 拉格朗日条件、最小方差、PCA |
| del 算子 | \(\nabla=\mathbf g^i\partial_i\) | |
| 向量梯度 | \(\operatorname{grad}\mathbf v=(\nabla\mathbf v)^T\) | Jacobian 矩阵 |
| 协变导数 | \(\nabla_iv^k=v^k_{,i}+\Gamma^k_{ij}v^j\),\(\nabla_iv_j=v_{j,i}-\Gamma^k_{ij}v_k\) | |
| 度量相容 | \(\nabla_ig_{jk}=0\),\(\nabla_i\mathbf g_j=\mathbf 0\) | |
| 散度 | \(\nabla\cdot\mathbf v=\nabla_iv^i=J^{-1}(Jv^i)_{,i}\) | |
| Laplace 算子 | \(\nabla^2f=J^{-1}(Jg^{ij}f_{,j})_{,i}\) | 变换坐标下的扩散项 |
| 散度定理 | \(\int_R\nabla\cdot\mathbf v\,dV=\int_{\partial R}\mathbf v\cdot\mathbf n\,dA\),\(dV=\lvert J\rvert du\) | 密度换元、有限体积法 |
| 连续性方程 | \(\rho_{,t}+\nabla\cdot(\rho\mathbf v)=0\) | Fokker–Planck 守恒形式 |
| 测地线 | \(\ddot u^\gamma+\Gamma^\gamma_{\alpha\beta}\dot u^\alpha\dot u^\beta=0\) | 统计流形、SPD 流形 |
| Gauss–Bonnet | \(2\pi-\sum\Delta\theta=\int K\,dA\) | |
| 曲率 | \(K=\det\mathbf B\),内蕴公式 (4.116) |
练习
基础
- 求 \(f=xyz\sqrt{x^2+y^2}\) 在 \((1,-2,3)\) 处沿 \(\mathbf v\sim(2,1,2)\) 的方向导数。(原书习题 4.1) 答案要点:\(\nabla f=(yz\rho+xyz\,x/\rho,\ xz\rho+xyz\,y/\rho,\ xy\rho)\),\(\rho=\sqrt5\);在该点为 \((-6\sqrt5-6/\sqrt5,\ 3\sqrt5+12/\sqrt5,\ -2\sqrt5)=(-36/\sqrt5,\ 27/\sqrt5,\ -10/\sqrt5)\);\(df/ds=\nabla f\cdot\bar{\mathbf v}=\frac13(-72+27-20)/\sqrt5=-65/(3\sqrt5)\approx-9.69\)。
- 用拉格朗日条件 \(\nabla f=\lambda\nabla g\) 求最小方差组合 \(\min\mathbf w\cdot\Sigma\mathbf w\),s.t. \(\mathbf 1\cdot\mathbf w=1\),并给出最小方差。 答案要点:\(\mathbf w^*=\Sigma^{-1}\mathbf 1/(\mathbf 1\cdot\Sigma^{-1}\mathbf 1)\),最小方差 \(1/(\mathbf 1\cdot\Sigma^{-1}\mathbf 1)\)。
- 圆柱坐标中写出 \(\nabla\cdot\mathbf v\)(用物理分量)和 \(\nabla^2f\)。(原书习题 4.11 的一部分) 答案要点:\(J=r\),\(\nabla\cdot\mathbf v=\frac1r\partial_r(rv^{(r)})+\frac1r\partial_\theta v^{(\theta)}+\partial_zv^{(z)}\);\(\nabla^2f=\frac1r\partial_r(rf_{,r})+\frac1{r^2}f_{,\theta\theta}+f_{,zz}\)。
- 证明 \(\operatorname{tr}\mathbf T=T_i^{\cdot i}=g^{ij}T_{ij}\) 与坐标无关。(原书习题 4.15) 提示:混合分量按相似变换 \(A^{-1}TA\) 变换,迹不变;或直接用 (3.90) 并利用 \(\frac{\partial u^k}{\partial\tilde u^i}\frac{\partial\tilde u^i}{\partial u^p}=\delta^k_p\)。
- 设两个随机变量 \(X\in\mathbf R^n\) 与 \(Y=\phi(X)\)(\(\phi\) 一一可微)。写出 \(p_Y\) 与 \(p_X\) 的关系,并指出 \(|J|\) 在 (4.48) 中的对应。对 \(Y=\ln X\)(\(X\) 为对数正态)验证得到正态密度。 答案要点:\(p_Y(y)=p_X(\phi^{-1}(y))\,|\det\partial\phi^{-1}/\partial y|\);\(X=e^Y\),\(|J|=e^y\)。
进阶
- 由 \(\phi=u^jv_j\) 与原则 (a)(b) 推导 (4.20);再用习题 3.11 的 \(\mathbf g^i_{,j}=-\Gamma^i_{jk}\mathbf g^k\) 从 \(\mathbf v_{,i}=(v_j\mathbf g^j)_{,i}\) 直接推导一遍。(原书习题 4.16)
- 证明 \(\Gamma^j_{ji}=J^{-1}J_{,i}\),并由此导出 (4.25)。(原书习题 4.17) 提示:\(\partial\det[g_{ij}]/\partial u^k=\det[g_{ij}]\,g^{ij}g_{ij,k}\)(Jacobi 公式),再代入 (3.71) 缩并 \(k=i\)。
- 设权重空间度量为 \(\Sigma\),目标为均值–方差效用 \(U(\mathbf w)=\boldsymbol\mu\cdot\mathbf w-\frac\gamma2\mathbf w\cdot\Sigma\mathbf w\)。(a) 写出 \(U\) 的协变梯度和在度量 \(\Sigma\) 下的最速上升方向;(b) 说明在该度量下以步长 \(1/\gamma\) 做一步"自然梯度上升"会从任意起点直接到达最优解。 答案要点:(a) \(U_{,i}=\mu_i-\gamma(\Sigma\mathbf w)_i\),方向 \(\Sigma^{-1}\boldsymbol\mu-\gamma\mathbf w\);(b) \(\mathbf w+\frac1\gamma(\Sigma^{-1}\boldsymbol\mu-\gamma\mathbf w)=\Sigma^{-1}\boldsymbol\mu/\gamma=\mathbf w^*\)。度量恰为 Hessian 时自然梯度即牛顿法。
- 一维 Fokker–Planck 方程 \(p_t=-\partial_x(bp)+\frac12\partial_{xx}(\sigma^2p)\)。把它写成守恒形式 \(p_t+\partial_xJ=0\),并说明在有限体积离散 \(\frac{d}{dt}p_k\Delta x=-(J_{k+1/2}-J_{k-1/2})\) 下,零流量边界时 \(\sum_kp_k\Delta x\) 守恒。 答案要点:\(J=bp-\frac12\partial_x(\sigma^2p)\);求和后内部流量逐项抵消,只剩两端边界流量。
- 编程:实现 \(d(\Sigma_1,\Sigma_2)=\big(\sum\log^2\lambda_i(\Sigma_1^{-1}\Sigma_2)\big)^{1/2}\),用滚动 60 日窗口估计的模拟协方差序列,计算相邻窗口距离的时间序列,并说明在一次人为注入的"相关性跳升"附近距离如何变化。
提示:用
scipy.linalg.eigh(S2, S1, eigvals_only=True);在模拟收益中途把成对相关系数从 0.2 调到 0.7,距离序列会在跳变后约一个窗口长度内升高。
原书推荐习题
- 4.2:多元中值定理;4.11:各坐标系下的 Laplace 算子(PDE 变量替换的基本功)。
- 4.5、4.15、4.16、4.17:张量的协变导数、迹与缩并、\(\Gamma^j_{ji}=J^{-1}J_{,i}\)。
- 4.8、4.10:守恒形式与连续性方程(数值 PDE 的守恒性)。
- 4.13:Navier 方程,完整走一遍"本构 + 运动学 + 平衡"的张量推导。
- 4.25–4.27、4.29、4.33:曲面几何计算(行列式的 \(\varepsilon\) 表示、旋转曲面与 Monge 形式的曲率)。
原书对照
| 本章小节 | 原书小节 | 书页 | PDF 页 |
|---|---|---|---|
| T4.1 梯度 | 4.0 章首;4.1 The Gradient | 71–75 | 83–87 |
| T4.2 约束驻值与特征值问题 | 4.2 Linear and Nonlinear Eigenvalue Problems | 75–76 | 87–88 |
| T4.3 Del 算子、散度、旋度 | 4.3 The Del Operator;4.4 Divergence, Curl, and Gradient;4.5 Invariance | 76–78 | 88–90 |
| T4.4 协变导数 | 4.6 The Covariant Derivative;4.7 Component Forms | 79–81 | 91–93 |
| T4.5 连续介质运动学 | 4.8 The Kinematics of Continuum Mechanics | 81–83 | 93–95 |
| T4.6 散度定理 | 4.9 The Divergence Theorem | 83–86 | 95–98 |
| T4.7 曲面微分几何 | 4.10 Differential Geometry(第二版新增) | 87–97 | 99–109 |
| T4.8 习题结论 | 4.11 Exercises(共 34 题) | 97–105 | 109–117 |
页码说明:扫描缺原书空白页 p.70,故第 IV 章原书第 \(p\) 页 = PDF 第 \(p+12\) 页(前三章为 \(p+13\));原书 p.106 也是空白页且未扫描,索引(原书 p.107 起)从 PDF p.118 开始。
本章涉及的原书印误:式 (4.96) 第三种情形应为 \(\alpha=\beta\)(原印"\(\alpha=\beta=0\)");习题 4.32 的式 (4.152) 应为 \(H=-p/(2T_0)\)(原印 \(H=-2p/T_0\))。另外,4.10 节正文引用曲面几何习题时(如"见习题 4.26""习题 4.27""习题 4.28")与习题区编号存在错位:按习题区,4.26 是二维置换张量的协变常数性,4.27 是 (4.142)(4.143) 与 \(\det(\nabla_\beta\lambda^\alpha)=0\),4.28 是法截线曲率。回查时以公式编号为准。