【问题标题】:Trapezoid and Simpson rule in Python?Python 中的梯形和辛普森规则?
【发布时间】:2014-12-17 11:31:42
【问题描述】:

我必须在python中为函数e^((-x)^2)编写梯形和辛普森规则。

这是我到目前为止所得到的。它给出的答案是8218.7167913,但我老师的答案是1.77251356....

我哪里做错了?

from numpy import *

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

def trapezoid(f, a, b, n):
    deltax = float(b - a)/(n)
    h = float(b - a) / n
    s = 0.0
    s += f(a)/2.0
    for i in range(1, n):
        s += f(a + i*h)
    s += f(b)/2.0
    return s * h

print trapezoid(f, -3, 3, 6)

【问题讨论】:

  • 您遇到了什么错误?如果您的代码没有任何问题,但您得到了错误的答案,请尝试打印一些中间值以查看错误在您的逻辑中的位置。

标签: python integration calculus


【解决方案1】:

看看你的函数:e^((-x)^2)。负号没有做任何事情,因为您立即将其平方。这似乎很奇怪。更有可能的是您应该集成e^(-x^2)。让我们测试一下:

>>> trapezoid(lambda x: e**((-x)**2), -3, 3, 1000)
2889.3819494560144
>>> trapezoid(lambda x: e**(-x**2), -3, 3, 1000)
1.7724146920763713

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-05
    • 2016-02-16
    • 2015-12-15
    • 2020-01-19
    • 2014-01-06
    • 1970-01-01
    • 2021-04-19
    • 2012-10-19
    相关资源
    最近更新 更多