Spherical harmonic transform
REFERENCES
- Rapid application of the spherical harmonic transform via interpolative decomposition butterfly factorization by James Bremer, Ze Chen, Haizhao Yang, SISC 2021.
- Fast and backward stable transforms between spherical harmonic expansions and bivariate Fourier series by Richard Mikael Slevinsky, ACHA 2019.
- Fast algorithms for spherical harmonic expansions by Vladimir Rokhlin, Mark Tygert, SISC 2006.
- Fast algorithms for spherical harmonic expansions, II by Mark Tygert, JCP 2008.
- Fast algorithms for spherical harmonic expansions, III by Mark Tygert, JCP 2010.
- A fast spherical harmonics transform algorithm by Reiji Suda, Masayasu Takami, Math.Comp 2001.
球谐函数(spherical harmonics)是单位球面
这里
其中
这种正交展开使球谐函数成为球面函数逼近与谱方法的重要基础:光滑球面函数往往具有快速衰减的球谐系数;而对于球面 Poisson、Helmholtz 等偏微分方程,上述特征值关系还可用于简化谱空间中的算子表示。与此同时,球谐函数沿经度和纬度呈现的不同结构,也决定了快速球谐变换(spherical harmonics transform, SHT)的主要计算困难:球谐函数在经度方向上已经是 Fourier 模式,可以直接使用 FFT;但在纬度方向上,不同阶数对应不同的关联 Legendre 函数族,无法把整个计算简单地交给一个固定的 FFT。真正需要加速的是这些随阶数变化的稠密一维变换。
本文是关于上面六篇论文的简单综述,它们给出了目前最有效的几种进行快速球谐变换的算法。这六篇文献的差别,主要在于它们选择了什么中间表示,以及如何利用这个表示中的结构:Suda–Takami 把递推生成的函数拆成低相对次数的两部分,再快速插值;Rokhlin–Tygert 将跨阶基底连接转化为结构化特征向量变换;Tygert II 将特征向量的含义改为特殊节点上的函数值;Tygert III 用蝶形压缩代替 II 中的特征向量算法;Slevinsky 从解析的正交旋转出发,构造到 Fourier 系数的稳定连接;Bremer–Chen–Yang 则利用函数的振荡区域与非振荡区域,把矩阵的构造和作用一并加速。
阅读时需要始终区分三个问题:一次变换需要多少运算、为反复使用它需要做多少预计算,以及误差结论针对哪一个计算步骤。 这三个问题的答案并不总是相同。以下公式除明确标注的统一说明符号外,均按对应论文的记号书写;文中的“原式”与节号用于定位附件 PDF,而不作为本文公式的连续编号。
1. 共同问题与两条路线
先用一个仅在本节及最后比较中使用的带限参数
这里
球谐系数一共有
下文统一用合成(synthesis)表示“球谐系数到函数值”,用分析(analysis)表示“函数值到球谐系数”。各文对 forward/inverse 的命名并不一致;例如 Bremer–Chen–Yang 把合成称作 forward。因此不能仅凭这两个英文词判断矩阵乘法的方向。[1, §3.1;3, §4–5;5, §6]
这六篇文献中的使用的算法大致可以分成值域方法与系数域方法两条技术路线:
| 路线 | 固定阶数时希望先得到 | 本组文献中的代表 | 主要结构 |
|---|---|---|---|
| 节点值路线 | 在某组纬度节点上的关联 Legendre 展开值 | Suda–Takami [6];Tygert II [4];Tygert III [5];Bremer–Chen–Yang [1] | 分裂递推与插值、采样矩阵的正交特征向量、互补低秩、振荡区域分块 |
| 系数连接路线 | 公共低阶基底的系数,再转为正弦、余弦或 Fourier 系数 | Rokhlin–Tygert [3];Slevinsky [2] | Sturm–Liouville 算子、半可分矩阵、解析 Givens 旋转、Fourier 积分算子、Gamma 比值连接 |
这里的两条路线并不对应两种互斥的压缩算法。蝶形分解是一种工具,既可以压缩“系数到节点值”的矩阵,也可以压缩“一个基底的系数到另一个基底的系数”的矩阵。 Tygert III 和 Bremer–Chen–Yang 属于前一种用法,Slevinsky 属于后一种用法。同样,Rokhlin–Tygert 与 Tygert II 都使用快速特征向量变换,但它们对角化的算子不同,所得特征向量的含义也不同。
这一划分有助于澄清文献之间的实际继承关系:Rokhlin–Tygert 已经走过“先转成三角系数”的路线,Slevinsky 进一步改善的是连接的构造、正交性利用和压缩方式;Tygert III 继承的是 II 的节点框架,替换了其中的核心谱变换;Bremer–Chen–Yang 直接面向公共 Gauss–Legendre 节点上的矩阵,特别处理长期存在的预计算瓶颈。
正交性、求积权重与逆变换
设
由正交性可知精确求积将给出
因而合成是
满足
Remark: 为什么奇阶关联 Legendre 函数也能使用 Gauss–Legendre 精确求积?
关联 Legendre 函数可写为
其中
是次数不超过
符号约定
| 文献 | 原文主要带限或规模符号 | 关联 Legendre 记号 | 阅读时特别注意 |
|---|---|---|---|
| Suda–Takami [6] | 理论主要用 |
实验归一化的平方积分为 |
|
| Rokhlin–Tygert [3] | 全局最高次数为 |
奇阶降到 |
|
| Tygert II [4] | 全局最高次数为 |
||
| Tygert III [5] | 核心测试用阶数 |
||
| Slevinsky [2] | 全局最高次数为 |
相邻阶连接 |
|
| Bremer–Chen–Yang [1] | 全局最高次数为 |
下面不把这些符号强行统一。每一篇开始时先重新说明局部记号;只在最后的横向比较中使用
2. Suda–Takami(2001/2002):分裂 Legendre 函数与快速插值
A fast spherical harmonics transform algorithm, by Reiji Suda and Masayasu Takami. [6]
从高次数展开转向局部函数值表示
Suda–Takami 考虑的主要问题是固定阶
这就是原文式(3)。经度方向已经可以使用 FFT,因此能否加速球谐变换,主要取决于如何降低全部
本文的出发点是:一个部分和所需的自由度由其次数区间的宽度决定,应当用相应数量的函数值表示它,而不必始终保留全局规模的数据。 困难在于,高次数区间的部分和并不是低次多项式。若直接剥去公共因子、再用多项式系数组织递归,中间表示可能很不稳定。作者因此引入两条分裂 Legendre 分量,使高次数区间也能写成低次多项式与适当基准函数的乘积。随后,各层部分和都通过精心选择的采样值表示,层间传递则由快速插值完成。[6, §§1.2,2.1]
这里的快速工具是 FMM 加速的 Cauchy 核求和。正文并没有对关联 Legendre 矩阵构造 SVD 或 ID 蝶形分解;其核心结构首先来自三项递推给出的精确恒等式。[6, §§2.1–2.4]
为何一次快速插值还不够?假如只在
Step 1 用两条分裂分量表示高次数部分和
关联 Legendre 函数满足
由于这是关于次数的二阶递推,给定相邻的两个基准函数
这分别是式(6)、(7),组合使用这两个公式可以给出
这说明我们可以将一个阶数为
当
不同子区间可以选择不同分裂点,但合并它们之前,必须把表示迁移到共同的分裂点。原文定义
并给出式(8):
第一个下标
分裂点的选择还关系到稳定性。作者指出,
例如,原文将高次数部分和写为
取
Step 2 用带缩放的 Cauchy 插值传递节点值
设低次多项式
Lagrange 插值可以写成
在节点固定时,这就是“输入对角缩放—Cauchy 矩阵作用—输出对角缩放”:
首尾两步具有线性成本,中间一步可由 FMM 加速。若源点数和目标点数分别为
分裂分量具有形式
因此,算法实际传递的是带有基准函数的值,避免了显式形成可能不适宜数值计算的多项式系数。不过,具有快速插值公式并不自动意味着插值稳定;采样点的选择是这条路线的另一个关键环节。
Step 3 稳定选点,再沿次数区间递归合并
对以
若矩阵元素很大,插值便可能通过大项相消产生较小结果。作者用 Cramer 法则说明:在候选节点中,若采样矩阵的行列式绝对值达到全局最大,则
实际算法在候选点集合
开始,共同选择使
最大的节点,再同时更新两条权函数。这一 max-min 规则试图兼顾两个基准函数,避免分别取点后将采样规模约增一倍。必须区分:最大行列式集合给出的是存在性论证,而上述贪心规则的稳定性在本文中由实验支持,没有获得同样的全局保证。[6, §2.3, pp.708–709]
完整计算由两个递归过程组成:一个返回普通部分和,另一个返回两条分裂部分和。对每个次数区间,先选择适合该区间的分裂点和较小采样集合,再将次数区间二分;两个子结果迁移到同一分裂点后相加,最后通过快速插值传递到父节点需要的点上。两条分量共享递归过程,并不是将每一层展开成四个相互独立的子问题。当继续插值或二分不再划算时,转为直接求值。[6, §2.4, pp.709–711]
在固定 FMM 精度下,每层所有子区间所处理的点数总和为
预计算昂贵也有具体原因:贪心选点需要反复检查候选集合,插值及迁移还需要生成许多与节点相关的系数。作用时可把这些操作变为现成数据上的乘加,但首次使用仍要承担建设成本。本文没有给出足以据此宣称完整计划具有某个近二次存储界的分析;其贡献应落在重复作用的加速,而完整计划的成本和存储仍须单独评估。[6, §§2.5,3]
误差方面,FMM 的
这一缺口与具体计算过程有关:Cauchy 求和的误差还要经过输入输出缩放、分裂点迁移以及多层合并。即使单次插值矩阵的元素较小,也仍需估计这些操作共同作用时误差如何传播。作者通过适应每个部分和的采样集合,避免所有区间被迫使用同一种不合适的表示,但尚未把这一设计转化为全过程的误差定理。[6, §3, p.714]
实验所支持的结论
实验使用 Gauss–Legendre 节点,并将函数规范化为
这一规范化与后面 Tygert 使用的单位
表1在 FMM 展开阶数为
这些时间由抽样的
3. Rokhlin–Tygert(2006):低阶连接与半可分谱变换
Fast algorithms for spherical harmonic expansions, by Vladimir Rokhlin and Mark Tygert. [3]
从球谐变换到跨阶连接问题
Rokhlin 与 Tygert 的出发点仍然是在经向 Fourier 变换已经可以交给 FFT 的前提下,尝试同时加速各个角阶的 associated Legendre 变换。他们没有直接压缩函数在纬向节点上的采样矩阵,而是先研究不同角阶的正交基之间能否快速换基。原文以
球谐展开截断到次数
本文默认使用等角中点纬度,其对应的
作者选择的中间基是阶数
Step 1 把微分算子写成对角加半可分矩阵
关键数学工具是 associated Legendre 方程的自伴形式。原文定义
不同
由于基函数已经对角化
更强的结论是,
其中
因而
这个结论把原本需要逐项生成的稠密矩阵,压缩成了一个对角向量和两条生成元。直接应用
这一结构与三项递推的关系也很清楚。在固定次数奇偶的低阶基中,乘法
Step 2 用特征向量实现高阶到低阶的连接
设目标函数在低阶基中的展开为
将它代入
所以,
具体地,若
则原文给出的关系是
这里
从数值角度看,这种中间表示的吸引力在于能量规范始终清楚:连接前后的函数相同,两套基都使用同一个
Step 3 快速作用谱连接,再转为三角系数
到这里,问题转化为快速应用
具体说,半可分矩阵按连续索引分为两块时,连接左右子块的非对角块仍为秩一;在子问题的特征基中,这种小秩耦合仍然是小秩耦合。分治算法由此可以先处理两个子问题,再通过结构化谱更新合并。合并矩阵虽然仍然稠密,但其条目不再是任意数据,而由两套实谱点之间的 Cauchy 核和少量缩放量控制。快速方法保存的是这些可快速应用的合并表示,再逐层将输入传递上去。最后把所有合并步骤逆序转置,就能得到相应的转置作用,而不必重新压缩另一张不相关的矩阵。
因此,本文同时使用了精确代数结构和规定精度的解析近似:半可分表示以及连接系数的特征向量解释是精确的,而底层快速核求和允许误差容限
高阶到低阶的连接还不是完整变换。阶数
此处
这些连接矩阵也有显式解析结构。例如,若
则
矩阵
这种显式的差指标、和指标及对角缩放结构,使作者可以调用 Alpert–Rokhlin 的快速 Legendre–Chebyshev 转换工具。八个低阶连接矩阵的作用成本均为
合成连接中的三角形零结构也有直接的多项式解释:一个固定次数的基函数,在同类 Chebyshev 展开中不可能产生比自身更高的次数。非零区域则由上述 Gamma 比值给出,可以按其解析变化规律快速组织计算。本文没有逐阶累积大量低阶到高阶的升阶矩阵,而是一次通过
完整流程、贡献与实际限制
分析方向的步骤因而是:先用镜像节点拆分奇偶部分,再通过 DCT/DST 得到相应三角系数;应用
这里还需要区分“逆变换”和“直接取整个合成矩阵的转置”。高阶到低阶的正交连接确实可以用转置逆转,但 Chebyshev 系数和 associated Legendre 系数所对应的自然内积不同,所以原文分别构造
固定阶的总作用成本是
此外,中间低阶空间的维数主要由最大次数决定。当
数值实验使用双精度 Fortran,但目标只有约六位正确数字,测试的是单阶、单个次数奇偶块。作者的直接参考时间是
这些结果说明,在线算法确实开始呈现低于二次的逐模增长,并在大规模上取得作用优势,但计划的摊销需要很多次重复使用。它们也不能给出所有角阶在同一完整球面变换中的统一最坏误差,因为表格只选取了几个代表性的
这篇工作的价值,是用精确的微分算子结构把球谐变换接入快速正交谱作用,避免不稳定的单项式中间坐标,并为 associated Laguerre、spheroidal 等函数的推广提供共同框架。其局限也应按原文保留:正交连接矩阵本身条件良好,并不等于低阶连接、节点缩放、谱计划构造合在一起已有统一的机器精度后向稳定性保证;约六位精度的实验也不能用来证明这一更强结论。就实际使用而言,较大的作用常数与二次逐模预计算,使这一版本更适合用来理解结构和验证大规模渐近优势。[3, §6–7,pp.1926–1927]
4. Tygert(2008,II):三对角采样变换与公共网格插值
Fast algorithms for spherical harmonic expansions, II, by Mark Tygert. [4]
从跨阶连接转向本阶节点上的变换
Tygert 的第二篇工作保留了快速结构化特征向量作用这个工具,但改变了需要对角化的矩阵。2006 年的矩阵表示微分算子,特征向量给出不同角阶之间的连接系数;2008 年的矩阵来自乘法
原文把球谐展开截断到次数
由于
Step 1 从乘法
在同一个奇偶子序列内,associated Legendre 函数满足
其中起始次数
据此构造两个
使用
令
把递推式代入这些根后,最后一项因下一阶函数为零而消失,于是
根平方互异,所以对应于不同特征值的归一化特征向量正交。这样,
这是正交多项式、Gauss 求积与 Jacobi 矩阵之间经典联系在本文中的具体应用。一般读者可以这样理解:三项递推描述“乘以坐标”如何改变展开系数,Gauss 节点则恰好使截断后的最后一项消失,所以在这些特殊坐标处,整列函数值自动满足一个有限维特征向量方程。归一化以后,不需要再额外证明整张采样矩阵的复杂正交恒等式,实对称矩阵的谱定理已经提供了这一性质。本文加速的正是这个有限维特征基变换,而不是在每个节点上独立递推计算所有多项式值。[4, §2.4,pp.4267–4269]
Step 2 通过正交谱变换取得本阶节点值
原文定义对角矩阵
若
这也是全文最核心的矩阵分解。
从这一分解还可以看出计划阶段需要固定哪些信息:除了三对角矩阵的递归谱数据,还包括节点顺序、特征向量的符号以及恢复原始函数值的对角尺度。一般特征值程序返回的归一化特征向量具有任意列符号,而这里的符号已经由
为了快速应用
相应的归一化特征向量项具有
Step 3 用 Christoffel–Darboux 插值连接公共网格
仅在
这里直接使用时要求
原文的特殊节点系数与公共节点系数分别为
其中
反向则为
反向式来自公共 Gauss 求积,并非对前一个长方形插值矩阵求普通逆。两式都由预计算的左右对角因子和核
插值之所以可以这样进行,不是因为任意节点数据都满足这两条关系,而是因为输入来自指定的有限维 associated Legendre 空间。在这个空间内,正交展开先把函数写成再生核与自身的积分;适当的 Gauss 求积对该乘积精确,于是积分变成有限和;最后使用 Christoffel–Darboux 公式把含有
对球面分析而言,原始节点数据可以先理解为相应带限离散问题的数据;超出带限空间的分量需要按所选离散投影或截断规范处理。上述精确等式描述的是带限部分的转换,不意味着有限节点能够无损恢复任意连续函数。同时,公式中看似很大的 Cauchy 项与很小的边界阶函数值可能相互补偿,因此左右缩放和近场处理是数值实现的一部分,不能在证明代数恒等式之后随意重排为缺少尺度保护的浮点计算。
奇支完全类似:将最高阶
对应的双向公式见 (66)、(72)。离散正交关系还给出
Remark: 求积规范、后续勘误与两支维数
2008 年式 (35)、(36) 的右端漏掉了端点权因子,这一点已由 Tygert III 的 Remark 3.8 明确纠正。对于相应次数范围内的偶多项式
以及
其中
原文为同时叙述两支的反向插值,采用共同充分条件
Prüfer 变换与预计算
若在每个节点都从低次数递推到最高次数,根、权和插值因子的生成仍会带来二次工作。本文为此使用 Sturm–Liouville 方程的 Prüfer 变换。对
零点对应
当相位单调时,可以以
作者使用高精度显式预测—校正 ODE 积分器,生成零点、权和插值所需的边界阶函数值,并报告这些辅助预计算随
这里的相位并不承担球谐数据的快速作用,也没有把待变换函数改写成一个可直接调用 FFT 的振荡积分。它服务于计划阶段:相邻零点的相位差固定,零点搜索由此避免在整个区间反复试探;幅度方程则把权重计算与根定位一并完成。在线变换仍由前面的正交谱作用和 Cauchy 插值构成。将这两个阶段分开,有助于判断算法的实际收益来自哪里,也避免把辅助节点生成的线性成本误认成全部计划都已经线性。
完整成本与稳定性应如何评价
合成的完整流程是“系数经过
但是,实际代码仍使用逐模
若对所有角阶分别建立这种二次谱计划,将各支的
稳定性方面,数学矩阵
相较于 2006 年的方法,本文的直接三对角采样分解减少了中间换基,使较小规模上的在线变换更有竞争力,并把“快速变换”和“公共网格适配”清楚分开。代价是计划仍重、实现依赖高精度预计算,而且这种依赖多项式三项递推的构造不能直接覆盖 2006 年可处理的所有 spheroidal 情形。其贡献应归结为一个更高效的分解和在线算法,而不是已经解决了所有参数下的低成本计划与严格全流程稳定性问题。[4, Remark 4.2,p.4278]
5. Tygert(2010,III):ID 蝶形与深度优先预计算
Fast algorithms for spherical harmonic expansions, III, by Mark Tygert. [5]
一种保留原有球谐流程的替代方案
Tygert III 延续第二篇文章的球谐变换框架:经度方向由 FFT 处理,纬向先在依赖阶数的专用节点上完成正交变换,再通过快速插值连接到公共球面网格。本文替换的是其中的核心模态变换,即用 ID 蝶形代替第二篇采用的三对角谱分治。作者希望保持快速的正向及逆向作用,同时使压缩预计算更容易实现,并避免该压缩步骤为了接近机器精度而依赖扩展精度算术。[5, §1, p.6181; §5, p.6188]
另一个实际问题是矩阵元素的生成方式。关联 Legendre 函数可以在一个固定节点上按次数递推,廉价生成整条采样向量,但任意一个高次数元素未必可以被廉价地独立查询。本文因此不仅讨论如何压缩矩阵,还设计了深度优先的预计算次序,避免为保留已经计算出的元素而存储完整稠密矩阵。[5, §§1,4]
Step 1 先建立加权正交坐标
原文用
表示规范化关联 Legendre 函数,其中
对长度为
对奇支,取
对应权重为
权重的上述显式定义见原文式(26)、(27),使用这些权重的 Gauss–Jacobi 求积规则见式(29)、(30),已经包含将正负节点配对后的因子。它们随
本文加速的两个变换分别为
以上编号沿用原文。
奇支同样成立;奇函数在中心节点
Step 2 在互补尺度的子块中构造 ID
蝶形分解并不要求整个振荡矩阵具有低秩。其出发点是:当次数范围较宽时限制节点范围,当节点范围较宽时限制次数范围,相应矩形子块可能仍只有较少的有效自由度。 原文对一般
每个局部近似采用插值分解
其中
原文给出的 ID 存在性结果控制了插值系数及残差;实际使用的高效版本允许插值系数绝对值至多为
其中
Step 3 合并、切分并重新压缩,形成蝶形图
设
把两块左右拼接,再沿行索引切成上下两半:
这样得到的
然后只需把这两组
例如,上半块最终具有表示
这就是原文式(11)–(18)的合并、切分、重压缩步骤。重复进行后,最初的高窄块逐层变成矮宽块,局部矩阵的面积大体不变,各层以小插值矩阵相连。[5, §3.2, pp.6184–6185]
算法从约
若固定精度下有效秩保持较小,且
Step 4 以深度优先次序建立计划,再接入原有球谐流程
自然的广度优先建设方式会先生成并处理全部最高块,再进入下一层。如果单个矩阵元素不能被廉价重算,为避免重复生成数据,这种做法可能需要保存
已经处理完的块只保留小插值矩阵及骨架列索引,不再保留长的骨架列值;等待合并的块才需要暂存这些值。由于每次处理都将列的高度减半,同时活跃的长列数据受到控制,预计算峰值内存可降至与蝶形表示相同量级的
这一改进解决了预计算的内存问题,但没有把其时间也降到近线性。本文压缩预计算仍需
生成所需采样数据时,作者使用保持奇偶性的三项递推
其中
最初两项省略不存在的低次项。在一个固定节点上,递推生成所有相关次数的函数值,并通过追踪指数处理极小值,避免下溢。按式(35)、(36)的行列方向,这生成的是求值矩阵的一整行;可以对其转置建设蝶形分解,从而满足深度优先算法所需的廉价整列生成条件,而不影响双向作用。[5, §3.3, 式(31)–(34); §5, p.6188]
整个 SHT 仍需要第二篇的附加步骤:专用节点及权重由 Prüfer 坐标下的微分方程积分生成,专用节点与公共 Gauss–Legendre 节点之间则通过对角缩放的 Cauchy 矩阵及 FMM 插值连接。III 没有取消这些步骤,只替换其中的正交模态变换。[5, §5; 4, §3.2, 式(91)–(92)]
原文全局展开的最高次数为
理论边界与实验结果
这篇工作的证据有三个不同层次:加权节点矩阵的正交性是精确数学事实;在给定秩性质下,ID 蝶形的快速作用与存储结构有明确分析;关联 Legendre 矩阵是否对所有规模和阶数都具有足够强的统一秩性质,本文尚未证明。作者在结论中明确承认这一缺口,并将数值实验视为进一步建立理论的依据。[5, Remark 6.3, p.6191; §7, pp.6191–6192]
这里的秩性质在原文中以局部块的 Frobenius 范数近似表述,ID 则给出相应的谱范数残差控制。局部压缩可靠与全局成本足够低是两个相关但不同的问题:预计算能够根据误差要求增加秩,以保持局部近似质量;若某些块需要越来越高的秩,作用常数及增长率就会受到影响。本文的自适应建设使这类困难可在实际秩和存储量中观察到,却没有预先排除它在未测试规模出现的可能。[5, §§3.1–3.2; §7]
实验对各块自适应选秩,首层块宽取
在单核
误差测试使用单位
最后,论文所称“不需要扩展精度”应准确落在蝶形压缩及其作用上。报告实验中,生成节点和权重的 Prüfer 积分仍使用了扩展精度,以多保留约两位有效数字;递推和 ID 压缩则使用双精度。本文确实降低了核心压缩过程对高精度算术的依赖,但没有以全流程均未使用高精度的实验来证明这一点。[5, §5, p.6188; §6, p.6191]
6. Slevinsky(2019):正交连接与双 Fourier 系数变换
Fast and backward stable transforms between spherical harmonic expansions and bivariate Fourier series, by Richard Mikael Slevinsky. [2]
Slevinsky 的出发点是,球谐展开与双 Fourier 展开各自适合不同的计算任务。球谐函数对角化球面 Laplace–Beltrami 算子,便于在系数空间处理微分算子;双 Fourier 展开则容易借助 FFT 在等角网格上求值,便于计算局部非线性,也能与已有的球面函数表示相衔接。因此,文献[2]把问题表述为两种展开之间的快速基转换,首先研究连接矩阵本身的条件数与代数结构,再设计它的快速作用方法。这一表述也避免了将特定 Gauss 求积规则作为变换的组成部分。[2, §1]
两级转换与共同的正交空间
沿用原文,
这里的相位因子属于本文的符号约定:对于非负整数
其中
第一步具有一个直接影响数值稳定性的性质。若
源空间通常是目标空间的一个真子空间,所以
Step 1 用解析 Givens 旋转构造相邻阶连接
为了构造高阶到低阶的连接矩阵,作者首先解决相邻同奇偶阶数
这些连接系数并不需要通过数值积分生成。Gegenbauer 多项式的参数提升关系对应一个上三角带状矩阵,乘以
具体地,令
其中正弦和余弦都有显式公式:
连接矩阵的有限维分解于是为
这里用
Remark: 相邻阶连接所用的 Gegenbauer 恒等式与连接系数
原文的推导从下面两个恒等式出发:
转回归一化关联 Legendre 基后,原文式(10)的连接系数为
从左侧逐列作 Givens 消元时,列正交性保证已经处理过的行不会留下额外非零项,最终得到矩形恒等阵。这就是显式旋转分解的来源。上述有限截断统一以
这一精确分解也提供了可验证的稳定实现。作者分别从两个正量比值计算
不过,仅有相邻阶数的线性成本还不够。若每个阶数都逐级走到0或1,全部球谐层的作用仍需
Step 2 用蝶形压缩高阶到低阶的连接矩阵
这里压缩的是连接系数,而非关联 Legendre 函数的节点取值。原文采用的秩性质是:如果连续矩形子块所含条目数不超过
如果层数为
通常令
连接矩阵的正交性还要求对蝶形构造作一个调整。完整列彼此正交,直接对这些列进行第一次插值分解不会产生压缩;因此,作者跳过这一层,从更合适的子块开始。后续若某块几乎满秩,其插值矩阵也接近置换,此时应避免把它作为一般稠密矩阵乘法处理。这反映了一个实际原则:决定是否值得压缩的是当前子块的秩与尺寸,而不是整个变换已经被冠以快速算法的名称。[2, §3.1, §3.3]
作者对这一压缩的理论解释来自 Fourier–Bessel 表示。沿用原文该小节的局部下标,偶阶连接系数定义为
这个小节沿用原文式(14)的下标方向:第一个下标
其中
这个公式将连接算子分成关联 Legendre、Fourier 和球 Bessel 三部分。Fourier 核在有限相空间矩形中的近似秩受矩形面积控制,因此关键是证明只需考虑有限的有效波数范围。小波数处利用
Remark: Fourier–Bessel 表示的有效频带与两端尾积分
对于上述偶阶连接,原文 Theorem 3.5给出的边界为
第一个界利用
控制小波数区。第二个界先将高参数 Gegenbauer 多项式连接到适合权函数
这些界针对连接系数的积分表示。它们说明哪些波数对指定精度有贡献,并为随后讨论Fourier核的可压缩性提供依据;它们不是直接作用算法中的数值积分规则,也没有给出全部蝶形因子的浮点误差界。
上述积分是解释压缩结构的分析工具,实际算法不对每个输入计算这一双重积分。文献[2]通过这一 Fourier 积分算子分析给出整个球谐系数转换
Step 3 通过共享的非对角低秩转换得到三角系数
第一阶段之后,所有阶数只需调用两类固定的三角连接矩阵。定义原文式(19)中的函数
低阶关联 Legendre 到三角函数的系数可以由这个 Gamma 比值直接表示:
这分别是原文式(22)、(24)。反向转换也有显式系数公式,见原文式(23)、(25);余弦反向公式的零阶项及对角项需要用极限或单独的对角公式处理。计算
把较小参数移到适合渐近展开的区间,避免分别形成两个可能很大的 Gamma 值再相除。[2, Algorithm 3.8, 式(19)–(25)]
去掉可分离的行、列缩放后,余弦连接的主要核为
它远离主对角线时足够平滑,适合通常的分层非对角低秩表示:近对角块直接保存,远对角块用少量 Chebyshev 插值点近似。原文将
这里
实际实现采用 Chebyshev 重心插值。对一个有
预计算、thin plan与数值表现
完整流程可以概括为:预计算相邻阶旋转,用其生成并压缩高阶到0或1阶的连接矩阵,建立共享的低阶到三角系数变换;作用时依次执行这两级转换,需要节点值时再接 FFT 或 DCT/DST。反向计算使用第二级的反向连接以及第一级连接矩阵的转置。这里第二级的逆一般不能直接用转置替代。[2, §3]
预计算仍是本方法的重要开销。原文摘要和结论给出的总预计算量级为
这个取舍可以用一组相邻阶数来理解。单层蝶形约需
从软件组织看,高阶连接矩阵可以通过正交旋转逐层更新,再交给蝶形算法压缩,不必同时保存全部未经压缩的矩阵。第二阶段只保存所有阶数共享的两个三角连接计划。这样可以降低构造时的临时存储,然而所有已压缩层及其插值因子仍要占据大量内存。论文指出,沿用Tygert的蝶形存储组织,单层可采用
论文使用 Julia 的 FastTransforms.jl 与 LowRankApprox.jl,在2.8GHz Intel Core i7、16GB内存的机器上测试。输入球谐系数先逐列归一化,经过转换到双 Fourier 系数再转回,统计最大列2范数误差,并对三次试验平均。未压缩 Givens 方案的误差增长经验上约为
还应把误差来源分开理解。正交连接使原始变阶问题良条件,解析旋转控制了生成和直接应用这些连接的舍入误差;蝶形插值则另外引入可调的近似误差,并伴随多层矩阵乘法的舍入。原文对插值分解的稳定性援引了经验依据,没有将其全部推导为与Givens相同的全局后向稳定结论。因此,该文标题中的稳定性贡献有明确的数学核心,快速版本的整体精度则需要结合压缩容差与数值实验评价。[2, §2.1–2.2, §4–5]
实际存储也限制了渐近优势的显现:
7. Bremer–Chen–Yang(2021):转折区域分块与 IDBF
Rapid application of the spherical harmonic transform via interpolative decomposition butterfly factorization, by James Bremer, Ze Chen, and Haizhao Yang. [1]
Bremer、Chen与Yang关注的是另一项直接影响实际使用的问题:已有蝶形方法即使能够很快地作用变换矩阵,往往仍需先生成或扫描接近完整的稠密矩阵。对于每个角向阶数,这意味着二次预计算;全部球谐层合起来,预计算仍为立方量级。文献[1]的目标因此同时包括矩阵构造和单次作用。其方法依据关联 Legendre 函数的振荡、非振荡及转折结构划分矩阵,并结合按需条目评价,避免把“快速作用”建立在过于昂贵的稠密预处理上。[1, §1]
变换定义、求积结构与奇偶分解
原文的规模参数是
其中
对每个
再沿经度用 FFT 形成
设
其中
另外,
这种分解在进入压缩之前就减少了重复计算,并使转折结构能够在一个半球上清楚地表达。[1, §3.1.2, 式(26)–(29)]
Step 1 由转折曲线划分振荡区与非振荡区
对于
则由关联 Legendre 微分方程得到
当
处变号。这就是原文式(30)使用的转折点。靠近极点的一侧对应非振荡、快速衰减的行为,靠近赤道的一侧对应振荡行为。由于
区别并不只是某些条目较小。非振荡区域中的一个大块可以具有通常的低数值秩;振荡区域中的大块一般不是低秩,但在适当的长宽配对下,其子块可能具有互补低秩;穿过转折曲线的块则同时包含两种行为,不适合直接套用纯振荡区域的压缩模型。因此,本文先依据曲线划分计算对象,再对不同区域采用相应的压缩工具。上述
具体的层次分块从奇、偶 ALT 矩阵的近方形初始块开始。完全处于转折曲线一侧的块停止细分;与曲线相交的块继续作
Step 2 按需评价条目并构造插值分解
本文使用的基本工具是插值分解,简称 ID。对一个近似秩为
这里
通常对完整矩阵做秩揭示分解仍然昂贵。作者采用抽样版本:先在行方向取少量代表点,只评价这些行与全部列构成的子矩阵,再用带列主元的 QR 选出骨架列,解小型三角系统构造插值关系。代表行既可随机选取,也可取离散网格上接近 Chebyshev 点的 mock-Chebyshev 点。若精度不足,则增加用于采样和压缩的秩参数。对于
这种方法的成本优势来自“只评价需要的条目”。若先把整个
Step 3 对三类矩阵块采用相应的快速方法
振荡块采用 IDBF。 对一个
IDBF对这些子块实施行、列插值分解,将
中间的
非振荡块采用抽样低秩分解。 在这一侧,函数远离转折点后快速衰减。作者先缩小块的有效范围,排除机器精度以下的可忽略部分;完全可忽略的块不再保留。对剩余部分,Algorithm 1通过少量行、列抽样构造一个近似 SVD。[1, §2.3, §3.3]
它首先在抽到的行、列上作带主元 QR,选出代表列和代表行,再对相应的完整列、完整行正交化,得到
对
采样数量通常略大于最终保留秩,使选中的行、列更可能覆盖主要数值子空间。原文用过采样参数
转折附近的小块直接作用。 与转折曲线相交的块经过反复细分后已经足够小,作者对它们保存所需条目并直接做矩阵向量乘法,同时也裁掉可忽略的部分。它们只占转折曲线附近的窄区域,并不意味着算法在高阶情形退回整个稠密 ALT。按原文式(33),这些块的总工作与存储有
特殊函数条目评价为何是预计算复杂度的前提
上述压缩算法不断要求评价一些不连续的、由抽样和骨架选择决定的
为此,文献[1]明确依赖 Bremer 此前提出的关联 Legendre 数值评价算法,提供运行时间不随 degree、order 增长的条目评价接口。这个接口与 IDBF 的抽样构造相配合,才使得“需要多少条目”能够转化为“花费多少构造工作”的近线性计数。本文并未自行重新推导这一特殊函数算法;综述其成本时,应将这种按需
这一点也说明,与已有矩阵压缩方法的区别不仅在最终保存了多少个因子。构造阶段能否快速取得选中的条目,会直接决定预计算是否仍然需要二次甚至更高的工作。本文把层次分块、IDBF和特殊函数求值接口一起设计,才避免了先完整生成每个 ALT 的步骤。[1, §1, §3]
建立计划时,每个固定阶数所需的工作依次是确定奇偶列、生成转折分区、裁剪可忽略区域,并为各类块保存相应因子或直接条目。输入系数到来之后,这些几何判断和矩阵分解都不再重复:只需提取对应子向量,应用块因子并累加结果,再恢复另半球和完成经向FFT。反向作用沿同一块划分作转置累加,并接入求积权重。计划与输入无关,因此重复变换可以摊销构造成本;本文的复杂度分析进一步要求,即使把首次构造算进去,也保持接近线性的固定阶成本。[1, §3–4]
成本的已知部分与秩增长猜想
原文用
非振荡块的分解更便宜,转折叶块也不改变这个主导项。因此,Theorem 4.1给出固定精度下,一个奇或偶 ALT 的时间、存储复杂度均为
其中时间包括分解构造和单次作用,而不是只包括已有计划之后的乘法。[1, §4, Theorem 4.1]
尚未闭合的是
数值证据与稳定性的实际含义
论文的 MATLAB 代码在单个3.2GHz CPU核上运行,测试规模为
其误差定义也需要与上述设置一起理解。前向测试在非零区域随机取256个输出坐标,比较快速结果
反向测试类似地抽取256个系数坐标。图9中非零阶数的误差大致处于
图10将构造和作用时间与
这篇工作的贡献在于把转折几何纳入压缩结构,并使矩阵条目生成、计划构造与单次作用的复杂度相互一致。它展示了直接节点变换如何同时降低 setup 和 apply 的可能性,也清楚地留下了进一步研究的重点:证明随阶数和规模变化的块秩界,改进代表点选择及低秩分解,并把局部近似容差与完整变换的误差联系起来。[1, §6]
两条路线的对比
六篇工作可以用两个计算流程来概括。节点值路线完成
系数连接路线完成
节点值路线直接贴近“给定球谐系数,在求积网格上求值;给定这些值,求回球谐系数”的需求。在 Gauss–Legendre 网格上,分析公式由求积正交性直接给出,数据和球面积分也自然匹配。代价是某些中间节点会随
系数连接路线把“如何表示函数”和“在哪些点求值”分成两个阶段。当后续工作本来就需要三角系数,或希望在等角网格上反复使用 FFT 时,这种中间表示很有价值;转换得到的 Fourier 系数自身也是可复用的数据。它同时需要承担高阶到低阶连接、低阶到三角系数连接两层工作。球面函数的极点正则性和奇偶约束也会限制所得 Fourier 系数,并非任意一个双变量 Fourier 系数数组都对应同一带限下的光滑球谐展开。[3, §3–5;2, §1、§3]
因此,“需要节点值”与“需要 Fourier 系数”是选择路线时比“是否使用蝶形”更靠前的问题。两条路线都能最终求值;这里比较的是哪一种中间表示最符合后续计算,而不是宣称某一种表示只能用于某一类网格。
其次,相同工具在不同路线中承担不同任务:
- 特征向量方法的区别。 Rokhlin–Tygert 对角化的是写在低阶基底中的 Sturm–Liouville 算子。其特征向量回答“高阶基函数如何在低阶基底中展开”。Tygert II 对角化的是同奇偶基底中的
乘法算子。其特征向量回答“基函数在相应求积节点上取什么值”。前者输出连接系数,后者输出加权采样值;这也是 [3] 与 [4] 最重要的结构区别。 - FMM 的区别。 Suda–Takami 的 FMM 加速分裂分量的 Lagrange 插值;Tygert II 的 FMM 既服务于快速特征向量算法中的 Cauchy 型乘法,又服务于 Christoffel–Darboux 插值;Rokhlin–Tygert 的低阶到三角连接也利用可快速作用的结构化核。FMM 在这里主要解决的是“如何快速求和”,它本身不自动证明外层递推、节点选择或整个变换的稳定性。[6, §2.2;4, §2.1–2.2、§3.2;3, §2.3–2.4]
- 蝶形分解的区别。 Tygert III 压缩加权节点采样矩阵;Slevinsky 压缩跨阶正交连接矩阵;Bremer–Chen–Yang 只对自适应分块之后的振荡区域使用 IDBF,另外两类区域采用其他处理。三者的低秩结构发生在不同的矩阵中,不能把一篇论文对其矩阵的理论解释直接移植成另一篇的统一秩定理。[5, §3–5;2, §3.1;1, §3.2–4]
这也解释了一个容易造成困惑的现象:Slevinsky 给出了 Fourier 积分算子与截断频带的理论分析,Bremer–Chen–Yang 仍明确保留秩增长猜想。二者不构成直接矛盾。除了矩阵不同,还需要分别检查所证明的频带结论、互补分块方式、对所有阶数的统一性,以及由局部近似误差得到整个压缩算子误差的步骤。[2, Theorem 3.5、Remark 3.6;1, §4]
另外,复杂度需要把预计算与作用分开。下表用
| 文献 | 预计算的关键结论 | 计划建立后的作用复杂度 | 应当保留的条件 |
|---|---|---|---|
| Suda–Takami [6] | 论文给出全部阶数 |
固定插值精度下 |
复杂度分析不等于完整递归误差界;实际稳定选点是贪心近似 |
| Rokhlin–Tygert [3] | 实现为每阶二次、合计 |
利用结构化特征向量与低阶连接算法;实验目标约六位精度 | |
| Tygert II [4] | 理论快速谱预计算与实际实现分开;实际每阶 |
固定精度参数下 |
特征向量误差与谱间隔有关;实际计划采用四倍精度 |
| Tygert III [5] | 每个奇偶模态压缩仍为 |
条件性近于 |
单个 |
| Slevinsky [2] | 总预计算仍为 |
作者给出 |
理论解释来自 FIO 与分层压缩;不应额外附加原文没有证明的统一全局误差结论 |
| Bremer–Chen–Yang [1] | 预计算、作用、存储一起获得秩相关上界 | 全阶为 |
必须有固定精度的 |
对于最后一行,
这个表格说明,早期几篇工作的主要成果已经是快速作用,而 Bremer–Chen–Yang 特别推进了快速建立变换。Slevinsky 的重点则是可解释、可准确生成的系数连接和到 Fourier 表示的完整链条。只按作用复杂度中对数的次数排序,会忽略实际应用中很重要的预计算时间、内存以及目标精度。
对于数值稳定性而言,精确算子的正交性只是起点。如果高阶与低阶基底在同一个
Remark: 为什么每一块误差小,不直接等于整个变换误差小?
设一个变换表示为
由此可见,误差不仅取决于
同样,节点值与加权节点值之间还隔着
各篇的证据层次可以更具体地归纳如下。
| 文献 | 可直接依赖的稳定性结构 | 不宜扩大解释的地方 |
|---|---|---|
| [6] | 顺稳定方向使用递推;最大体积选点提供插值系数控制的存在性依据 | 实际 max-min 贪心不保证全局最大体积;原文没有完整算法的解析误差界 |
| [3] | 同一内积下的正交连接;快速结构化谱算法 | 六位左右精度的实验不能当作双精度机器精度验证 |
| [4] | 对称三对角谱分解;加权采样的正交性;求积与 CD 恒等式 | 谱间隔和容差进入误差分析;实验的四倍精度预处理不能省略 |
| [5] | 精确加权矩阵正交;一个压缩图可转置用于反向计算 | ID 压缩与完整流程的误差主要由数值实验支持,前向误差不能代替往返误差 |
| [2] | 相邻阶解析 Givens 旋转及其生成算法具有明确的后向稳定分析 | 该结论不能原封不动地覆盖全部蝶形近似、三角连接和最后 FFT |
| [1] | 精确离散正交性 |
抽样输出误差、局部容差和秩猜想不构成完整 SHT 的统一后向稳定定理 |
这里对结论范围的限制并不否定这些算法的数值价值,而是为了准确区分六篇论文中的精确数学性质、快速近似步骤和实验验证结果。
需要注意的是,六篇论文的实验跨越二十年,硬件、编程语言、精度要求、对照实现和测试对象都不同。Suda–Takami 把少量阶数的测试按比例汇总来估计整体纬向工作;Rokhlin–Tygert 使用稠密矩阵乘法的代理基准;Tygert II/III 主要测试单个奇偶模态;Slevinsky 测试球谐系数与 Fourier 系数的往返;Bremer–Chen–Yang 的主要图也是固定阶数 ALT,并在随机抽取的坐标上计算相对误差。它们并不是在共同平台上对同一份全球数据做同一精度的测试。[6, §2.6;3, §6;4, §4;5, §6;2, §4;1, §5]
从这些实验可以提取“某个结构能否在大规模下起作用”“预计算是否成为瓶颈”“秩随规模是否增长缓慢”等证据,但不能据此得出某篇算法在今天的所有设置中最快。尤其需要避免把相对均方根误差、归一化输入的最大分量误差、系数往返二范数误差和抽样相对误差放在同一列中直接比较数字大小。
如果要重新比较,至少应固定同一带限、同一采样或输出表示、同一误差门槛和同一精度环境,分别测量计划时间、单次合成、单次分析、峰值内存及多次执行后的总时间。这样的比较是由现有论文揭示的必要评估口径,不是这些论文已经完成的共同实验。
预计算耗时是整个算法不能忽视的一部分,应用次数决定昂贵预计算能否被摊薄。设建立计划的时间为
如果
上式假设直接法没有另计的准备成本;若两种方法都需要准备,应把分子换成两者准备时间之差,并按同一计时范围比较。这个简单关系说明了为何“长期固定带限反复使用”和“每次改变带限或阶数”会给出不同的选择。前一种情况容许花较长时间建立一个紧凑而快速的计划;后一种情况对计划成本敏感,Bremer–Chen–Yang 同时加速构造与作用的设计就更值得关注。还需要考虑内存:一个理论上能摊薄时间的计划,如果大到触发换页,实际作用时间也会改变。Slevinsky 的大规模实验明确展示了这种影响。[2, §4]
总的来说,这两条路线各有优劣:
- 节点值路线的长处是与求积和物理网格衔接直接。 在公共 Gauss 网格上,合成、带权转置和球面积分之间的关系清楚;它也允许直接利用关联 Legendre 函数在物理空间中的递推、衰减区和振荡区。Suda–Takami 的分裂插值和 Bremer–Chen–Yang 的转折分块,都是沿着这种函数值结构开展的。其困难是不同阶数的行为不均匀,端点附近有很大的尺度变化,转折区域和专用节点插值都需要专门处理。Tygert II/III 还说明,得到一个漂亮的正交采样矩阵,并不自动解决节点生成、权重生成和低成本压缩计划的问题。
- 系数连接路线的长处是把正交基之间的代数关系显式利用起来。 同一个函数在两个正交基中的系数变化具有清楚的范数解释,Slevinsky 的相邻阶旋转更使这种关系成为可准确生成的局部操作。低阶到三角基底的转换又有共享的 Gamma 比值核,可以跨多个
复用。其困难是高阶到公共低阶的连接仍然是大规模工作,直接串接旋转会回到三次复杂度;即使用蝶形加速,生成和保存许多连接也可能代价很大。此外,低阶关联 Legendre 基与正余弦基对应的自然积分权不同,最后这一步不能仅靠“正交连接取转置”一语带过。 - 从这六篇论文中得不到一条在所有指标上占优的路线。 若终点就是 Gauss 网格上的分析与合成,节点值路线与该数据接口衔接直接,值得优先评估,实际速度仍取决于具体实现;若 Fourier 系数本身有后续用途,系数连接路线的中间产物便有独立价值。若带限经常改变,计划复杂度更重要;若同一计划执行很多次,则作用时间和存储更重要;若需要严格追踪舍入误差,解析正交因子提供了很有价值的起点,但仍应把后续压缩误差单独纳入分析。这些判断来自计算流程本身,不依赖跨年代性能数字的直接拼接。
共同技术特征与主要贡献
这组六篇论文并不是沿着一条直线不断替换旧算法。它们反复表明,一个快速变换的构造通常需要同时解决三个层次的问题。
第一层是选择保留结构的表示。 把高次数函数拆成两支低相对次数分量、把微分算子写入低阶基底、把乘法算子写成三对角矩阵、或者把相邻阶连接写成平面旋转,都在减少“无结构的稠密矩阵”这一表面描述带来的困难。真正的进展往往发生在压缩之前。
第二层是找到合适的快速作用形式。 对 Cauchy 核使用 FMM,对准确的半可分结构使用快速谱算法,对互补尺度上的近似低秩使用蝶形,对远离对角线的光滑核使用分层低秩。不同结构需要不同的压缩组织方式;矩阵整体低秩、普通非对角低秩和互补低秩并不是同一个概念。
第三层是让表示和压缩本身可以低成本、稳定地建立。 这包括稳定递推方向、节点和权重生成、Givens 参数的准确计算、深度优先的内存调度、只保存部分连接的 thin plan,以及可以随机访问的特殊函数条目评价。忽略这一层,会得到一个每次作用很快、却难以实际使用的算法。
因此,这些工作的核心贡献可以分别概括为:Suda–Takami 建立了稳定分裂递推与快速插值的分治方法;Rokhlin–Tygert 把跨阶连接识别为结构化谱问题;Tygert II 把本阶节点采样与三对角特征向量联系起来;Tygert III 用蝶形与内存调度改善这一采样框架;Slevinsky 从解析正交连接出发构造到 Fourier 表示的完整快速链条;Bremer–Chen–Yang 利用区域结构和随机条目访问进一步处理预计算瓶颈。
综合来看,六篇论文分别利用了递推分裂、算子谱结构、正交连接、快速插值和蝶形压缩等工具,但其预计算成本、作用复杂度与稳定性依据并不相同。这些结论仅对应各篇所研究的球谐或关联 Legendre 变换,不能在缺少额外分析的情况下视为其他函数族或其他变换的定理。
Remark: 阅读与公式核对说明
本文以所附六篇期刊 PDF 为依据。参考文献中的原文节号、公式号和定理号用于区分“作者明确证明”“在结构或秩假设下成立”“实验观察”和“本文根据流程作出的比较”。没有把某篇论文的单阶实验时间扩展为实际测得的完整 SHT 时间,也没有将局部稳定性推广为整个近似程序的统一后向稳定性。
数学整理中特别保留了以下更正:Tygert II 的求积公式按 Tygert III Remark 3.8 补回权函数;Slevinsky 的有限 Givens 乘积用列数
文稿还对相邻阶旋转连接、半可分生成元、三对角特征向量与采样值关系、正反 CD 插值,以及低阶到正余弦的显式公式做了独立的小规模数值核对。这些检查用于排除符号、归一化、转置和系数抄写错误,不构成对六个完整快速算法的重新实现,也不替代原论文的理论证明。
- Title: Spherical harmonic transform
- Author: Gypsophila
- Created at : 2026-10-17 15:40:32
- Updated at : 2026-11-04 15:02:11
- Link: https://chenx.space/2026/10/17/SphericalHarmonic/
- License: This work is licensed under CC BY-NC-SA 4.0.