2014-10-22 8 views
-1

나는 함수 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) 
+0

어떤 오류가 발생합니까? 코드에 아무 문제가 없지만 잘못된 대답을 얻는다면 중간 값을 인쇄하여 오류가 논리에 있는지 확인하십시오. –

답변

2

기능을 확인하십시오 : 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