The first argument must be a callable, so just wrap it in a lambda
itself:
import numpy as np
from scipy import integrate
def copula_entropy(theta):
c = lambda v, u: ((1+theta)*(u*v)**(-1-theta)) * (u**(-theta)+v**(-theta)-1)**(-1/theta-2)
return -integrate.dblquad(lambda u,v: c(v,u)*np.log(c(v,u)), 0, 1, lambda u: 0, lambda u: 1)[0]
(Please note that I also changed the expression for c
according to the formula you gave).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…