数値解析と複素関数論・佐藤超函数論
Fourier 変換の数値計算を通して
緒方 秀教
電気通信大学

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

2021 年 5 月 22 日（土）数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し
緒方秀教

はじめに
今回のテーマ
数値解析と複素関数論・佐藤超函数論（複素関数論に基づく一般化関数の理論）．
複素解析関数（正則関数）とは？
複素関数として微分可能（Cauchy-Riemann の関係式）．
実用上現れる関数は解析関数が多い（多項式，三角関数，指数関数，特殊関数，…）．
遠く離れた 2 点での値が密接に結びついている．

Cauchy の積分定理
留数定理（→実積分の計算への応用）．
数値解析における複素解析関数の意義をFourier 変換の数値計算を通して考えてみたい．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

今回の内容1

Fourier 変換：数値計算の難しさ

2

Fourier 変換の数値計算

3

数値例

4

Fourier 変換計算と複素関数論

5Fourier 変換計算と佐藤超函数論

6まとめ

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(1/6) Fourier 変換：数値計算の難しさ

関数 f (x) の Fourier 変換

F [f ](ξ) =Z ∞f (x) exp(−2πiξx)dx.

−∞

科学技術研究で重要である（振動波動現象 etc.）．
減衰の遅い関数 f (x) に対しては，従来の数値積分法では計算が難しい．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(1/6) Fourier 変換：数値計算の難しさ

DE 公式による減衰の遅い関数の全無限区間積分の数値計算例．
Z ∞dx= π(= 3.14159 26535 89793 . . .).
(1)
1+x2
−∞
標本点数

計算値

誤差1321393.14168 64575 30666
3.14159 25866 30724
3.14159 26535 89794

3 × 10−5
2 × 10−8
3 × 10−16

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(1/6) Fourier 変換：数値計算の難しさ
DE 公式による減衰の遅い関数の全無限区間積分の数値計算例．
振動積分（Fourier 変換）の場合．
Z ∞cos 2πx(2)dx = πe−2π (= 1.15572 73497 90922 . . .).
2−∞ 1 + xh

標本点数

計算値

誤差

1.58125 37966 15643
1.34196 68485 53180
1.11369 34847 54938
1.26481 85622 97596
1.17117 00197 53101

4 × 10−1
2 × 10−1
4 × 10−2
9 × 10−2
1 × 10−2

N+ + N− + 1

1−122−22−32−413213973143

振動積分は一向に収束しない．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(2/6) Fourier 変換の数値計算

どうすれば Fourier 変換を計算できるだろうか？

Fourier 変換を次のように書き直す：
Z 0
Z ∞
−2πi(ξ+iǫ)x−2πi(ξ−iǫ)x
F [f ](ξ) = lim
f (x)edx +dx
f (x)eǫ→+0−∞0

右辺の積分：指数関数的減衰する因子 exp(−2πǫ|x|) を含む．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(2/6) Fourier 変換の数値計算
F [f ](ξ) = lim {F+ [f ](ξ + iǫ) − F− [f ](ξ − iǫ)} ,ǫ→+0Z ∞F± [f ](ζ) = ±f (∓x)e±2πiζx dx ( ± Im ζ > 0 ).
0F± [f ](ζ) は上／下半平面 ± Im ζ > 0 における解析関数である．
F± [f ](ζ) の被積分関数は指数関数的減衰する因子 exp(−2π| Im ζ|x)を含むので，従来の数値積分公式で計算できる．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(2/6) Fourier 変換の数値計算
F [f ](ξ) = lim {F+ [f ](ξ + iǫ) − F− [f ](ξ − iǫ)} ,ǫ→+0Z ∞F± [f ](ζ) = ±f (∓x)e±2πiζx dx ( ± Im ζ > 0 ).
0F± [f ](ζ) は上／下半平面 ± Im ζ > 0 における解析関数である．
F± [f ](ζ) の被積分関数は指数関数的減衰する因子 exp(−2π| Im ζ|x)を含むので，従来の数値積分公式で計算できる．
Fourier 変換の数値計算法
1上／下半平面 ± Im ζ > 0 で解析関数 F± [f ](ζ) を従来の数値積分公式で計算する．

2

解析関数 F± [f ](ζ) を実軸上に解析接続する（定義域を広げる）．

3

Fourier 変換 F [f ](ξ) = F+ [f ](ξ) − F− [f ](ξ) を得る．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(2/6) Fourier 変換の数値計算
Fourier 変換の数値計算法
1

上／下半平面 ± Im ζ > 0 で解析関数 F± [f ](ζ) を計算する．
Z ∞F± [f ](ζ) = ±f (∓x)e±2πiζx dx ( ± Im ζ > 0 ).
0(±)

上／下半平面 ± Im ζ > 0 に点 ζ0 を適当に取り，(±)
ζ0 における F± (ζ) の Taylor 級数を求める．

F± [f ](ζ) =∞X(±)

cn(±) (ζ − ζ0 )n ,n=01cn(±) = ±n!

Z ∞

(±)

(±2πix)n f (∓x)e±2πiζ0xdx( n = 0, 1, 2, . . . ).

0(±)

被積分関数は指数関数的減衰する因子 exp(−2π| Im ζ0 |x) を含むので，従来の数値積分公式で計算できる．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(2/6) Fourier 変換の数値計算
Fourier 変換の数値計算法
2解析関数 F± [f ](ζ) を実軸上に解析接続する（定義域を広げる）．

3

Fourier 変換 F [f ](ξ) = F+ [f ](ξ) − F− [f ](ξ) を得る．

前項で求めた Taylor 級数を連分数に変換して解析接続を行う(±)

a0

F± [f ](ζ) =(±)1+(±)

a1 (ζ − ζ0 )
(±)

1+.

(±)

a2 (ζ − ζ0 ).
1 + ..

一般に連分数関数は Taylor 級数より収束域が広い．

Taylor 級数→連分数：「商差法」を用いる．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(3/6) 数値例(1) F [(1 + x 2 )−1 ](ξ) = πe−2π|ξ| ,(2) F [tanh(πx)](ξ) = −i cosech(πξ),1.
(3) F [log |x|](ξ) = −γδ(ξ) −2|ξ|本研究の方法で Fourier 変換 F [f ](ξ) を計算し，誤差を調べた．
多倍長演算（10 進 100 桁）．

F± [f ](ζ) の Taylor 係数：DE 公式で計算．
次の論文から結果を引用．
H. Ogata: Numerical calculation of Fourier transforms based on
hyperfunction theory, Journal of Computational and Applied
Mathematics, 378 (2020) 112921, DOI: 10.1016/j.cam.2020.112921

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(3/6) 数値例

1e+000relative error

Re F [f ](ξ)

4.0

3.0

2.0

1.0

1e-0101e-0201e-0301e-0401e-0501e-0601e-0701e-0800.0-2.0

1e-090-1.00.0

ξRe F [f ](ξ)

1.0

2.0-2-1.5-1-0.500.5

ξrelative error

11.5

2(1) f (x) = (1 + x 2 )−1 , F [f ](ξ) = πe−2π|ξ| .

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し
緒方秀教

25.0

1e+00020.0

1e-010relative error

Im F [f ](ξ)(3/6) 数値例

15.0
10.0
5.0
0.0
-5.0-10.0

1e-0301e-0401e-0501e-0601e-070-15.0

1e-080-20.0-25.0-2.0

1e-0201e-090-1.00.0

ξIm F [f ](ξ)

1.0

2.0-2-1.5-1-0.500.5

ξrelative error

11.5

2(2) f (x) = tanh(πx), F [f ](ξ) = −i cosech(πξ).

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(3/6) 数値例

1e+000relative error

Re F [f ](ξ)

0.0-5.0

-10.0

-15.0

1e-0101e-0201e-0301e-0401e-0501e-0601e-070-20.0

1e-080-25.0

1e-090-2-1.5-1-0.500.5

ξRe F [f ](ξ)

11.5

2-2-1.5-1-0.5

00.5

ξrelative error(3) f (x) = log |x|, F [f ](ξ) = −γδ(ξ) −

1

1.5

21.
2|ξ|

以上の数値例から，本方法の有効性が示された．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(3/6) 数値例（比較実験）
既存の方法との比較．
（杉原）Richardson 補外& DE 公式．
（大浦・森）振動積分に特化した DE 公式．

F [f ](ξ = 1) を計算した．
ǫ：相対誤差，N ：関数 f (x) の計算回数．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(3/6) 数値例（比較実験）
既存の方法との比較．
（杉原）Richardson 補外& DE 公式．
（大浦・森）振動積分に特化した DE 公式．

F [f ](ξ = 1) を計算した．
ǫ：相対誤差，N ：関数 f (x) の計算回数．
(1) (1 + x 2 )−1f (x)−39(2) tanh(πx)(3) log |x|−76

9 × 10−391252

本方法

ǫ
N

3 × 101242

杉原

ǫ
N

1.4 × 10−1927072

9 × 10−2053114

4 × 10−2035280

大浦・森

ǫ
N

7 × 10−631690

5 × 10−571618

1 × 10−691698

5 × 101202

既存の方法と比べて，本方法は有効であることがわかる．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(4/6) Fourier 変換計算と複素関数論
Fourier 変換の数値計算法の話を整理する．
Z ∞F [f ](ξ) =f (x)e−2πiξx dx = F+ [f ](ξ + i0) − F− [f ](ξ − i0),−∞Z ∞F± [f ](ζ) = ±f (∓x)e±2πiζx dx ( ± Im ζ > 0 ).
01

実軸上の実関数 F [f ](ξ) よりも複素平面上の複素関数 F± [f ](ζ) の方が計算しやすい．

2

前項の複素関数 F± [f ](ζ) を実軸上に解析接続して，Fourier 変換
F [f ](ξ) を求める．

3

これが可能なのは，F± [f ](ζ) が複素解析関数であるからである．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(4/6) Fourier 変換計算と複素関数論
F± [f ](ζ) は上／下半平面 ± Im ζ > 0 での解析関数である．
ところで，複素解析関数（正則関数）とは何だったか？
複素関数として微分可能（Cauchy-Riemann の関係式）．
実用上現れる関数は解析関数が多い（多項式，三角関数，指数関数，特殊関数，…）．
遠く離れた 2 点での値が密接に結びついている．

Cauchy の積分定理
If (z)dz = 0 ( C : 閉積分路 ).
C留数定理（→実積分の計算への応用）．
この性質を Fourier 変換の数値計算に利用した．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方

秀教

(4/6) Fourier 変換計算と複素関数論
Fourier 変換計算の話に戻ると，
F [f ](ξ) = F+ [f ](ξ + i0) − F− [f ](ξ − i0).

F± [f ](ζ)：上／下半平面 ± Im ζ > 0 における複素解析関数．
F± [f ](ζ)：実軸上よりも複素平面上の方が計算しやすい．
複素平面上の値から，実軸上の値 F± [f ](ξ ± i0) を読み取った．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(4/6) Fourier 変換計算と複素関数論
Fourier 変換計算の話に戻ると，
F [f ](ξ) = F+ [f ](ξ + i0) − F− [f ](ξ − i0).

F± [f ](ζ)：上／下半平面 ± Im ζ > 0 における複素解析関数．
F± [f ](ζ)：実軸上よりも複素平面上の方が計算しやすい．
複素平面上の値から，実軸上の値 F± [f ](ξ ± i0) を読み取った．

Fourier 変換計算における解析関数の意義遠く離れた 2 点での値が密接に結びついている．
複素平面上の計算しやすい所で計算して，実軸上での値を見積もる（解析接続）．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(5/6) Fourier 変換計算と佐藤超函数論

佐藤超函数論佐藤幹夫，1958 年．
複素関数論に基づく一般化関数論．
超函数 (hyperfunction) とよばれる一般化関数 f (x) はある複素解析関数 F (z) の実軸 R 上の境界値の差で表される．

f (x) = [F (z)] := F (x + i0) − F (x − i0).
F (z)：超函数 f (x) の定義関数．
∗ 超函数には Schwartz による流儀もある (distribution)．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(5/6) Fourier 変換計算と佐藤超函数論
超函数の例

Dirac のデルタ関数 δ(x)．
(Z ∞+∞ ( x = 0 )δ(x) =f (x)δ(x − a)dx = f (a).
0
( x 6= 0 ),−∞
1−111
δ(x) ==−.
−2πiz
2πi x + i0 x − i0
Heaviside のステップ関数 Y (x)．
(1 (x > 0)
Y (x) =0 ( x < 0 ).

1log(−z) .
Y (x) = −2πi∗ 複素対数関数 log z は主値（log x ∈ R (x > 0) なる分枝）をとる．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(5/6) Fourier 変換計算と佐藤超函数論
ステップ関数 Y (x) の定義関数

F (z) = −1log(−z)
2πiのグラフ．実軸 R 上の境界値の差

F (x + i0) − F (x − i0)がステップ関数 Y (x) を表していることがわかる．

0.50.40.30.20.1Re(F(z)) 0-0.1-0.2-0.3-0.4-0.5-2 -1.5-1 -0.5Re(z)0 0.5-1-1.5
1 1.5
2 -20-0.5

10.5

21.5Im(z)数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(5/6) Fourier 変換計算と佐藤超函数論
Fourier 変換の数値計算との関連．
F [f ](ξ) = F+ [f ](ξ + i0) − F− [f ](ξ − i0),Z ∞F± [f ](ζ) = ±f (∓x)e±2πiζx dx ( ± Im ζ > 0 ).
0複素解析関数 F± [f ](ζ) の実軸上の境界値の差！
これが佐藤超函数論における Fourier 変換の定義．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(5/6) Fourier 変換計算と佐藤超函数論
Fourier 変換の数値計算との関連．
F [f ](ξ) = F+ [f ](ξ + i0) − F− [f ](ξ − i0),Z ∞F± [f ](ζ) = ±f (∓x)e±2πiζx dx ( ± Im ζ > 0 ).
0複素解析関数 F± [f ](ζ) の実軸上の境界値の差！
これが佐藤超函数論における Fourier 変換の定義．

Fourier 変換の計算：佐藤超函数論との関連
Fourier 変換 F [f ](ξ) は F± [f ](ζ) ( ± Im ζ > 0 ) を定義関数とする超函数である．
今回示した Fourier の数値計算法は，佐藤超函数論におけるFourier 変換の定義をなぞったものである．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教

(6/6) まとめ
Fourier 変換
F [f ](ξ) =Z ∞f (x)e−2πiξx dx.

−∞

実は数値計算が難しい．
（Fourier 変換の数値計算）

F [f ](ξ) = F+ [f ](ξ + i0) − F− [f ](ξ − i0),F± [f ](ζ) : 上／下半平面 ± Im ζ > 0 での解析関数．
実数の世界では計算が難しいものを複素数の世界で計算して，実数の世界に戻した（解析接続）．
こんな事ができるのは，複素解析関数は離れた 2 点の値が密接に結びついているからである．
佐藤超函数論との関連．

数値解析と複素関数論・佐藤超函数論 Fourier 変換の数値計算を通し緒方秀教