台形公式
数値積分の中でも簡単な方法に分類される台形公式をやってみた。区分求積にひと手間加えた感じでいいのかな。図形を細長い台形で分割してそれらの和で近似する。次のサイトが参考になる。誤差についても書かれているので読んでみるといいかもしれない。
・dfltweb1.onamae.com – このドメインはお名前.comで取得されています。
で、こんなコードができた。
import math def daikei(a, b): n = 10000000 #分割数 S = 0 #面積 h = (b - a) / n #台形の高さ for i in range(n - 1): S += f(a + i * h) S = (f(a) + 2 * S + f(b)) * h / 2 #面積を求める return S def f(x): #例としてx^4-x^3+12x^2-x*sin(cos(x))の指定した範囲の面積を求める return x**4 - x**3 + 12*x**2 - x * math.sin(math.cos(x)) def main(): a = 0 b = math.pi #a,bは積分区間 ans = daikei(a, b) print ans if __name__ == '__main__': main()
実行結果はこちら
>>> 162.628259379
Wolfram Alphaでやってみたらこうなった。
いい感じになっている。