0
我需要編寫一個python代碼來計算1 /(1 + x^2)的積分(-5,5)的精確值。我知道答案是2arctan(5)這大致相當於2.746801 ...在Python中計算精確積分
我已經寫了下面的代碼,但是我得到一個稍微不同的答案,我想知道如果有什麼我可以爲了讓這段代碼更加準確嗎?謝謝你的幫助!
## The function to be integrated
def func(x):
return 1/(1 + x**2)
## Defining variables
a = -5.0
b = 5.0
dx = 1.0
Area = 0
## Number of trapezoids
n = int((b-a)/dx)
## Loop to calculate area and sum
for i in range(1, n+1):
x0 = a + (i-1)*dx
x1 = a + i*dx
## Area of each trapezoid
Ai = dx*(func(x0) + func(x1))/2.0
## Cumulative sum of areas
Area = Area + Ai
print("The exact value is: ", Area)
我得到的答案是2.756108 ... 我知道這是一個小的差異,但是,它是有區別的,我想更準確的嘗試的東西。
不應該在代碼審查? – 2014-10-19 18:58:43
[浮點數學是否被破壞?](http://stackoverflow.com/questions/588004/is-floating-point-math-broken) – Pokechu22 2014-10-19 19:01:04
提示:「dx」扮演什麼角色? – DSM 2014-10-19 19:02:31