gpt4 book ai didi

python - 球谐展开式的数值计算

转载 作者:太空宇宙 更新时间:2023-11-04 05:24:34 32 4
gpt4 key购买 nike

我试图了解球谐函数展开式以解决更复杂的问题,但我期望通过非常简单的计算得出的结果并不正确。我不知道为什么会这样。


一些理论:众所周知,球体表面的函数 (\mathbb{R}^{3}) 可以定义为一些常数系数的无限和 。和球谐函数 :

球谐函数定义为:

哪里 是相关的勒让德多项式。

最后,常数系数 可以计算如下(类似于傅立叶变换):


问题: 假设我们有一个以 为中心的球体其中曲面上的函数等于 对于所有点 .我们要计算常数系数,然后通过近似计算回表面函数。自 常数系数的计算减少到:

在数值上(在 Python 中)可以使用以下方法进行近似:

def Ylm(l,m,theta,phi):
return scipy.special.sph_harm(m,l,theta,phi)

def flm(l,m):
phi, theta = np.mgrid[0:pi:101j, 0:2*pi:101j]
return Ylm(l,m,theta,phi).sum()

然后,通过在 上计算带限和我期待看到 什么时候 对于任何给定点 .

L = 20
f = 0
theta0, phi0 = 0.0, 0.0
for l in xrange(0,L+1):
for m in xrange(-l,l+1):
f += flm(l,m)*Ylm(l,m,theta0,phi0)
print f

但对于 它给了我而不是 .对于 它给了我

我知道这似乎更像是一道数学题,但公式应该是正确的。问题似乎出在我的计算上。这可能是一个非常愚蠢的错误,但我无法发现它。有什么建议吗?

谢谢

最佳答案

球谐函数与内积正交

<f|g> = Integral( f(theta,phi)*g(theta,phi)*sin(theta)*dphi*dtheta)

所以你应该计算系数

  clm = Integral( Ylm( theta, phi) * sin(theta)*dphi*dtheta)

关于python - 球谐展开式的数值计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39249594/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com