定积分的近似计算的python实现
时间: 2023-06-19 10:08:09 浏览: 136
可以使用数值积分方法来近似计算定积分,其中比较常用的方法有梯形法和辛普森法。下面是两种方法的 Python 实现:
1. 梯形法:
```python
def trapezoidal(f, a, b, n):
"""用梯形法求解定积分"""
h = (b - a) / n
s = 0.5 * (f(a) + f(b))
for i in range(1, n):
s += f(a + i * h)
return h * s
```
其中,`f` 是被积函数,`a` 和 `b` 是积分区间的端点,`n` 是分割区间数。
2. 辛普森法:
```python
def simpson(f, a, b, n):
"""用辛普森法求解定积分"""
h = (b - a) / n
s = f(a) + f(b)
for i in range(1, n):
x = a + i * h
if i % 2 == 0:
s += 2 * f(x)
else:
s += 4 * f(x)
return h * s / 3
```
其中,`f`、`a`、`b` 和 `n` 的含义与梯形法相同。
示例代码:
```python
# 计算 f(x) = x^2 在 [0, 1] 的定积分
def f(x):
return x ** 2
a, b, n = 0, 1, 1000
result1 = trapezoidal(f, a, b, n)
result2 = simpson(f, a, b, n)
print(f"使用梯形法,近似计算结果为:{result1:.4f}")
print(f"使用辛普森法,近似计算结果为:{result2:.4f}")
```
输出:
```
使用梯形法,近似计算结果为:0.3333
使用辛普森法,近似计算结果为:0.3333
```