我试着用scipy.optimize.fsolve()来求解使函数等于零的x,但继续得到上述误差。我的代码是:
import scipy.optimize as optimize
from scipy.stats import genextreme as gev
gevcombined = [(-0.139, 3.035, 0.871),(-0.0863, 3.103, 0.818),(-0.198, 3.13, 0.982)]
ratio = [0.225, 0.139, 0.294]
P = [0.5,0.8,0.9,0.96,0.98,0.99]
def mixedpop(x):
for j in range(len(ratio)):
F = (ratio[j]*gev.cdf(x,gevcombined[j][0],gevcombined[j][1],gevcombined[j][2]))+((1-ratio[j]*gev.cdf(x,gevcombined[j][0],gevcombined[j][1],gevcombined[j][2]))-P
return F
initial = 10
Rm = optimize.fsolve(mixedpop,initial)
我一直收到错误:
^{pr2}$这个错误是什么意思?预期输出将是每个P值的一个值,因此Rm的x值将等于每个比率的[3.5,4,5.4,6.3,7.2,8.1]
好吧,我知道了如何让fsolve为一系列解决方案工作。在
如果我把整件事都写成这样就行了:
我的输出是:
^{pr2}$相关问题 更多 >
编程相关推荐