Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 球谐虚部_Python_Scipy - Fatal编程技术网

Python 球谐虚部

Python 球谐虚部,python,scipy,Python,Scipy,在scipy()的文档中,它明确指出scipy.special.sph_harm返回一个复杂的浮点。由链接中显示的表达式给出。然而,当尝试插入一些值时,我总是只得到预期值的一个可忽略的值 如果你计算链接中的数学表达式,我认为真实值(即非想象值)更接近预期的绝对值: sph_harm有什么问题吗?还是我用错了 我使用的是scipy v0.15.1奇怪。我刚刚尝试了一系列我手边的scipy版本(0.11.0、0.16.0和github的最新开发版本),并且在所有情况下sph_harm(2,5,2.

在scipy()的文档中,它明确指出scipy.special.sph_harm返回一个复杂的浮点。由链接中显示的表达式给出。然而,当尝试插入一些值时,我总是只得到预期值的一个可忽略的值

如果你计算链接中的数学表达式,我认为真实值(即非想象值)更接近预期的绝对值:

sph_harm有什么问题吗?还是我用错了


我使用的是scipy v0.15.1

奇怪。我刚刚尝试了一系列我手边的scipy版本(0.11.0、0.16.0和github的最新开发版本),并且在所有情况下
sph_harm(2,5,2.1,0.4)
都会在
(-0.17931012976432356-0.3187392205957022j)的几个ULP范围内返回一些东西。我目前使用的是python版本python 3.4.3 | Anaconda 2.3.0(64位)|。这会有所不同吗?我刚刚将我的anaconda安装降级为使用scipy 0.15.1(和numpy 1.9.3),我仍然从
sph_harm(2,5,2.1,0.4)
中得到正确答案。如果从scipy import special运行
;special.test()
,所有测试都通过了吗?在Anaconda 2.3.0、python 2.7.10、scipy 0.16.0中进行了测试,结果似乎是正确的。请参见奇怪。我刚刚尝试了一系列我手边的scipy版本(0.11.0、0.16.0和github的最新开发版本),并且在所有情况下
sph_harm(2,5,2.1,0.4)
都会在
(-0.17931012976432356-0.3187392205957022j)的几个ULP范围内返回一些东西。我目前使用的是python版本python 3.4.3 | Anaconda 2.3.0(64位)|。这会有所不同吗?我刚刚将我的anaconda安装降级为使用scipy 0.15.1(和numpy 1.9.3),我仍然从
sph_harm(2,5,2.1,0.4)
中得到正确答案。如果从scipy import special运行
;special.test()
,所有测试都通过了吗?在Anaconda 2.3.0、python 2.7.10和scipy 0.16.0中进行了测试,结果似乎是正确的。请参阅
from scipy.special import sph_harm,lpmv
m=2;n=5;th=2.1;ph=0.4
print(sph_harm(m,n,th,ph))
#returns (0.36574435883734352+2.5429495084534193e-310j) (essentially no imag.part

def norm(m,n): #sqrt part
  return np.sqrt((2*n+1)/(4*np.pi) * \
    np.math.factorial(n-m)/np.math.factorial(n+m))
def ie(m,theta): #imaginary exponential part
  return np.exp(1j*m*theta)
out=norm(m,n)*ie(m,th)*lpmv(m,n,np.cos(ph)) #lpmv=legendre
print(out,abs(out))
#returns (-0.179310129764-0.31877392206j) 0.365744358837