帮我用python写出用复合Simpson公式求某一函数从0到1的积分。精确到0.000005
时间: 2024-03-07 15:49:18 浏览: 108
好的,我可以帮你写出使用复合辛普森公式计算某一函数从0到1的积分,并且精确到0.000005的Python代码。以下是代码示例:
```python
import math
def f(x):
# 定义被积函数
return math.sin(x)
def simpson(a, b, n):
# 复合辛普森公式
h = (b - a) / n
x = [a + i * h for i in range(n + 1)]
sum1 = sum2 = 0
for i in range(1, n, 2):
sum1 += f(x[i])
for i in range(2, n, 2):
sum2 += f(x[i])
integral = (f(a) + 4 * sum1 + 2 * sum2 + f(b)) * h / 3
return integral
def adaptive_simpson(a, b, eps):
# 自适应辛普森公式
n = 4
integral1 = simpson(a, b, n)
integral2 = simpson(a, b, n * 2)
while abs(integral2 - integral1) > eps:
n *= 2
integral1 = integral2
integral2 = simpson(a, b, n * 2)
return integral2
# 计算 sin(x) 在 [0, 1] 区间上的积分
integral = adaptive_simpson(0, 1, 0.000005)
print(integral)
```
在这段代码中,我们定义了一个被积函数 `f(x)`,它的值为 `math.sin(x)`。然后,我们使用复合辛普森公式计算积分,并将其封装在函数 `simpson(a, b, n)` 中。最后,我们使用自适应辛普森公式来逼近积分值,直到满足精度要求。在本例中,我们设置精度为0.000005。最终,我们输出计算得到的积分值。
希望这段代码能够帮助到你!
阅读全文