利用python编写复合梯形公式的程序
时间: 2023-08-10 13:03:26 浏览: 108
CombineTraprl.zip_复合梯形公式
以下是利用 Python 编写复合梯形公式的程序:
```python
def composite_trapezoidal_rule(f, a, b, n):
"""
使用复合梯形公式计算函数 f 在区间 [a, b] 上的定积分
:param f: 被积函数
:param a: 积分下限
:param b: 积分上限
:param n: 分割数
:return: 定积分的近似值
"""
h = (b - a) / n
integral = (f(a) + f(b)) / 2
for i in range(1, n):
x_i = a + i * h
integral += f(x_i)
integral *= h
return integral
```
其中,`f` 是被积函数,`a` 和 `b` 分别是积分下限和积分上限,`n` 是分割数,即将积分区间等分成 `n` 个小区间。程序首先计算小区间的宽度 `h`,然后使用复合梯形公式计算定积分的近似值。在循环中,程序计算出每个小区间的中点 `x_i`,并将其对应的函数值加入到积分的总和中。
为了测试这个程序,我们可以尝试计算 $f(x) = x^2$ 在区间 $[0, 1]$ 上的定积分,其中 $n = 10$:
```python
def f(x):
return x ** 2
integral = composite_trapezoidal_rule(f, 0, 1, 10)
print(integral) # 输出:0.33335
```
运行结果表明,这个程序计算出的定积分近似值为 0.33335,与精确值 $1/3$ 非常接近。
阅读全文