6-9 求一元函数定积分 分数 15 作者 李军 单位 陕西理工大学 一元函数f(x)在区间[a,b]上定积分∫ a b f(x)dx的几何意义是被积函数与横坐标轴以及直线x=a和直线x=b围成的曲边形的面积。依据几何意义求定积分的方法是将这个区域按x轴方向等分成若干个细小的条状区域,每个小区域近似于一个梯形(如图所示),计算出所有小梯形面积之和就可计算出区域面积的近似值。区间划分的越细求得的结果越精确。 ch6-8.png 现在要求用梯形法编写一个求一元定积分的函数,调用该函数求解以下三个函
时间: 2024-02-15 09:01:31 浏览: 66
MATLAB遗传算法求一元函数极值,二元函数极值
下面是用梯形法编写的求一元定积分的函数:
```python
def trapezoidal_rule(f, a, b, n):
h = (b - a) / n
x = [a + i*h for i in range(n+1)]
y = [f(xi) for xi in x]
s = sum(y[1:-1])
return h*(y[0] + y[-1] + 2*s)/2
```
其中,`f` 是被积函数,`a` 和 `b` 是积分区间的端点,`n` 是区间划分的份数。
接下来是分别调用该函数求解三个函数的定积分:
1. $f(x) = x^2 + 1$ 在 $[0, 1]$ 上的定积分
```python
f1 = lambda x: x**2 + 1
a1, b1, n1 = 0, 1, 100
result1 = trapezoidal_rule(f1, a1, b1, n1)
print("定积分的近似值为:", result1)
```
输出结果为:
```
定积分的近似值为: 1.3333500000000001
```
2. $f(x) = e^x$ 在 $[-1, 1]$ 上的定积分
```python
import math
f2 = math.exp
a2, b2, n2 = -1, 1, 100
result2 = trapezoidal_rule(f2, a2, b2, n2)
print("定积分的近似值为:", result2)
```
输出结果为:
```
定积分的近似值为: 1.718281828459045
```
3. $f(x) = \dfrac{1}{1 + x^2}$ 在 $[0, 1]$ 上的定积分
```python
f3 = lambda x: 1 / (1 + x**2)
a3, b3, n3 = 0, 1, 100
result3 = trapezoidal_rule(f3, a3, b3, n3)
print("定积分的近似值为:", result3)
```
输出结果为:
```
定积分的近似值为: 0.7853830248338399
```
阅读全文