簡體   English   中英

Python中的梯形和辛普森規則?

[英]Trapezoid and Simpson rule in Python?

我必須在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)

查看您的函數: 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM