数値解析と複素関数論 (6)
数値積分：変数変換の応用
緒方 秀教
電気通信大学

大学院情報理工学研究科 情報・ネットワーク工学専攻

2021 年 2 月 9 日（火）緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用

前回の復習：全無限区間積分に対する台形則
台形則は解析関数の全無限区間積分に強い．
Z ∞
N+∞
XX
f (kh)f (kh) ≃ hf (x)dx ≃ h
−∞

高精度.

k=−N−k=−∞f (z) は帯状閉領域
Dd ≡ { z ∈ C | | Im z| ≤ d }(d >0)を含む領域で解析的である．

N(f , d) ≡I|f (z)||dz| < ∞,∂Ddlimx→±∞

Z d|f (x + iy )|dy = 0.

−dこのとき，台形則は指数関数的収束する：

Z ∞−∞f (x)dx − h∞X
2πdf (kh) . N(f , d)exp −.
hk=−∞
緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用

今回の内容「台形則は解析関数の全無限区間積分に有効である」
この事実を任意の（有界）区間上の積分

Z bf (x)dx( −∞ < a < b < +∞ :)aに応用したい．
変数変換の利用．
変数変換の例：「SE 変換」
詳細な理論誤差評価．
数値例．

緒方

秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用

任意の区間上の数値積分→変数変換
台形則は解析関数の全無限区間積分に強い．
この事実を任意の（有界）区間上の数値積分

Z bf (x)dxa( −∞ < a < b < +∞ )に活かせないか？

緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用任意の区間上の数値積分→変数変換
台形則は解析関数の全無限区間積分に強い．
この事実を任意の（有界）区間上の数値積分

Z bf (x)dxa( −∞ < a < b < +∞ )に活かせないか？
変数変換というアイディア
変数変換 x = ψ(u) により全無限区間積分にして，台形則を適用する．

Z baf (x)dx =Z ∞−∞f (ψ(u))ψ ′ (u)du ≃ hN+Xf (ψ(kh))ψ ′ (kh).

k=−N−f (ψ(u))ψ ′ (u) が全無限区間 (−∞, +∞) で解析的なら，高精度（指数関数的収束）が期待できる．
緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用

（注意）以降，積分区間を (−1, 1) とする．

Z 1f (x)dx.

−1

任意の有界区間上の積分→ (−1, 1) 上の積分にできる．

Z bab−af (x)dx =2

緒方

Z 1−1秀教fb+a b−a+ξ dξ.
22

数値解析と複素関数論 (6) 数値積分：変数変換の応用

変数変換の選び方
変数変換はどのようなものをとればいいだろうか？

Z 1−1f (x)dx =Z ∞f (ψ(u))ψ ′ (u)du−∞

≃h∞
X

k=−∞

⋆

f (ψ(kh))ψ ′ (kh) ≃ hN+X

f (ψ(kh))ψ ′ (kh).

k=−N−⋆ 台形則の無限和を有限和に打ち切る．
|f (ψ(kh))ψ ′ (kh)| が十分小さくなったら和を打ち切る．
⇓|f (ψ(kh))ψ ′ (kh)| が遠方 u → ±∞ で急減少 し，少ない項数 N+ + N− + 1 で無限和を打ち切れるものがよい．

緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用

SE 変換，SE 公式
SE 変換 ∗1psi(u),psi’(u)(single exponential transform)uψSE (u) = tanh ,20.50-0.5

SE 公式 ∗ ：SE 変換& 台形則．

psi(u)psi’(u)-1-4-2024u∗ 一般的な呼称でない．
Z 1−1f (x)dx =Z ∞′f (ψSE (u))ψSE(kh) ≃ h−∞′ψSE(u) =N+X

′f (ψSE (kh))ψSE(kh),k=−N−1/2≃ 2 exp(−|u|)cosh2 (u/2)( u → ±∞ ).

′ψSE(u) は遠方で（一重）指数関数的減衰する．

→ 少ない項数 N+ + N− + 1 で台形則の無限和を打ち切れる．
緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用

SE 公式：端点特異性を持つ積分

SE 公式は端点特異性を持つ積分に対しても有効である．

Z 1−1f0 (x)(1 − x 2 )α−1 dx

Z 1−1f0 (x) : x = ±1 近傍で有界 )( α > 0,f0 (x)(1 − x 2 )α−1 dx =⇓Z ∞≃hf0 (ψSE (u))−∞
N+X

k=−N−1/2
ducosh2α (u/2)

f0 (ψSE (kh))

1/2.
cosh (kh/2)2α遠方で指数関数的減衰する．

緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用

SE 公式の理論誤差解析
SE 公式の誤差には 2 種類ある．
Z 1−1Z 1≤−1|f (x)dx − hf (x)dx − h

N0X′f (ψSE (kh))ψSE(kh)k=−N0∞
X′f (ψSE (kh))ψSE(kh) + hk=−∞{z(1) 離散化誤差}∗ 簡単のため N+ = N− = N0 とする．
1X′f (ψSE (kh))ψSE(kh) .

|k|>N0|{z(2) 打切り誤差

離散化誤差：積分を台形則（無限和）で近似することによる誤差．
前回の動画で評価した．

2

打切り誤差：台形則の無限和を有限和で打ち切ることによる誤差．
今回新たに評価しなければならない．

緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用}

SE 公式の誤差（離散化誤差）
全無限区間積分に対する台形則の誤差評価より，次の定理を得る．
定理 1：SE 公式の誤差評価 (1)f (z) は次の集合を含む領域で解析的である．

1+zDdSE ≡ z ∈ C log≤d1−z( 0 < d < π ).
f (z) は次を満たす．
INSE (f , d) ≡|f (z)||dz| < ∞,∂DdSElimu→±∞Z d′|f (ψSE (u + iv ))ψSE(u + iv )|dv = 0.

−d

このとき，SE 公式の離散化誤差について次が成り立つ．

Z 1−1f (x)dx − h∞
Xk=−∞


2πd′
f (ψSE (kh))ψSE(kh) . NSE (f , d) exp −.
h
緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用

SE 公式の誤差（打切り誤差）
SE 変換後の被積分関数は指数関数的減衰すると仮定する．
′|f (ψSE (u))ψSE(u)| ≤⇐⇒A/2
cosh2a (u/2)( u ∈ R, A, a > 0 const. )|f (x)| ≤ A(1 − x 2 )a−1

( −1 < x < 1 ).

f (x) は端点 x = ±1 にベキ的特異性を持ってもよい．
打切り誤差の評価：
hX|k|>N0∞
X1≤A2acosh (kh/2)
k=N0 +1Z ∞≤ 22a Aexp (−au) du′f (ψSE )(kh))ψSE(kh) ≤ Ah

Z ∞duN0 h cosh (u/2)
2aN0 h a 
22a A2 A
exp (−aN0 h) ≃exp − Nhaa22a=（N = 2N0 + 1：全標本点数）.
緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用

SE 公式の理論誤差解析

定理 2：SE 公式の誤差評価 (2)f (z) は定理 1 の条件に加えて次の条件を満たすとする：|f (x)| ≤ A(1 − x 2 )a−1

( −1 < x < 1,A, a > 0const. ).

このとき，SE 公式の誤差について次が成り立つ．

Z 1−1

f (x)dx − hN0X′(kh)f (ψSE (kh))ψSE

k=−N0
 a 
2πd22a A+exp − Nh. NSE (f , d) exp −ha2

( N = 2N0 + 1 ).

緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用

SE 公式の理論誤差解析
SE 公式は独立な 2 つのパラメータをもつ．
台形則の刻み幅 h．
標本点数 N.

 a 
2πd+ C2 exp − Nh .
SE 公式の誤差 = C1 exp −h2

N と h の関係をうまく定めて，誤差が小さくなるようにしたい．
N を固定して h を動かすと，

2πdh を小さくすると減少する．
離散化誤差 O exp −hh a ih を小さくすると増大する．
打切り誤差 O exp − Nh2

緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用

SE 公式の理論誤差解析
打切り誤差

離散化誤差

大雑把に考えて，離散化誤差 ≈ 打切り誤差となるように h と N の関係を定めると，全体の誤差は最小に近くなるだろう．

2πd
離散化誤差 = O exp −h緒方秀教

h a i
打切り誤差 = O exp − Nh ,2r2πd4πda= Nh, ∴ h =,h2aNh √i√
2 つの誤差 = O exp − πda N . .
,数値解析と複素関数論 (6) 数値積分：変数変換の応用

SE 公式の理論誤差解析
定理 3：SE 公式の誤差評価 (3)f (z) は定理 1，2 の条件を満たすとする．
このとき，SE 公式の誤差について次が成り立つ：

Z 1−1f (x)dx − hN0
X

k=−N0 √ ′f (ψSE (kh))ψSE(kh) . C exp −c N( C, c > 0const. ),ただし，標本点数 N に対し台形則の刻み幅 h は次で与えるとする．
r4πdh=aN∗ 実際の数値積分計算では，離散化誤差 ≈ 打切り誤差 とするわけではないので，上の誤差評価は必ずしも成立しない．

緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用

数値例
Z 1πdx= .
22−1 1 + x

次の 2 つの数値積分則で計算し，誤差を比較した．

SE 公式．
′|f (ψSE (kh))ψSE(kh)| < 10−100 なる項で無限和を打ち切る．

従来の台形則Z 1−1f (x)dx ≃ h()N−1X1
1f (−1 + kh) + f (1)f (−1) +2
2k=1

h=2N



多倍長演算（10 進 100 桁），exflib を使用．
exflib の使い方（C++の場合）
http://www-an.acs.i.kyoto-u.ac.jp/~fujiwara/exflib/exflib-gsc.html

緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用.

111×10−20

1×10−20

1×10

relative error

relative error

数値例−40trapezoidalSE

1×10−60
1×10−80
1×10−100

1×10−40
1×10−60
1×10−80

05000

10000
N15000(a) 標本点数 N に対する誤差の変化

1×10−10004812 16 20 24 28 32
1/h(b) 刻み幅の逆数 1/h に対する誤差の変化

SE 公式は通常の台形則に比べて極めて効率的である．
SE 公式の誤差は 1/h に対して指数関数的減衰する．

2πd,離散化誤差 = O exp −h緒方秀教

打切り誤差 ≈ 0.

数値解析と複素関数論 (6) 数値積分：変数変換の応用

数値例
積分区間端点にベキ的特異性をもつ積分

Z 1−1f0 (x)(1 − x 2 )a−1 dx =Z ∞f0 (ψSE (u))−∞

1/2du.
cosh2a (u/2)∗ あらかじめ「手計算」で右辺の形に書き直してから数値計算する．
桁落ち↓ を避けるため．

1 −（1 に非常に近い数）=（有効桁数の落ちた数）.

次の積分を SE 公式で計算して，誤差を調べた．

Z 1dx√= π.
1− x2−1′|f (ψSE (kh))ψSE(kh)| < 10−100 なる項で無限和を打ち切る．

緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用

1

1

1×10−20

1×10−20
relative error

relative error

数値例

1×10−40
1×10−60
1×10−80
1×10

1×10−40
1×10−60
1×10−80

−100

05000

10000

1×10−100

15000

04N(a) 標本点数 N に対する誤差の変化

81/h

1216(b) 刻み幅の逆数 1/h に対する誤差の変化

SE 公式の誤差は 1/h に対して指数関数的減衰する．
2πd
離散化誤差 = O exp −h
緒方秀教

,打切り誤差 ≈ 0.

数値解析と複素関数論 (6) 数値積分：変数変換の応用

まとめ

台形則：全無限区間上の解析関数の積分に有効．
変数変換により，任意の区間上の積分を精度良く計算できる．
（具体例）SE 変換．
詳細な理論誤差評価（離散化誤差＋打切り誤差）．
次回の予定

DE 公式（二重指数関数型数値積分公式）．
DE 変換（二重指数関数型変換）：最適な変数変換．

緒方秀教

数値解析と複素関数論 (6) 数値積分：変数変換の応用