文章目录
- 一、梯形公式、中点公式
-
- [1. 梯形公式(Trapezoidal Rule):](#1. 梯形公式(Trapezoidal Rule):)
- [2. 复化梯形公式(Composite Trapezoidal Rule):](#2. 复化梯形公式(Composite Trapezoidal Rule):)
- [3. 中点公式(Midpoint Rule):](#3. 中点公式(Midpoint Rule):)
- [4. 复化中点公式(Composite Midpoint Rule):](#4. 复化中点公式(Composite Midpoint Rule):)
- 二、例题
- 三、程序
-
- [1. 中点公式](#1. 中点公式)
- [2. 梯形公式](#2. 梯形公式)
积分学的基本定理告诉我们,只要能找到 f ( x ) f(x) f(x) 的原函数 F ( x ) F(x) F(x),就可以通过 F ( b ) − F ( a ) F(b) - F(a) F(b)−F(a) 来求得定积分的值。但实际上,找到 f ( x ) f(x) f(x) 的原函数 F ( x ) F(x) F(x) 并不总是容易的事情。有些函数的原函数可能没有简洁的表达式,或者无法通过常见的初等函数表示。
为了解决这个问题,数值积分方法提供了一种近似计算定积分的途径。这些方法通过离散化积分区间,使用数值技术来估计积分值。下面将介绍一些常见的数值积分方法:
一、梯形公式、中点公式
1. 梯形公式(Trapezoidal Rule):
梯形公式是最简单的数值积分方法之一,它基于使用梯形逼近曲线下的面积,其数学表达式为:
∫ a b f ( x ) d x ≈ b − a 2 [ f ( a ) + f ( b ) ] \int_a^b f(x) \,dx \approx \frac{b-a}{2} [f(a) + f(b)] ∫abf(x)dx≈2b−a[f(a)+f(b)]
通过连接函数图像上的两个端点,形成一个梯形,然后计算梯形的面积来估计定积分值。
2. 复化梯形公式(Composite Trapezoidal Rule):
复化梯形公式是对梯形公式的改进,通过将积分区间分割成多个小区间,然后在每个小区间上应用梯形公式,最后将结果相加,其数学表达式为:
∫ a b f ( x ) d x ≈ h 2 [ f ( a ) + 2 f ( x 1 ) + 2 f ( x 2 ) + ... + 2 f ( x n − 1 ) + f ( b ) ] \int_a^b f(x) \,dx \approx \frac{h}{2} [f(a) + 2f(x_1) + 2f(x_2) + \ldots + 2f(x_{n-1}) + f(b)] ∫abf(x)dx≈2h[f(a)+2f(x1)+2f(x2)+...+2f(xn−1)+f(b)]
其中, h = ( b − a ) / n h=(b-a)/n h=(b−a)/n 是每个小区间的宽度。
3. 中点公式(Midpoint Rule):
中点公式使用区间中点的函数值来逼近曲线下的面积,数学表达式为:
∫ a b f ( x ) d x ≈ f ( a + b 2 ) ( b − a ) \int_a^b f(x) \,dx \approx f\left(\frac{a+b}{2} \right)(b-a) ∫abf(x)dx≈f(2a+b)(b−a)
4. 复化中点公式(Composite Midpoint Rule):
复化中点公式是对中点公式的改进,通过将积分区间分割成多个小区间,然后在每个小区间上应用中点公式,最后将结果相加,数学表达式为:
∫ a b f ( x ) d x ≈ h ∑ i = 0 n − 1 f ( a + h 2 + i h ) \int_a^b f(x) \,dx \approx h \sum_{i=0}^{n-1} f\left(a + \frac{h}{2} + ih\right) ∫abf(x)dx≈hi=0∑n−1f(a+2h+ih)
其中, h h h 是每个小区间的宽度, n n n 是分割的小区间数量。
二、例题
有一组(x, y)值:
( y = e x y=e^x y=ex)
( 1.1 , 3.0042 ) ( 1.3 , 3.6693 ) ( 1.5 , 4.4817 ) \begin{align*} & (1.1, 3.0042) \\ & (1.3, 3.6693) \\ & (1.5, 4.4817) \end{align*} (1.1,3.0042)(1.3,3.6693)(1.5,4.4817)
-
使用中点公式: ∫ a b f ( x ) d x ≈ ( b − a ) ⋅ f ( a + b 2 ) \int_a^b f(x) \,dx \approx (b - a) \cdot f\left(\frac{a + b}{2}\right) ∫abf(x)dx≈(b−a)⋅f(2a+b)
- 这里 a = 1.1 a = 1.1 a=1.1, b = 1.5 b = 1.5 b=1.5,所以中点公式为: ∫ 1.1 1.5 f ( x ) d x ≈ ( 1.5 − 1.1 ) ⋅ f ( 1.1 + 1.5 2 ) = 0.4 f ( 1.3 ) = 1.46772 \int_{1.1}^{1.5} f(x) \,dx \approx (1.5 - 1.1) \cdot f\left(\frac{1.1 + 1.5}{2}\right)=0.4f(1.3)=1.46772 ∫1.11.5f(x)dx≈(1.5−1.1)⋅f(21.1+1.5)=0.4f(1.3)=1.46772
-
使用复化梯形公式: ∫ a b f ( x ) d x ≈ h 2 [ f ( x 0 ) + 2 f ( x 1 ) + 2 f ( x 2 ) + ... + 2 f ( x n − 1 ) + f ( x n ) ] \int_{a}^{b} f(x) \,dx \approx \frac{h}{2} \left[ f(x_0) + 2f(x_1) + 2f(x_2) + \ldots + 2f(x_{n-1}) + f(x_n) \right] ∫abf(x)dx≈2h[f(x0)+2f(x1)+2f(x2)+...+2f(xn−1)+f(xn)]
- 这里小区间的宽度 h = 0.2 h=0.2 h=0.2,代入数据点的 y y y 值:
∫ 1.1 1.5 f ( x ) d x ≈ 0.2 2 [ 3.0042 + 2 ⋅ 3.6693 + 4.4817 ] = 1.48245 \int_{1.1}^{1.5} f(x) \,dx \approx \frac{0.2}{2} \left[ 3.0042+ 2\cdot 3.6693 + 4.4817 \right]=1.48245 ∫1.11.5f(x)dx≈20.2[3.0042+2⋅3.6693+4.4817]=1.48245
- 这里小区间的宽度 h = 0.2 h=0.2 h=0.2,代入数据点的 y y y 值:
三、程序
1. 中点公式
python
def midpoint_rule(data):
result = 0
for i in range(len(data) - 1):
a, fa = data[i]
b, fb = data[i + 1]
result += (b - a) * fb
return result
2. 梯形公式
python
def trapezoidal_rule(data):
result = 0
for i in range(len(data) - 1):
a, fa = data[i]
b, fb = data[i + 1]
result += (b - a) * (fa + fb) / 2
return result