数値積分の四つのアルゴリズムの比較

問題 矩形則、中点法則、台形則およびSimpson則を利用して、関数
10 ' Program table2-2
20
' 各数値積分法の比較
30 DEF FNA(V) = 100 - V^2
40 A = 0 : B = 10
50 INPUT "区間の数 =",N
60 D = (B-A)/N
70 H = D/2
80 FOR X = A+D TO B-H STEP 2*D
90 Y = FNA(X)
100 S1 = S1 + FNA(X-D) + Y
110 S2 = S2 + FNA(X-H) + FNA(X+H)
120 S3 = S3 + 4*Y+2*FNA(X+D)
130 NEXT X
140 A1 = D*S1
150 A2 = D*(S1-FNA(A)/2+FNA(B)/2)
160 A3 = D*S2
170 A4=D/3*(FNA(A)+S3-FNA(B))
180 PRINT " 矩形則"," 台形則"," 中点則"," Simpson則"
190 PRINT A1, A2, A3, A4
200 END

実行結果の例 部分区間の数を変えて0から1までの範囲を積分した場合

部分区間の数 矩形則 台形則 中点法則 Simpson則
10 715 665 667.5 666.6667
100 671.6503 666.6503 666.6751 666.6668
1000 667.6663 666.6663 666.6679 666.6669


itable2-2.bas

について、部分区間の数を変えて積分の値を求め、比較しなさい。
f(x) = 100 - x2



部分区間の数が少なくても、Simpson則による結果はきわめて良い。
(この場合は対象関数が放物線なので、当たり前かも知れない。)
2002 Copyright 木原 寛