第10章「近似」という考え方(1/2)—定積分の近似計算
第 3 章でも述べたように，コンピュータの資源は有限であり，有限形式をそのまま無限形式で正確に表現することは不可能である。特に積分計算では原始関数を初等関数の有限個の組み合わせで表現できない場合があり，定積分の存在は理論的に示されている場合でも，原始関数を用いた厳密な計算が不可能なことがある。その際には定積分の「定義」に立ち返って，コンピュータの有限だが高速な演算能力を生かした「近似的」な計算法を導入する必要がある。本章ではそのうち素朴な近似的数値積分法のみを紹介する。
10.1定積分の近似計算(2/2) — Newton-Cotes積分公式
以下の定積分を求めたいとする。∫ b
af(x)dx(10.1)
Newton-Cotes 型の積分公式は，この積分区間内を等分割し，各分点 (xi, f(xi))を補間点とする Lagrange 補間多項式を積分したものをこの積分の近似値として採用するという考え方である。例えば，閉区間 [x0, xk] が k 等分割 (区間幅は h とする) されているものとすると，k + 1 個の補間点 (x0, f(x0)), ..., (xk, f(xk)) を全て通過する k 次補間多項式 pk(x) が求められる。この時，この閉区間における f(x) を pk(x) で近似したことにすると，定積分においても∫ xk
x0f(x)dx ≈∫ xk
x0pk(x)dx(10.2)
という近似を行ったことになる。ψ(x) = ∏kl=0(x − xl) とおくと，pk(x) は Lagrange
64第 10 章「近似」という考え方 (1/2)—定積分の近似計算
x0x1 x2xk
図 10.1: k 次多項式補間の場合
pk(x) =
(x − x0) · · · (x − xj−1)(x − xj+1) · · · (x − xk)
(xj − x0) · · · (xj − xj−1)(xj − xj+1) · · · (xj − xk) f(xj) =
(x − xj)ψ′(xj) f(xj)
(10.3)の形で表現できるので，(10.2) の右辺は
x0pk(x)dx =∫ xk
(x − xj)ψ′(xj) f(xj)dx
ψ′(xj)
ψ(x)x − xjdx)f(xj)
1
ψ′(xj)
l=0, l�j(x − xl) dx
 f(xj)
j=0(cdjh) f(xj) = ch
j=0dj f(xj)(10.4)
と表現できる。参考までに k = 2, 3, ..., 7 等分割した時の係数 c, d0, ..., dk を表 10.1に掲載しておく。
台形公式 (台形則)
最も単純なものは 2 点間を直線で結ぶ，即ち 1 次多項式で近似し，その補間多項式を積分して近似値を求める，いわゆる台形公式 (trapezoidal rule) である。図形的にはちょうど分割した関数と x 座標で囲まれる台形の面積を求め，それを全て加算するというものである。等間隔 h = (b − a)/n で n 分割した場合，その一区
10.1.定積分の近似計算 (2/2) — Newton-Cotes 積分公式65
表 10.1: Newton-Cotes 積分公式の係数 (Abramowitz より引用)
2 点 (台形則) c = 1/2
d0 = 1d1 = 1
3 点 (Simpson の 1/3 公式) c = 1/3
d0 = 1d1 = 4d2 = 1
4 点 (Simpson の 3/8 公式) c = 3/8
d0 = 1d1 = 3d2 = 3d3 = 1
5 点 c = 2/45
d0 = 7d1 = 32d2 = 12d3 = 32d4 = 7
6 点 c = 5/288
d0 = 19d1 = 75d2 = 50d3 = 50d4 = 75d5 = 19
7 点 c = 1/140
d0 = 41d1 = 216d2 = 27d3 = 272d4 = 27d5 = 216d6 = 41
66第 10 章「近似」という考え方 (1/2)—定積分の近似計算
間 [xi, xi+1] は∫ xi+1
xif(x)dx ≈ h
2(f(xi) + f(xi+1))(10.5)
となる。従って，これに基づいた定積分全区間の近似値は
af(x)dx≈
h2( f(xi) + f(xi+1))
 f(x0) + 2
i=1f(xi) + f(xn)
(10.6)
として計算できる。
Simpson の 1/3 公式
3 点間を 2 次の Lagrange 補間多項式で近似し，その積分値を採用する方法をSimpson の 1/3 公式と呼ぶ。この場合は，全区間を 2n 分割した一区間を∫ xi+2
xif(x)dx ≈ h
3( f(xi) + 4f(xi+1) + f(xi+2))(10.7)
として計算するので，全体としては
af(x)dx≈
h3{ f(xi) + 4f(xi+1) + f(xi+2)}
 f(x0) + 4
i=1f(x2i−1) + 2
i=1f(x2i) + f(x2n)
(10.8)
1. 定積分∫ 2
1log x dx
の値を求めたい。この時，次の問に答えよ。
(a) この定積分の真値を求めよ。
10.1.定積分の近似計算 (2/2) — Newton-Cotes 積分公式67
(b) この定積分の値を，積分区間の分割数は 4 として，台形則を用いて求めよ
2. (10.4) 式から，Simpson の 1/3 公式における係数 c, d0, d1, d2 が導出できることを確認せよ。
3. P.61 の練習問題 2 の複素積分の値を台形公式を用いて求めよ。またそのための C++プログラムも作れ。