?
文章目錄
- 一、梯形公式、中點公式
- 1. 梯形公式(Trapezoidal Rule):
- 2. 復化梯形公式(Composite Trapezoidal Rule):
- 3. 中點公式(Midpoint Rule):
- 4. 復化中點公式(Composite Midpoint Rule):
- 二、例題
- 三、程序
- 1. 中點公式
- 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)] ∫ab?f(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)] ∫ab?f(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) ∫ab?f(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) ∫ab?f(x)dx≈hi=0∑n?1?f(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) ∫ab?f(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.5?f(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] ∫ab?f(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.5?f(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. 中點公式
def midpoint_rule(data):result = 0for i in range(len(data) - 1):a, fa = data[i]b, fb = data[i + 1]result += (b - a) * fbreturn result
2. 梯形公式
def trapezoidal_rule(data):result = 0for i in range(len(data) - 1):a, fa = data[i]b, fb = data[i + 1]result += (b - a) * (fa + fb) / 2return result