jax.scipy.special.sph_harm#
- jax.scipy.special.sph_harm(m, n, theta, phi, n_max=None)[source]#
计算球谐函数。
注意
此函数已弃用,应改用
sph_harm_y()
,同时请注意m
和n
的顺序颠倒,以及theta
和phi
的定义互换。JAX 版本多了一个参数 n_max,即 n 中的最大值。
阶数为 m、次数为 n 的球谐函数可以写成 \(Y_n^m(\theta, \phi) = N_n^m * P_n^m(\cos \phi) * \exp(i m \theta)\),其中 \(N_n^m = \sqrt{\frac{\left(2n+1\right) \left(n-m\right)!} {4 \pi \left(n+m\right)!}}\) 是归一化因子,\(\phi\) 和 \(\theta\) 分别是余纬度和经度。\(N_n^m\) 的选择方式使得球谐函数构成 \(L^2(S^2)\) 的一组正交基函数。
- 参数:
m (数组) – 谐波的阶数;必须满足 |m| <= n。对于 |m| > n 的返回值是未定义的。
n (数组) – 谐波的次数;必须满足 n >= 0。球谐函数描述中次数的标准表示是 l(小写 L)。这里我们使用 n 是为了与 scipy.special.sph_harm 保持一致。对于 n < 0 的返回值是未定义的。
theta (数组) – 方位(经度)坐标;必须在 [0, 2*pi] 范围内。
phi (数组) – 极地(余纬度)坐标;必须在 [0, pi] 范围内。
n_max (int | None) – 最大次数 max(n)。如果提供的 n_max 不是 n 的真实最大值,结果将被截断到 n_max。例如,sph_harm(m=jnp.array([2]), n=jnp.array([10]), theta, phi, n_max=6) 实际上返回的是 sph_harm(m=jnp.array([2]), n=jnp.array([6]), theta, phi, n_max=6)
- 返回:
包含 (m, n, theta, phi) 处球谐函数的一维数组。
- 返回类型: