蒙特卡洛集成中的意外输出

时间:2015-02-17 22:55:37

标签: python python-2.7

第一次发帖,请原谅我,如果我不是那么简洁。所以我试图为蒙特卡罗集成做算法,我已经得到了下面的代码。但是,当我使用main中指定的参数运行它时,我得到0作为输出。我很确定它与Python处理花车的方式有关,但我不知道还有什么地方可以看。任何帮助总是受到赞赏。我知道当我看到自己的错误时,我会踢自己。

还有一件事,我正在使用Python 2.7。

montecarloint.py

from random import uniform
from math import exp

def estimate_area(f, a, b, m, n=1000):
    hits = 0
    total = m * (b-a)
    for i in range(n):
        x = uniform(a, b)
        y = uniform(0, m)
        if y <= f(x):
            hits += 1

frac = hits / n
return (frac * total)


def f(x):
    return exp(-x ** 2)

def main():
    print (estimate_area(f, 0, 2, 1))

main()

0 个答案:

没有答案