定積分は関数、xの区間、x軸で囲まれた領域の面積を計算します。 数値積分は有限個の点(x0,x1,x2,x3, ・・・・)での関数値(y0,y1,y2,y3,・・・)から 面積を算出します。点の数が少ないと、誤差が発生します。 |
![]() 図1 数値積分を行う例題のグラフ |
やさしくわかるExcel VBA(ブイビーエー)プログラミング改訂版 Excel VBA(ブイビーエー)辞典 Excel 2007/2003/2002/2000 VBA徹底活用テクニック 統計数理は隠された未来をあらわにする 技術者のための微分積分学 |
シンプソン公式では、隣接する3点を放物線(2次関数)と仮定し数値積分を行う。 そのため、積分する関数f(x)の積分区間[a:b]を偶数個(M=2N)に等分割し、分割点での関数値(y0,y1,・・・y2M)が必要となる。 分割巾(h)は h = (a-b)/M となる。 積分値 I = ∫ f(x) dx は I = (1/3) h { y0+4(y1+y3+ ・・・・+y2M-1) + 2(y2+y4+・・・・・+y2M-2) + y2M } ・・・ (1) となる。 |
関数 f(x) = 1/(1+x2) を区間(0〜1)で積分すると、円周率πが得られることが解っている。 エクセルシート上に、分割数(M)、区間(a〜b)を設定します。 xとそれに対応する関数f(x)を設定します。関数を変更すれば、その関数に対応した数値積分 が可能となる。最後に計算結果エリアを設定します。 ![]() 図2 数値積分用のエクセルシート |
エクセルの操作による数値積分より、VBAによる数値積分プログラム作成のほうが容易です。 セルの値を読み込み、シンプソン公式を用い数値積分を行い、計算結果をセルに出力します。 関数はシート上のxに値を設定し、y=f(x)の値を取り出します。 ![]() 図3 シンプソンの公式のVBAプログラム |
積分実行のボタンを作り、マクロを登録しておくと便利です。 積分実行ボタンをクリックすると、積分値が算出されました。 πの値になっているようです。 ![]() 図4 数値積分(シンプソンの公式)の実行結果 |

