CCG 04-08:调和、拟共形与数值诊断

本页只解决一个问题

调和映射何时共形,算法中怎样测 Beltrami 与奇异值畸变?

本页是原长篇讲义的单概念版本。第一次阅读只追踪本页定义的对象;看见未掌握的前置符号时,先沿链接退回,不要跳过定义硬背结论。

开始前

14. 调和映射与共形映射

设f:M→Nf:M\to N 是定向曲面间映射。在局部复坐标中能量密度分解为

e(f)∝∣fz∣2+∣fzˉ∣2,e(f)\propto |f_z|^2+|f_{\bar z}|^2,

面积密度为

J(f)∝∣fz∣2−∣fzˉ∣2.J(f)\propto |f_z|^2-|f_{\bar z}|^2.

两者之差:

E(f)−Area⁡(f)∝∫M∣fzˉ∣2dA≥0.E(f)-\operatorname{Area}(f) \propto\int_M|f_{\bar z}|^2dA\ge0.

因此共形映射使反全纯部分消失,并达到能量-面积下界。

但要注意:

  • 调和不自动推出共形;
  • 从二维域到平面的调和映射若满足额外条件才共形;
  • 调和映射依赖边界条件和同伦类;
  • 分支点处导数可能为 0。

15. 拟共形映射

KK-拟共形映射允许有界角度畸变:

∥Df∥2≤KJf\|Df\|^2\le KJ_f

(不同文献的范数与KK 约定略有区别),等价于

∥μ∥∞≤k<1,K=1+k1−k.\|\mu\|_\infty\le k<1, \qquad K=\frac{1+k}{1-k}.

拟共形理论对计算特别重要,因为完全共形通常受边界、拓扑和离散误差限制,而μ\mu 是一个可优化、可插值、可组合的畸变量。

15.1 Beltrami 系数的复合律

若f,gf,g 可微且方向保持,复合g∘fg\circ f 的 Beltrami 系数满足一个分式线性组合。重要结论是:拟共形映射在复合和求逆下封闭;但畸变会累积。

16. 数值算法的三条路线

路线连续方程典型离散方法
调和映射Δf=0\Delta f=0余切 Laplace、Tutte、有限元
Cauchy–Riemannfzˉ=0f_{\bar z}=0LSCM、全纯 1-形式积分
曲率处方Ke2ug=KˉK_{e^{2u}g}=\bar KYamabe/Ricci flow、Newton 法

它们并非彼此独立:调和映射从能量出发,Cauchy–Riemann 从复结构出发,曲率流从共形度量出发,最终都在构造同一个共形结构的不同表示。

17. Python:Jacobian、Beltrami 与奇异值

import numpy as np


def distortion_from_jacobian(J):
    """返回面积 Jacobian、奇异值比 K 和 |mu|。"""
    J = np.asarray(J, dtype=float).reshape(2, 2)
    det = np.linalg.det(J)
    sigma = np.linalg.svd(J, compute_uv=False)
    K = np.inf if sigma[1] == 0 else sigma[0] / sigma[1]
    mu_abs = 1.0 if np.isinf(K) else (K - 1.0) / (K + 1.0)
    return det, K, mu_abs


tests = {
    "similarity": [[0.0, -2.0], [2.0, 0.0]],
    "anisotropic": [[3.0, 0.0], [0.0, 1.0]],
    "shear": [[1.0, 0.7], [0.0, 1.0]],
    "flip": [[-1.0, 0.0], [0.0, 1.0]],
}

for name, J in tests.items():
    det, K, mu_abs = distortion_from_jacobian(J)
    print(name, "det=", det, "K=", K, "|mu|=", mu_abs)

只看KK 无法检测翻转,因为反射的两个奇异值也相等。必须同时检查det⁡J>0\det J>0。

读完必须能回答

  1. 不看公式,用自己的话回答开头的核心问题。
  2. 指出本页最重要公式中每个符号的类型:标量、向量、矩阵、映射还是集合。
  3. 找出定理成立所需的假设,并举一个删除某条假设后可能失败的例子。
  4. 对最小例子手算一遍;若本页含代码,再比较手算与程序输出。

前后课程

上一课:Poincare 圆盘 | 返回模块目录