Python是一種高級編程語言,它廣泛應用于科學計算、數據分析、機器學習等領域。其中,數值計算是Python的一個重要應用方向。在數值計算中,積分是一個基本問題。本文將介紹Python中的梯形積分法。
def trapezoidal(f, a, b, n): h = (b - a) / n s = 0.5 * (f(a) + f(b)) for i in range(1, n): x = a + i * h s += f(x) return h * s # 示例函數f(x)=x^2+1,在區間[0,1]上進行積分 def f(x): return x ** 2 + 1 a, b, n = 0, 1, 100 result = trapezoidal(f, a, b, n) print(result)
梯形積分法是一種基本的數值積分方法。它的思想是將積分區間等分成n段,對每一段進行梯形面積的估計。梯形面積的估計公式為:
$$\frac{b-a}{2n}[(f(a)+f(b))+2(f(a+h)+f(a+2h)+…+f(b-h))]$$
其中,$a$和$b$是積分區間的端點,$n$是等分的段數,$h=\frac{b-a}{n}$是每一段的長度,$f(x)$是要積分的函數。
在Python中,我們可以定義一個梯形積分函數,傳入要積分的函數$f(x)$、積分區間的端點$a$和$b$、以及等分的段數$n$,得到積分的近似值。例如,下面的示例計算了函數$f(x)=x^2+1$在區間[0,1]上進行積分的近似值,等分成了100段。
通過上述代碼,我們得到了函數$f(x)=x^2+1$在區間[0,1]上進行積分的近似值,約為1.3333。當然,隨著等分的段數增加,我們可以得到更加精確的積分結果。