我是python的新手,我试图使用pymc参数作为集成限制:( x是一个数组,已经在之前定义过):
import pymc
from scipy import integrate
omega=pymc.Uniform('omega_m',0,1)
a=pymc.Uniform('a',0.01,0.1)
b=pymc.Uniform('b',0.001,0.01)
@pymc.deterministic
def tau1(a=a,b=b):
sigma=a + b*x
tau2=1/(sigma**2)
return tau2
xp=pymc.Normal("xpo",mu=x,tau=tau1)
@pymc.deterministic
def mu(omega=omega,xp=xp):
r,s=integrate.quad(lambda y:(1+omega*((1+y)**float(3)-1))**float(-0.5),0,xp)
return r*(1+xp)
尝试执行此操作时出现以下错误:
ValueError: The truth value of an array with more than one element is ambiguous.
我知道我收到此错误,因为集成的上限是数组而不是值。有没有办法使用参数(xp)作为限制?