出展:パーソナルソフトウェア技法 Watts S. Humphrey 著 ISBN4-320-02929-1

PSP課題 05A_VB : 数値積分

前提条件

6章までと A5 節

要求

次のような形式で、シンプソン則で積分する関数を作成せよ。
  Public Delegate Function CalcFunc(ByVal x As Double, ByVal o As Object) As Double
  Public Shared Function Simpson(ByVal f As CalcFunc, _
    ByVal lower As Double, ByVal upper As Double, ByVal o As Object) As Double
正規分布を−∞から、適当な値まで積分し出力せよ。
正規分布の関数は、NormDist(x) := exp(-x*x/2) / sqrt(2*PI) を用いよ。
シンプソン則は、n 分割した n+1 個の位置での値に 1,4,2,4,2,...,1 を掛けて和をとり、 (upper-lower) を掛けて 3*n で割ったものが積分値となる。分割数は偶数でなければいけない。 無限ループにならないようにチェックせよ。
ベースは prob/PSP_TEMPL_VB とせよ。

テスト

入力ファイル期待される出力
テスト105A_VB_test_1.txt結果1
テスト205A_VB_test_2.txt結果2
テスト305A_VB_test_3.txt結果3

参考

A5 節をよく読むこと。

解答例