0
为什么scipy中的hyp2f1会给出1?然而,应当scipy中的2F1函数的奇怪值
这里是我的代码
import numpy as np
from scipy import special
x = np.arange(0,2,0.01)
y = special.hyp2f1(-1/2, 1/2, 2, -400/(1-8/9*np.cos(x)**2))
为什么scipy中的hyp2f1会给出1?然而,应当scipy中的2F1函数的奇怪值
这里是我的代码
import numpy as np
from scipy import special
x = np.arange(0,2,0.01)
y = special.hyp2f1(-1/2, 1/2, 2, -400/(1-8/9*np.cos(x)**2))
好像你正在使用Python 2了点。问题是Python 2中的除法运算符:用整数除整数给出整数。例如,1/2
是0
。如果一个操作数是浮点结果是你所期望的:float(1)/2 == 1./2 == 0.5
以下将如预期:
from __future__ import division
import numpy as np
from scipy import special
x = np.arange(0,2,0.01)
y = special.hyp2f1(-1/2, 1/2, 2, -400/(1-8/9*np.cos(x)**2))
另外,转换参数浮动(例如,使用.
符号):
y = special.hyp2f1(-1./2, 1./2, 2., -400/(1-8/9.*np.cos(x)**2))