台形公式

提供: miniwiki
移動先:案内検索

数学において、台形公式(だいけいこうしき、英語: Trapezoidal rule)もしくは台形則(だいけいそく)は定積分近似計算するための方法、すなわち数値積分のひとつである。これはニュートン・コーツの公式の1次の場合である。被積分関数を区分線形関数で近似し、台形の面積の公式に帰着させて積分の近似値を求める。

具体的に言えば、求めたいx -y グラフのy = 0を含む面積内に無数の台形を置くと、その台形の面積の集合和は本物の面積に限りなく近い値となる。

一次関数による近似なので精度はそれほど期待できず、二次関数で近似するシンプソンの公式などの方が精度が高い。シンプソンの公式やその他の類似の手法は、2階連続微分可能な関数に対する台形公式の改良とみなせるが、細かく変動しない関数に対しては台形公式で十分であり、計算も簡単である。

近似誤差

台形公式の利点は、近似誤差が容易に分かることである。

凸関数に対してこの公式で積分を求めると、結果は実際の値よりも台形と実際の関数曲線の差分の分だけ小さい値になり、凹関数に対してこの公式で積分を求めると、結果は実際の値よりも台形と実際の関数曲線の差分の分だけ大きい値になる。また積分区間が変曲点を含むとき上記の凸部分の誤差と凹部分の誤差が打ち消し合い全体的な誤差は小さくなる。

さらに、台形公式は周期関数をその周期よりも長い区間積分する場合にはきわめて精度が高くなる傾向がある。これはオイラーの和公式(オイラー・マクローリンの公式)との関係をみると良く理解できる。しかしながら非周期関数に対しては一般に、 ガウス求積クレーンショー・カーチス数値積分則のような非等分点法の方がより精度が高い。 また、二重指数関数型数値積分公式も台形公式が応用されている。2重指数型関数が入ったケースにおいては、同様に精度がきわめて高い事が知られている。


台形公式の誤差の補正には、非積分関数の端点での高階導関数値を用いた「オイラー・マクローリンの公式」や、端点での高階導関数値を高次の差分商に置き換えて得られる「グレゴリーの公式」が知られている。(参考文献:日高孝次:「数値積分法」上巻,第四章「Euler-MacLaurin 及びGregoryの数値積分公式」,岩波書店、昭和11年(1936年)7月)(ただし「数」の字は旧字体)。

台形による近似

ファイル:Trapezoidal rule illustration.png
関数f (x)(青線)を線形関数(赤線)で近似
ファイル:Composite trapezoidal rule illustration.png
合成台形公式の図(不等間隔の例)

x ∈(a,b) のとき f (x) > 0 とする。定積分

[math] \int_{a}^{b} f(x)\,\mathrm{d}x[/math]

の値は、xy 座標平面上で曲線 y = f (x) と x 軸、 x = ax = b とで囲まれた図形の面積になる。一般に積分計算は複雑であることも多いが、近似値が欲しいだけであれば f (x) を一次関数で近似することによりこの図形は台形とみなすことができるので

[math] \int_{a}^{b} f(x)\, \mathrm{d}x \approx (b-a)\frac{f(a) + f(b)}{2}[/math]

のように、台形の面積公式を用いて簡単に計算できる。

この公式は曲線 y = f (x) が直線に近いほど精度がよくなるが、直線とは全く異なる曲線であれば精度が悪くなり欲しい近似値を得ることが難しくなってくる。そこで、この積分をより正確に計算するために、

a = a0 < a1 < … < an = b

として積分区間 [a, b] をより小さいn 個の部分区間 [a0,a1], [a1,a2], … , [an−1,an] に分け、それぞれの区間で台形とみなして面積を近似計算する。

[math]\begin{align} \int_{a}^{b} f(x)\, \mathrm{d}x &= \int_{a_0}^{a_1} f(x)\, \mathrm{d}x + \int_{a_1}^{a_2} f(x)\, \mathrm{d}x + \cdots + \int_{a_{n-1}}^{a_n} f(x)\, \mathrm{d}x \\ &= \sum_{k=1}^{n} \int_{a_{k-1}}^{a_k} f(x)\, \mathrm{d}x \\ &\approx \sum_{k=1}^{n}(a_k-a_{k-1})\frac{f(a_{k-1}) + f(a_k)}{2} \end{align}[/math]

区間幅が等間隔の場合

さらに一区間の幅が

[math]a_k - a_{k-1} = \frac{b-a}{n} \quad (k=1,\dots,n)[/math]

と一定になるようにk 番目の区切りを

[math]a_k = a+k\frac{b-a}{n} \quad (k=0,\dots,n)[/math]

ととることで

[math]\begin{align} \int_{a}^{b} f(x)\, \mathrm{d}x &\approx \sum_{k=1}^{n}(b-a)\frac{f(a_{k-1}) + f(a_k)}{2n} \\ &= \frac{b-a}{2n} \sum_{k=1}^{n}(f(a_{k-1}) + f(a_k))\\ &= \frac{b-a}{2n} \left(f(a_0) + 2f(a_1) + 2f(a_2)+\cdots+2f(a_{n-1}) + f(a_n) \right)\\ &= \frac{b-a}{n} \left\{\frac{f(a) + f(b)}{2} + \sum_{k=1}^{n-1} f \left( a+k \frac{b-a}{n} \right) \right\} \end{align}[/math]

という公式が得られる。

区間分割が十分多い、すなわちn が十分大きい場合、上式右辺の第1項は

[math]\frac{b-a}{n}\cdot\frac{f(a) + f(b)}{2} \rightarrow 0 \quad (n\rightarrow\infty)[/math]

となるため、端点x = a, b における関数f の値は積分の結果に大きな影響を及ぼさず、長方形近似した場合とほぼ同じとなる(誤差のオーダーが同じ)。

関連項目

参考文献

外部リンク