フーリエ変換をどうやって数学的に扱うのかのざっくりした話

# はじめに
みなさんこんにちは、フーリエ変換やっていますか？？

なお、やや厳密に欠ける説明ですが、関数$f:\mathbb{R}^n \to R$のフーリエ変換は、
```math
\mathcal{F}[f](\xi)=\frac{1}{\sqrt{2\pi}}\int_{\mathbb{R}^n} f(x)e^{-ix\cdot \xi} dx
```
と定義されます。
($\frac{1}{\sqrt{2\pi}}$の部分は色々な流儀があります。$x$, $\xi$はベクトルで、$\cdot$は内積であることに注意してください。)
フーリエ変換は、関数を三角関数の波数空間に飛ばすものでした。(この内容が分からなければ、調べれば文献はたくさん出てくると思います。)

フーリエ変換は工学部などでは大学2年生、理学部の数学専攻の人などは大学3年生で学ぶ内容です。
早速ですが、なぜこのように工学部と数学専攻では勉強するタイミングが異なるのでしょうか？？

その理由は、フーリエ変換は、「厳密に扱おうとすると数学的に少し難しいから」です。
「どのように難しいのか」、そして、どのように数学的に扱うのかをざっくり解説していきたいと思います。
(後ろの方で具体的に超関数を扱ってみるところが楽しいと思います。)

# どうして数学的に難しいのか？
まず1点目の理由を述べましょう。
1点目の理由は、フーリエ変換をした結果が関数で表せないことがあるということです。
例えば、$\exp(i2\pi \nu x)$をフーリエ変換しようとすると、積分が発散してしまい、フーリエ変換をすることができません。
しかし、イメージ的には波数空間の$\nu$のところにだけ大きな値が乗っているような関数、デルタ関数であって欲しいところです。
デルタ関数は、関数として扱うことができませんが、物理などでは形式的にデルタ関数を扱います。
これを数学的に正当化するためには超関数という関数の拡張が必要になります。

2点目の理由は、極限と積分の交換をたくさんしないといけないことです。
自然科学をやっている人は当然のように極限と積分の交換を行いますが、数学の世界では極限と積分が交換できるわけではないです。いちいち細かい計算をして極限と積分が交換できるかどうかを議論していたら理論を構築するのに日が暮れてしまいます。

そこで現れるのがルベーグ積分です。ルベーグ積分を用いることによって極限と積分の交換性をより簡単に扱うことができるようになります。
みなさんが一番最初に微積で勉強するリーマン積分では関数とx軸で囲まれる面積を上と下から評価しますが、ルベーグ積分では下だけから評価を行います。
数学の微積で最初の方に習う定理、有界な単調増加数列は収束する、という定理によって収束性を担保するわけです。
上下から評価するのではなく下だけから評価することによって、より極限と積分との交換が扱いやすくなります。

また、極限と積分の交換を厳密に扱おうと思うと、実は共通部分のない無限個の集合の和集合の面積はその無限個の集合の面積の無限和になるのか？という問題を扱わないといけなくなります。
非常に面倒なことに、選択公理という公理を認めてしまうと、実数$\mathbb{R}$では変な集合が存在して共通部分のない無限個の集合の和集合の面積はその無限個の集合の面積の無限和にならないことが示せてしまいます…
そのため、数学的に厳密に面積を扱おうとすると、共通部分のない無限個の集合の和集合の面積はその無限個の集合の面積の無限和になるような集合、可測集合だけを考える、ということを行います。

また、そもそも面積はどのように定義したらいいのでしょうか？？そういった問題に対応するために、測度論、という分野があります。(測度というのは、測る基準のことです。長さ、面積、体積、何でもいいですが。)

ちなみに、面積はどのように定義すればよいのかについても面白い話があって、実は測度はその集合を長方形で覆ったとき(長方形は無限個でもよい)の長方形の面積の和の最小値(厳密に言うとinf(下限))で定義しないといけないです。
内側からその集合を長方形で覆ったとき(長方形は無限個でもよい)の長方形の面積の和の最大値で定義するとうまくいきません。
厳密に言うと今話した内容は微妙に間違っていて、集合を長方形で覆ったとき(長方形は無限個でもよい)の長方形の面積の和の最小値(厳密に言うとinf(下限))で定義するものは($\mathbb{R}^n$における)ルベーグ外測度と呼ばれるものです。
やっぱり変なふるまいをする集合はあるので、変なふるまいをする集合を除いた集合、可測集合に対してのみ制限して定義する関数をルベーグ測度と呼びます。
このルベーグ測度を使ってルベーグ積分を定義します。

色々ごたごた書きましたが、ルベーグ積分はリーマン積分の拡張になっていて面積に関して厳密に扱うことによって極限と非常に良い相性を持つ、ということを知っておけばいいと思います。

フーリエ変換を数学的に厳密に扱おうとすると、測度論->ルベーグ積分論->超関数->フーリエ変換の順に勉強していかなくてはいけなく、とても時間がかかってしまうという話です。

# フーリエ変換の定義
最初にフーリエ変換の定義を書いて、やや厳密ではない、と言っていましたが、どこら辺が厳密ではなかったかというと、定義域と値域の関数空間のセッティングがなされていないところが厳密ではありませんでした。

フーリエ変換をした結果が関数で表せないことがある、と言いましたが、実はフーリエ変換は関数空間を小さくとっておくとフーリエ変換をした結果も関数になります。

実は関数空間として急減少関数による空間、シュワルツ空間$\mathcal{S}$と呼ばれる空間をとっておくと、急減少関数をフーリエ変換をした行き先も急減少関数になります。(急減少関数は、どんな多項式よりも速く無限遠で$0$に近づくような関数と思っておけばよいです。厳密な定義は他にありますが…$e^{-x^2}$などが典型例です。他にも$L^1$空間、絶対値の積分が収束する関数の集合でも定義できます。)
これを足掛かりに、拡張していくことを考えます。

# 緩増加関数とフーリエ変換
簡単のため、一変数関数の時を考えます。

超関数を使うとフーリエ変換を正当化できるという話をしましたが、実は、シュワルツ超関数(一般に超関数と読んだらこれを指す)に対してはフーリエ変換を定義することはできず、その部分集合の緩増加関数の集合に対してのみフーリエ変換を定義できます。(もう少し拡張することも可能ですが…)
以下から簡易的に緩増加関数のことを超関数と書きます。

関数の拡張、超関数を関数から$\mathbb{R}$への写像、汎関数を用いて定義します。
フーリエ変換を定義できる超関数、緩増加関数はシュワルツ空間から$\mathbb{R}$への関数のうち連続かつ線形であるもので定義します。緩増加関数の集合を$\mathcal{S}'$と書きます。(急減少関数の双対なので、緩増加関数です。面白いネーミングですね。)

関数$u$を超関数$T$で実数に飛ばすことを$<$$T, u$$>$と書きます。
このような$u$のことをテスト関数と言います。超関数をテスト関数でテストしてるわけですね。

超関数は関数の拡張になっている、という話をしましたが、どのように拡張にするのかというと、関数$f$を、
```math
<f, u>=\int_{\mathbb{R}} f(x)u(x) dx
```
のように超関数とみなすことができます。
$L^q$空間($1\le q \le \infty$)の関数(絶対値の$q$乗の積分が収束する関数)から緩増加関数への写像は実は単射だということが知られています。


微分などはテスト関数に押し付けて定義します。
```math
<\frac{dT}{dx}, u> = -<T, \frac{du}{dx}>
```
$-$は部分積分を意識して付けています。部分積分の第一項目は$u$が無限遠で$0$になる影響で消えてしまうからです。

超関数による微分が関数の意味での関数の微分の拡張になっていることも簡単な計算によって確かめることができます。興味があればやってみればよいと思います。

フーリエ変換もテスト関数に押し付けて定義します。
```math
<\mathcal{F}[T], u> = <T, \mathcal{F}[u]>
```

とりあえずディラックのデルタ超関数を定義しましょう。
ディラックのデルタ超関数は
```math
<\delta_0, u> = u(0)
```
のように定義されます。
ヘヴィサイド関数(ステップ関数)を、
```math
H(x)=\begin{cases}
1&(x>1)\\
0&(x\le0)
\end{cases}
```
定義すると、
```math
\begin{align}
<\frac{dH}{dt}, u>
&=-<H,\frac{du}{dt}>\\
&=-\int_{(0, \infty)} \frac{du}{dt} dt\\
&=u(0)\\
&=<\delta_0, u>
\end{align}
```
のようになって$\frac{dH}{dt}=\delta_0$になります。
期待した通りですね！！

定数関数$1$のフーリエ変換をしてみましょう。
```math
\begin{align}
<\mathcal{F}[1], u>
&=<1, \mathcal{F}[u]>\\
&=\int_{\mathbb{R}} \mathcal{F}[u](x) dx\\
&=\sqrt{2\pi}\mathcal{F}^{-1}[\mathcal{F}[u]](0)\\
&=\sqrt{2\pi}u(0)\\
&=<\sqrt{2\pi}\delta_0, u>
\end{align}
```
となって$\mathcal{F}[1]=\sqrt{2\pi}\delta_0$です。
ただし、$\mathcal{F}^{-1}$は逆フーリエ変換で、
```math
\mathcal{F}^{-1}[f](\xi)=\frac{1}{\sqrt{2\pi}}\int_{\mathbb{R}^n} f(x)e^{ix\cdot \xi} dx
```
です。

このように、関数を超関数に拡張することで、フーリエ変換を超関数に対して定義することもできました。
形式的にデルタ関数を扱ってわけわからん、となるのを解消することができます。

フーリエ変換を超関数に対しても定義することによって、微分したらある超関数になるような超関数が存在することを示せ、みたいな問題にも答えられるようになります。
素晴らしいですね。

ちなみに、シュワルツ空間が$L^2$空間について稠密($L^2$空間は絶対値の二乗の積分が収束する関数。$\mathbb{R}$の任意の元のすぐ近くに$\mathbb{Q}$の元が存在するのと同じような感じで、$L^2$空間の任意の元のすぐ近くにシュワルツ空間の元が存在する)ことを使って、シュワルツ空間を$L^2$空間に置き換えたような超関数に対してフーリエ変換を定義することもできます。

厳密に扱おうとしたらシュワルツ空間に対してノルムを入れる必要があるのですが、それは省略しました。シュワルツ空間は完備距離空間になります。(任意のコーシー列が収束する。)

# 終わりに
フーリエ変換について学んだことを還元するという意味で記事を書きました。
普段の輪読会でこのようなことを話しているわけではないのでご安心ください。(笑)