考虑以下函数,该函数生成大小为n的积分的k Monte Carlo估计:
def MCExponencial(k, n):
sample=[] values=[] estimative=[] for j in range(k): sample = [geradorExponencial(L, e1, e2) for i in range(n)] values=[(math.exp(-L*e1) - math.exp(-L*e2)) * f(sample[i], a1, a2, a3, b1, b2, b3, c)/func_exponencial(sample[i], L) for i in range(n)] estimative.append(mean(values)) return mean(estimativa), estimative
在我的节目里,我喜欢
n=10
mean, estimative = MCExponencial(100, n)
while p < 1/math.sqrt(100) * standardDeviation(estimative, mean):
n = n+10 mean, estimative = MCExponencial(100, n)
但我得到以下错误:
回溯(最近一次呼叫): 文件“C:\Users\MM\Desktop\Python\蒙地卡罗.py“,第110行,in 平均值,估计值=指数(100,n) 文件“C:\Users\MM\Desktop\Python\蒙地卡罗.py“,第60行,MCExponencial” 估计.append(平均值) TypeError:“float”对象不可调用
我不知道我做错了什么。你知道吗
Ps:错误发生在“while”迭代中。你知道吗
提前谢谢!你知道吗
您重新使用名称
mean
作为计算结果,替换了同样需要的mean
函数。将其中一个命名为其他名称,或者将第二个代码段移到函数中,使其mean
不会隐藏全局名称,或者执行其他操作来解决名称冲突。你知道吗相关问题 更多 >
编程相关推荐