I
3= b − a 3
(
f(a) + 4f
( a + b 2
)
+ f (b) )
に対応している
(Simpson
公式)。またΛ(z) = 2
z + 2 3z
3+ 2
3z
5+ 2
3z
5+ · · · (1 < | z | < ∞ ).
これから
Ψ(z) = Φ(z ) − Λ(z) = 2 [( 1
5 − 1 3
) 1 z
5+
( 1 7 − 1
3 ) 1
z
7+ · · · ]
= − 4
15z
5− 8
21z
7− · · ·
ゆえにa
1= a
2= a
3= a
4= 0.
これは4
位の公式であることを示す。n = 4
の場合(ここから先は、あまり実用にならない公式なので、理論を確かめる興味くら
いしかない。計算はかなり面倒になってくるが、
Mathematica
を使えるならば簡単である。) F
4(z) = (z + 1)
( z + 1
3 ) (
z − 1 3
)
(z − 1) = z
4− 10 9 z
2+ 1
9 . F
4(z)Φ(z) = 2
( 1 z + 1
3z
3+ 1 5z
5+ 1
7z
7+ · · · ) (
z
4− 10 9 z
2+ 1
9 )
= 2z
3− 14
9 z + · · ·
であるから、G
4(z) = 2z
3− 14
9 z.
Λ(z) = G
4(z) F
4(z) =
2z
3− 14 9 z (z + 1) (
z +
13) ( z −
13)
(z − 1) = 1 4 · 1
z + 1 + 9 4 · 1
z + 1/3 + 9 4 · 1
z − 1/3 + 1 4 · 1
z − 1 .
ゆえにx
1= − 1, w
1= 1
4 , x
2= − 1/3, w
2= 9
4 , x
3= 1/3, w
3= 9
4 , x
4= 1, w
4= 1 4 . I
4= 1
4 (
f ( − 1) + 9f (
− 1 3
) + 9f
( 1 3
)
+ f(1) )
.
これは一般の区間[a, b]
の場合にはI
4= b − a 4
(
f(a) + 9f
( 2a + b 3
) + 9f
( a + 2b 3
)
+ f (b) )
に対応している。また
Λ(z) = 2 z + 2
3z
3+ 14
27z
5+ · · · Φ(z) − Λ(z) = − 16
135z
5− 368
1701z
7− · · ·
ゆえに
a
1= a
2= a
3= a
4= 0.
これは4
位の公式であることを示す(n = 3
の場合よりも複雑 になったのに、位数は改善されない)
。n = 5
の場合G
5(z) = 2z
4− 11
6 z
2+ 1 15 , Λ(z) = G
5(z)
F
5(z) = 1 90
( 14
z + 1 + 64
z + 1/2 + 24
z + 64
z − 1/2 + 14 z − 1
) .
Ψ(z) = Φ(z) − Λ(z) = − 1
21z
7− 17
180z
9− 23
176z
11− · · ·
ゆえに位数は6.
Mathematica
のSeries[
式, {
変数,
点,
次数} ]
で、Taylor
展開やLaurent
展開の最初 の有限項の計算が出来る。点としてInfinity
が指定できて、無限遠点の周りのLaurent
展 開が計算出来る。有限項しか得られないが、それで一般項を推測出来れば、Sum[ ]
を使って、その推測が正しいかチェックすることが出来る。
「複素関数」でやった計算を
Mathematica
にさせてみる
f[z_]:=1/(3+z)
Series[f[z],{z,0,4}]
Series[f[z],{z,Infinity,4}]
これで
0
の周りのTaylor
展開1
3 + z = 1 3 − z
9 + z
227 − z
381 + z
4243 + O(z
5),
∞
の周りのLaurent
展開1
3 + z = 1 z − 3
z
2+ 9 z
3− 27
z
4+ O ( 1
z
5)
が得られる。
なお、
Apart[]
で部分分数分解が出来る。例
6.5
をMathematica
でどう計算したか
Phi[z_]:=Log[(z+1)/(z-1)]
Series[Phi[z],{z,Infinity,10}]
F[n_,z_]:=Product[(z-(-1+2(j-1)/(n-1))),{j,1,n}]
Series[Phi[z]F[3,z],{z,Infinity,10}]
この結果を読み取る。
G3[z_]:=2z^2-4/3 Apart[G3[z]/F[3,z]]
Series[Phi[z]-G3[z]/F[3,z],{z,Infnitiy,10}]
もう少し自動化出来る。
G[n_,z_]:=Normal[Series[Phi[z] F[n,z],{z,Infinity,0}]]
G[3,z]
Apart[G[3,z]/F[3,z]]
Series[Phi[z]-G[3,z]/F[3,z],{z,Infnitiy,10}]
例
6.7 (26)
の右辺の最初の項2/z
を取ると、つまり、Λ(z) =
2z(F (z) = z, G(z) = 2)
とす ると、x
1= 0, w
1= 2.
これは
(27) I
1= 2f(0) = (b − a)f
( a + b 2
)
ということを意味している。これは中点公式である。
6.4 有理関数の積分への応用
数値積分公式の誤差を、誤差の特性関数の積分の形に表した。そこから先の誤差解析には、
一般には鞍点法と呼ばれる積分の近似計算法が有効であるが、その話をすることは諦め
(
これ については、森[22], [1]
が参考になる)
、ここでは簡単な(
被積分関数が有理関数である)
場合 だけを考える。この場合は留数定理だけで解決する。[a, b]
は実軸上の有限区間(a, b ∈ R , a < b), p(x) = 1
とする。このとき、Φ
は(28) Φ(z) =
∫
b a1
z − x dx = Log z − a
z − b (z ∈ C \ [a, b]).
命題
6.8 [a, b]
はR
内の閉区間, P (z), Q(z) ∈ C [z], deg P (z) ≥ deg Q(z) + 1, ( ∀ x ∈ [a, b]) P (x) ̸ = 0, f (z) := Q(z)
P (z)
とするとき、∫
ba
f (x) dx = −
∑
m j=1Res (f Φ; c
j) .
ただし、
Φ
は(28)
で定義した関数であり、c
1, . . . , c
m をP (z)
のすべての零点とする。
(
一松[4]
のp. 118
の定理5.3
には、∫
ba
f(x) dx =
∑
m j=1Res (f · Φ; α
j)
と書いてあるが、これは 誤植で、右辺は負号−
が落ちていると考えられる。)証明
(講義をするときは、大きな図を黒板に描くこと。 ) I :=
∫
ba
f (x) dx
とおく。c1, · · · , c
mは
[a, b]
上にはないので、[a, b]
を正の向きに一周す区分的に滑らかな単純閉曲線Γ
を、曲線上と曲線の囲む範囲に
c
1, · · · , c
m が存在しないように選べる。既に紹介した論法で次が得ら れる。(29) I = 1
2πi
∫
Γ
f (z)Φ(z) dz.
R
が十分大きな正数ならば、円C
R: | z | = R
は、その内部にすべてのc
j と、Γ
を含む。この とき、留数定理から1 2πi
∫
CR
f (z)Φ(z) dz − I = 1 2πi
∫
CR−Γ
f (z)Φ(z) dz =
∑
m j=1Res (fΦ; c
j) .
z → ∞
のときΦ(z) → 0
であるから、十分遠方では、| f(z)Φ(z) | ≤ M
| z |
2 が成り立つので、R → ∞
とするとき、1 2πi
∫
CR
f(z)Φ(z) dz → 0.
ゆえにI = −
∑
m j=1Res (fΦ; c
j) .
系
6.9 [a, b]
はR
内の閉区間, P (z), Q(z) ∈ C [z], deg P (z) ≥ deg Q(z) + 1, ( ∀ x ∈ [a, b]) p(x) ̸ = 0, f (z) := q(z)
P (z)
とするとき、I =
∫
ba
f (x) dx
をI
n=
∑
n k=1w
kf(x
k)
で数値積分す るとI − I
n= −
∑
m j=1Res (f · Ψ ; c
j) , Ψ (z) := Log z − a z − b −
∑
n k=1w
kz − x
k.
ただしc
1, . . . , c
m はP (z)
のすべての零点とする。
証明 命題
6.8
の証明と同様にして、I
n= −
∑
m j=1Res (f Λ; c
j) .
ゆえにI − I
n= −
∑
m j=1(Res (fΦ; c
j) − Res (f Λ; c
j)) = −
∑
m j=1Res (f (Φ − Λ); c
j)
= −
∑
m j=1Res (fΨ; c
j) .
(f · Ψ
の留数を計算出来るくらいならば、f · Φ
の留数を計算して、I
を求めることが出来 る場合が多いはずである。系6.9
は、何のために使うのか、ちょっと変な感じがしないでもな い。しかし、誤差のメカニズムが見える式で、参考になる。実際に後の数値例6.12
は面白い(
初めて理解したとき少し震えました)
。)
余談
6.10 (29)
をこれまでは、Cauchy
の積分公式と積分の順序交換を用いて証明したが、ε
lim
→+0(
Log z − a z − b
z=x+iε
− Log z − a z − b
z=x−iε
)
= − 2πi
を用いて、積分路の変形で証明することも出来る。というか、そういう解説をしてある文書が 割と多い。
問
2. c
がf
の1
位の極ならば、Res(fΦ; c) = Res(f ; c)Φ(c)
であることを示せ。例
6.11 (
命題6.8
の直接的な応用)
I =
∫
1−1
dx
x
4+ 1 .
この場合は
Φ(z) = Log z + 1
z − 1 . c
がz
4+ 1 = 0
の根であるとき、c
はf (z) := 1
z
4+ 1
の1
位の 極であり、Res (f Φ; c) = Φ(c) Res(f; c) = Φ(c) 1 (z
4+ 1)
′z=c
= Φ(c) 1
4c
3= Φ(c) c
4c
4= − cΦ(c) 4
であるからI = − ∑
c=1+i√ 2,−1+i√
2 ,−1−i√ 2 ,−1−i√
2
Res (f Φ; c) = 1 4
∑
c=1+i√ 2,−1+i√
2 ,−1−i√ 2 ,−1−i√
2
cΦ(c)
= 1
√ 2 Log (
1 + √ 2
)
+ π
2 √ 2 .
最後のところの計算は実は少し面倒で、あまり試験向きではない。教師として残念だ
(笑)。
Mathematica
にやらせてみたらπ + arctanh(2 √ 2/3) 2 √
2
となった。一応一致しているようだ(
ち ょっと分かりにくい…)
。6.5 誤差の特性関数の例 (1) 有限区間の場合の古典的公式
[a, b] = [ − 1, 1], p(x) = 1
の場合の21
点複合シンプソン公式S
20a = − 1, b = 1, m = 10, n = 2m + 1, h = b − a 2m , Λ(z) = h
3 (
f(a) + 2
m−1
∑
j=1
f (a + 2jh) + 4
∑
m j=1f(a + (2j − 1)h) )
+ f (b).
これは
x
k= a + kh (k = 0, 1, . . . , 2m), w
k=
h/3 (k = 0, 2m)
2h/3 (k = 2j , j = 1, 2, . . . , m − 1) 4h/3 (k = 2j − 1, j = 1, 2, . . . , m)
とおくと、Λ(z) =
∑
2m k=0w
kz − x
k と書ける。Φ(z) = Log z + 1
z − 1 , Ψ(z) = Φ(z) − Λ(z)
として、
| Ψ(z) | ( − 4 ≤ Re z ≤ 4, − 4 ≤ Im z ≤ 4)
の等高線を描いてみる。(これは森 [1]
にある図と見比べるためである。)プログラムは、付録
G
を見よ。z
平面において、積分区間[a, b]
から遠ざかると、| Ψ(z) |
が急速に減少することが分かる。このような挙動が多くの数値積分公式に共通して見られることは、6.3 で述べたことから理解 できる。
この図は実際的な誤差評価に使うことが出来る。
-4 -2 0 2 4 -4
-2 0 2 4
-8 -7 -6 -5 -4
図
12: 21
点複合シンプソン公式の誤差の特性関数
(絶対値の常用対数)
図
13:
森[21]
から| Φ
n(z) | for Simpson’s formula (h = 0.1)
例
6.12 (
森[21]
から引用) I =
∫
1−1
1
x − 2 dx = − log 3 = − 1.0986 12288 · · ·
被積分関数は有理関数で、2
を唯一の極に持つ。留数はRes ( 1
z − 2 ; 2 )
= 1,
Dalam dokumen
数値積分ノート
(Halaman 37-42)