数値積分の四つのアルゴリズムの比較
問題 矩形則、中点法則、台形則および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則による結果はきわめて良い。
(この場合は対象関数が放物線なので、当たり前かも知れない。)