【问题标题】:Monte Carlo Simulation - float' object is not callable蒙特卡洛模拟 - 浮动'对象不可调用
【发布时间】:2014-05-07 19:48:24
【问题描述】:

考虑以下函数,它为大小为 n 的积分生成 k 个 Monte Carlo 估计:

定义 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

平均,估计 = MCExponencial(100, n)

当 p

    n = n+10
    mean, estimative = MCExponencial(100, n)

但我收到以下错误:

Traceback(最近一次调用最后一次): 文件“C:\Users\MM\Desktop\Python\MonteCarlo.py”,第 110 行,在 平均,估计 = MCExponencial(100, n) MCExponencial 中的文件“C:\Users\MM\Desktop\Python\MonteCarlo.py”,第 60 行 estimative.append(平均值(值)) TypeError: 'float' 对象不可调用

我不知道我做错了什么。

Ps:错误发生在'while'迭代。

提前致谢!

【问题讨论】:

    标签: python error-handling montecarlo


    【解决方案1】:

    您将名称 mean 重新用于计算结果,替换了您还需要的 mean 函数。将其中之一命名为其他名称,或将第二个代码 sn-p 移动到函数中,以便其 mean 不会隐藏全局,或执行其他操作来解决名称冲突。

    【讨论】:

    • 谢谢。确实这就是问题所在:)
    猜你喜欢
    • 2021-01-06
    • 1970-01-01
    • 2018-09-24
    • 2018-04-03
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    相关资源
    最近更新 更多