この記事では台形公式の原理と、VBA による実装、具体的な計算例を解説します。
台形公式
台形公式は関数のグラフと
すなわち積分公式で表すと
という近似計算をしようという試みです。区間
となります。上底と下底の和に高さを掛けて 2 で割ると台形の面積が求められます。左端にある台形の面積
となります。
これらを全て加えると
のように表すことができます。一般的に
1 区分の長さは
となり、台形公式による定積分の近似式は
と表されます。
台形公式の実装
台形公式を使って対数関数
'[VBA]台形公式で対数関数の定積分を計算するFunctionプロシージャ
Function SUMLOG(a As Double, b As Double) As Variant
Dim n As Integer, k As Integer
Dim delta As Double, sedge As Double, smid As Double
'真数条件およびb>aを満たしているかチェックする
If a > 0 And b > 0 And b > a Then
'区間の分割数を指定
n = 100
'区分の長さを計算
delta = (b - a) / n
'端点における寄与を計算
sedge = (Log(a) + Log(b)) / 2
'端点以外の寄与を計算
For k = 1 To n - 1
smid = smid + Log(a + k * delta)
Next k
'台形公式による積分の近似値を得ます
SUMLOG = (sedge + smid) * delta
Else
SUMLOG = CVErr(xlErrNA)
End If
End Funciton
SUMLOG 関数を使うときはセルに
=SUMLOG(a,b)
と入力します。a, b は非負かつ a < b となるように指定しないとエラーが表示されます。
上のマクロで a, b にそれぞれ 1, 10 を指定したとき、すなわち、台形公式で定積分
を計算させたときの戻り値と真値を比較すると
戻り値:14.025 真値:14.026
となって 4 桁まで一致する精度があります。この精度は分割数 n を大きくすることによって高めることができます。上のマクロで n = 1000 と書き換えてみると
戻り値:14.0258 真値:14.0259
というように 5 桁の精度となります。
INTEGRAL関数
次は
'[VBA]台形公式による定積分関数
Function INTEGRAL(xy As Range) As Double Dim i As Integer, u As Integer
Dim a As Double, b As Double
Dim h As Double, s As Double
Dim mydata As Variant
'xyを2次元配列変数に変換
mydata = xy
'配列の要素数
u = UBound(mydata, 1)
'台形公式の適用
For i = 1 To u - 1
h = mydata(i + 1, 1) - mydata(i, 1)
s = s + (mydata(i, 2) + mydata(i + 1, 2)) * h / 2
Next i
INTEGRAL = s
End Function
この関数は実践的なデータを想定して作成しました。ワークシートにデータが用意されていれば、関数を具体的な形
台形近似を使用しますが、普通の台形近似公式とは少し異なり、セルに入力された区間ごとに近似を行なっています。上の例では
と計算されます。同様に全ての行について台形の面積を求めて、それを全部足し合わせて積分の近似値とします。この関数を使うときはセルに
=INTEGRAL(範囲)
と入力します。範囲は 2 列まとめて指定してください。上の例では
=INTEGRAL(B3:C13)
と入力して 0.68 という値が返ります。真値は 0.67 です。刻み幅を細かくするほど精度は上がります。上の例では
もう1つ計算例を載せておきます。分数関数
上のようなシートを作って、F3 セルに
=INTEGRAL(B3:C13)
と入力すると 0.694 の値が返ります。真値は
【補足】台形の面積
台形の面積の求め方を確認しておきましょう。上底の長さ
で与えられます。
と表せるので、台形の面積は
のようにして求めることができます。
エクセルや数学に関するコメントをお寄せください
【数学英語の豆知識】
台形を英語で trapezoid といいます。
台形の上底と下底はそれぞれ upper base, lower base と表現します。
台形の脚は legs または lateral sides です。
台形の面積は area of a trapezoid とよびます。
trapezoid の形容詞は trapezoidal です。
本記事にあるように、積分を台形で近似する手法、つまり台形公式は trapezoidal rule といいます。