「台形公式」の版間の差分

編集の要約なし
[[数学]]において、'''台形公式'''(だいけいこうしき、''{{lang-en|Trapezoidal rule''}})もしくは'''台形則'''(だいけいそく)は[[積分|定積分]]を[[近似]]計算するための方法、すなわち[[数値積分]] 1ひとつである。これはは[[ニュートン・コーツの公式]]の1次の場合である。被積分関数を[[区分線形関数]]で近似し、[[台形]]の面積の公式に帰着させて積分の近似値を求める。
 
具体的に言えば、求めたい''x'' -''y'' グラフの''y'' = 0を含む面積内に無数の[[台形]]を置くと、その台形の面積の集合和は本物の面積に限りなく近い値となる。
 
一次関数による近似なので精度はそれほど期待できず、[[二次関数]]で近似する[[シンプソンの公式]]などの方が精度が高い。シンプソンの公式やその他の類似の手法は、2階連続微分可能な関数に対する台形公式の改良とみなせるが、細かく変動しない荒い関数に対しては台形公式で十分であり、計算も簡単である。
 
== 概要 ==
台形公式は[[ニュートン・コーツの公式]]と呼ばれる[[数値積分]]の公式のひとつである。被積分関数を[[一次関数]]で近似し、[[台形]]の面積の公式に帰着させて積分の近似値を求める方法である。一次関数による近似なので精度はそれほど期待できず、[[二次関数]]で近似する[[シンプソンの公式]]などの方が精度が高い。
 
シンプソンの公式やその他の類似の手法は、2階連続微分可能な関数に対する台形公式の改良とみなせるが、細かく変動しない荒い関数に対しては台形公式で十分であり、計算も簡単である。
 
== 近似誤差 ==
台形公式の利点は、近似誤差が容易に分かることである。
 
[[凸関数]]に対してこの公式で積分を求めると、結果は実際の値よりも台形と実際の関数曲線の差分の分だけ小さい値になり、[[凹関数]]に対してこの公式で積分を求めると、結果は実際の値よりも台形と実際の関数曲線の差分の分だけ大きい値になる。また積分区間が[[変曲点]]を含むとき上記の凸部分の誤差と凹部分の誤差が打ち消し合い''全体的な誤差''は小さくなる。
[[凹関数]]に対してこの公式で積分を求めると、結果は実際の値よりも台形と実際の関数曲線の差分の分だけ大きい値になる。
 
また積分区間が[[変曲点]]を含むとき上記の凸部分の誤差と凹部分の誤差が打ち消し合い'''全体的な誤差'''は小さくなる。
 
 
さらに、台形公式は[[周期関数]]をその周期よりも長い区間積分する場合にはきわめて精度が高くなる傾向がある。これは[[オイラーの和公式]]との関係をみると良く理解できる。しかしながら非周期関数に対しては一般に、 [[ガウス求積]]や[[クレーンショー・カーチス数値積分則]]のような非等分点法の方がより精度が高い。
{{節stub}}<!--誤差の大きさは区間幅に対して何次のオーダーか、など-->
 
== 台形による近似 ==
[[Image:trapezoidal_rule_illustration.png|right|thumb|関数''f'' (''x'') (青線)を線形関数(赤線)で近似(赤線)。]]
[[Image:Composite trapezoidal rule illustration.png|right|thumb|合成台形公式の図(不等間隔の例).]]
''x'' &isin;(''a'',''b'') のとき ''f'' (''x'') &gt; 0 とする。[[定積分]]
 
:<math> \int_{a}^{b} f(x)\,dx\mathrm{d}x</math>
''x'' &isin;(''a'',''b'') のとき ''f''(''x'') &gt; 0 とする。
の値は、[[直交座標系|''xy'' 座標平面]]上で曲線 ''y'' = ''f'' (''x'') と ''x'' 軸、 ''x'' = ''a''、 ''x'' = ''b'' とで囲まれた図形の[[面積]]になる。一般に積分計算は複雑であることも多いが、近似値が欲しいだけであれば ''f'' (''x'') を[[一次関数]]で近似することによりこの図形は[[台形]]とみなすことができるので
定積分
:<math> \int_{a}^{b} f(x)\,dx</math>
の値は、''xy''座標平面上で ''y'' = ''f''(''x'') と ''x'' 軸、 ''x'' = ''a''、 ''x'' = ''b'' とで囲まれた図形の[[面積]]になる。一般に積分計算は複雑であることも多いが、近似値が欲しいだけであれば ''f''(''x'') を[[一次関数]]で近似することによりこの図形は[[台形]]とみなすことができるので
:<math> \int_{a}^{b} f(x)\, dx \approx (b-a)\frac{f(a) + f(b)}{2}</math>
のように、台形の面積公式を用いて簡単に計算できる。
 
この公式は曲線 ''y'' = ''f'' (''x'') が直線に近いほど精度がよくなるが、直線とは全く異なる曲線であれば精度が悪くなり欲しい近似値を得ることが難しくなってくる。そこで、この積分をより正確に計算するために、
:''a'' = ''a''<sub>0</sub> &le;< ''a''<sub>1</sub> &le;< &hellip; &le;< ''a''<sub>''n''</sub> = ''b''
として積分区間 [''a'', ''b''] をより小さい''n'' 個の部分区間 [''a''<sub>0</sub>,''a''<sub>1</sub>], [''a''<sub>1</sub>,''a''<sub>2</sub>], &hellip; , [''a''<sub>''n''&minus;1</sub>,''a''<sub>''n''</sub>] に分け、それぞれの区間で台形公式を用いとみなし面積を近似計算する。
:<math>\begin{align} \int_{a}^{b} f(x)\, dx\mathrm{d}x </math>
:<math>&= \int_{a_0}^{a_1} f(x)\, dx\mathrm{d}x + \int_{a_1}^{a_2} f(x)\, dx + \int_mathrm{a_2d}^{a_3} f(x)\, dx+ </math>\cdots ・・・+ <math>\int_{a_{n-1}}^{a_n} f(x)\, dx\mathrm{d}x </math>\\
&= \sum_{k=1}^{n} \int_{a_{k-1}}^{a_k} f(x)\, \mathrm{d}x \\
:<math> \int_{a}^{b} f(x)\, dx &\approx \sum_{k=1}^{n}(ba_k-aa_{k-1})\frac{f(a_{k-1}) + f(a_k)}{2n2} \end{align}</math>
 
=== 区間幅が等間隔の場合 ===
さらに一区間の幅が
:<math>a_k - a_{k-1} = \frac{b-a}{2nn} \sum_{quad (k=1}^{,\dots,n}(f(a_{k-1}) + f(a_k))</math>
と一定になるように''k'' 番目の区切りを
k番目は :<math>a_k = a+k\frac{b-a}{n}, \quad (k=0,\ldots dots,n)</math> と置けることで
ととることで
:<math>\begin{align}
:<math>= \sum_{k=1}^{n} \int_{a_{k-1}a}^{a_kb} f(x)\, dx \mathrm{d}x &\approx \sum_{k=1}^{n}(a_kb-a_{k-1}a)\frac{f(a_{k-1}) + f(a_k)}{22n}</math> \\
&= \frac{b-a}{2n} \sum_{k=1}^{n}(f(a_{k-1}) + f(a_k))\\
:<math> &= \frac{b-a}{2n} \left(f(a_0) + 2f(a_1) + 2f(a_2)+\cdots+2f(a_{n-1}) + f(a_n) \right)</math>\\
:<math> &= \frac{b-a}{n} \left\{ \frac{f(a) + f(b) \over }{2} + \sum_{k=1}^{n-1} f \left( a+k \frac{b-a}{n} \right) \right\}</math>
\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'' の値は積分の結果に大きな影響を及ぼさず、長方形近似した場合とほぼ同じとなる(誤差のオーダーが同じ)。
:<math> \int_{a}^{b} f(x)\, dx </math>
:<math>= \int_{a_0}^{a_1} f(x)\, dx + \int_{a_1}^{a_2} f(x)\, dx + \int_{a_2}^{a_3} f(x)\, dx </math> ・・・ <math>\int_{a_{n-1}}^{a_n} f(x)\, dx </math>
:<math>= \sum_{k=1}^{n} \int_{a_{k-1}}^{a_k} f(x)\, dx \approx \sum_{k=1}^{n}(a_k-a_{k-1})\frac{f(a_{k-1}) + f(a_k)}{2}</math>
 
 
さらに1[[区間 (数学)|区間]]の幅が <math> a_n - a_{n-1} = \frac{b-a}{n}</math> と、一定になり
 
k番目は <math>a_k = a+k\frac{b-a}{n},(k=0\ldots n)</math> と置けることで
 
 
:<math> \int_{a}^{b} f(x)\, dx \approx \sum_{k=1}^{n}(b-a)\frac{f(a_{k-1}) + f(a_k)}{2n}</math>
:<math>\frac{b-a}{2n}</math> は定数より
 
 
:<math> = \frac{b-a}{2n} \sum_{k=1}^{n}(f(a_{k-1}) + f(a_k))</math>
:<math> = \frac{b-a}{2n} \left(f(a_0) + 2f(a_1) + 2f(a_2)+\cdots+2f(a_{n-1}) + f(a_n) \right)</math>
:<math> = \frac{b-a}{n} \left\{ {f(a) + f(b) \over 2} + \sum_{k=1}^{n-1} f \left( a+k \frac{b-a}{n} \right) \right\}</math>
という公式が得られる。
 
==関連項目==