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