2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ガウス積分のメモ

Last updated at Posted at 2021-02-11

ガウス波束や正規分布の取り扱いで何かと出てくる積分です。
さらに多項式が掛かっていると多少やっかいです。
出てくるたびに毎回検索したり調べたり計算したりは面倒なので、一度どういう形になるかをまとめてみようと思います。
ここでは1変数のものを取り扱います。多変数の拡張は比較的簡単かと思います。

今回は数式のみですが、数式が妥当かどうかの確認を裏でjuliaを使って数値計算でやっているので、そのうちそれも記事にしようかなと思います。
追記:しました。https://qiita.com/sage-git/items/07208f54af5c57663ed6

あと、数式の計算はいきなり記事で書きながらLaTeX表記上でやっていて、行間を適切に削るのも面倒なので計算途中も多くを残しています。

状況

中心 $r$、幅 $a^{-1}$ のガウス関数に $x^n$ を掛けて $-\infty$ から $\infty$ まで積分します。 ガウス関数と多項式の中心がずれているので、奇数次のときは奇関数なので0、というわけにはいきません。

基本

$$
I_0(r, a) = \int_{-\infty}^\infty \exp\left(-a(x-r)^2 \right)dx = \sqrt{\frac{\pi}{a}}
$$

よく分子分母がどっちか忘れるのですが、最近 $dx$ と $a$ の次元を考えたら決まることに気づきました。

多項式を掛けて

$$
I_n(r, a) = \int_{-\infty}^\infty x^n\exp\left(-a(x-r)^2 \right)dx
$$

基本の式より$I_0(r, a) = \sqrt{\pi/a}$ です。

すぐに計算できるところ

1次

計算

まず $I_0(r, a)$ を $r$ で微分します。

$$
\frac{\partial }{\partial r}I_0(r, a) = \frac{\partial }{\partial r}\sqrt{\frac{\pi}{a}} = 0
$$

一方で積分と微分を入れかえると

$$
\int_{-\infty}^\infty \frac{\partial }{\partial r}\exp\left(-a(x-r)^2 \right)dx = 2a\int_{-\infty}^\infty (x-r)\exp\left(-a(x-r)^2 \right)dx
$$

右辺のカッコ内を展開すると

$$
2a\int_{-\infty}^\infty x\exp\left(-a(x-r)^2 \right)dx - 2ar\int_{-\infty}^\infty \exp\left(-a(x-r)^2 \right)dx =2aI_1(r, a) - 2arI_0(r, a) = 0
$$

まとめると

$$
I_1(r,a) = rI_0(r,a) = r\sqrt{\frac{\pi}{a}}
$$

応用

$I_1(r, a)/I_0(r, a) = r$ は平均 $r$、分散 $2/a$ の正規分布 $x$ の期待値 に相当します。 $I_0(r, a)$ で割るのは規格化因子です。これが $r$ になるのは直感的にも合っていますね。

2次

計算

今度は $a$ で微分してみます。

$$
\frac{\partial }{\partial a}I_0(r, a) = \frac{\partial }{\partial a}\sqrt{\frac{\pi}{a}} = -\frac{1}{2a}\sqrt{\frac{\pi}{a}}
$$

一方で

$$
\int_{-\infty}^\infty \frac{\partial }{\partial a}\exp\left(-a(x-r)^2 \right)dx = - \int_{-\infty}^\infty (x-r)^2\exp\left(-a(x-r)^2 \right)dx
$$

右辺カッコ内を展開すると

$$
-I_2(r, a) + 2rI_1(r, a) - r^2I_0(r, a) = -\frac{1}{2a}\sqrt{\frac{\pi}{a}}
$$

$$
I_2(r, a) = \frac{1}{2a}\sqrt{\frac{\pi}{a}}+ 2rI_1(r, a) - r^2I_0(r, a) = \left(\frac{1}{2a} + 2r^2 -r^2\right) \sqrt{\frac{\pi}{a}}
$$

まとめると

$$
I_2(r, a) = \left(\frac{1}{2a} + r^2\right) \sqrt{\frac{\pi}{a}}
$$

別解

ちなみに $I_1(r, a)$ を $r$ で微分してみますと

$$
\frac{\partial }{\partial r}I_1(r, a) = \frac{\partial }{\partial r}r\sqrt{\frac{\pi}{a}} = \sqrt{\frac{\pi}{a}}
$$

一方で積分の方は

$$
\int_{-\infty}^\infty \frac{\partial }{\partial r}x\exp\left(-a(x-r)^2 \right)dx = 2a\int_{-\infty}^\infty x(x-r)\exp\left(-a(x-r)^2 \right)dx
$$

$$
2aI_2(r, a) - 2arI_1(r, a)= \sqrt{\frac{\pi}{a}}
$$

まとめると
$$
I_2(r, a) = \left(\frac{1}{2a} + r^2\right) \sqrt{\frac{\pi}{a}}
$$

で、無事 $a$ で微分したときと同じ結果になりました。

応用

$x^2 - r^2$ をガウス関数$\exp\left(-a(x - r)^2\right)$に掛けて積分すると $I_2(r, a) - r^2I_0(r, a) = \frac{1}{2a} I_0(r, a)$ ですが、$x$ を標本平均と思うと標本平均の分散となります(多変数バージョンにしても確認できます)。これは不偏分散を求める際、差の2乗を $N$ ではなく $N-1$ で割ることにつながります。

-1次

計算

普通のガウス関数のフーリエ変換を考えます。$\sqrt{2\pi}$で割らないタイプ。

$$
\int_{-\infty}^\infty \exp\left(-a(x-r)^2\right) \exp(-ikx) dx
$$

指数関数の肩を $x$ に関してまとめなおしますと

$$
-a(x-r)^2 - ikx = -a\left(x^2 - \left(2r - \frac{ik}{a}\right) x + r^2\right)\\ = -a\left(x - \left(r - \frac{ik} {2a}\right)\right)^2 - ikr - \frac{k^2}{4a}
$$

中心位置が虚数なのに目をつぶって積分すると、

$$
\int_{-\infty}^\infty \exp\left(-a(x-r)^2\right) \exp(-ikx) dx = \sqrt{\frac{\pi}{a}}\exp(-ikr)\exp\left(-\frac{k^2}{4a}\right)
$$

普通に中心位置がシフトしたガウス関数のフーリエ変換です。

あと、$x^{-1}$ のフーリエ変換

$$
\int_{-\infty}^\infty \frac{1}{x} \exp(-ikx) dx = - \pi i \mathrm{sgn}(k)
$$

も準備しておきます。証明は省略します。

さらに畳み込みに関するフーリエ変換の性質も確認しておきます。$\hat{f}$ というように $\hat{\ }$ を付けると $f$ のフーリエ変換と表しますと、関数の畳み込みのフーリエ変換は

$$
\int_{-\infty}^\infty \left( \int_{-\infty}^\infty f(y)g(x - y)dy\right)\exp(-ikx)dx = \hat{f}(k)\hat{g}(k)
$$

とフーリエ変換の積で計算できますが、逆にフーリエ変換の畳み込みは関数の積を使って

$$
\int_{-\infty}^\infty f(x)g(x)\exp(-ikx)dx = \frac{1}{2\pi} \int_{-\infty}^\infty \hat{f}(\kappa)\hat{g}(k - \kappa)d\kappa
$$

とできます。 $f(x) = \exp\left(-a(x-r)^2\right)$ と $g(x) = 1/x$ を代入すると

$$
\int_{-\infty}^\infty \frac{1}{x}\exp\left(-a(x-r)^2\right) \exp(-ikx) dx = -\frac{i}{2}\sqrt{\frac{\pi}{a}} \int_{-\infty}^\infty\exp(-i\kappa r)\exp\left(-\frac{\kappa^2}{4a}\right)\mathrm{sgn}(k - \kappa)d\kappa
$$

となります。さらに $k = 0$ とすると、左辺は求める積分になることが分かります。ということで右辺の計算を進めます。積分変数を途中で $\kappa$ から $k$ に変えて

$$
\int_{-\infty}^\infty \frac{1}{x}\exp\left(-a(x-r)^2\right) dx =\frac{i}{2}\sqrt{\frac{\pi}{a}} \int_{-\infty}^\infty\exp(-i\kappa r)\exp\left(-\frac{\kappa^2}{4a}\right)\mathrm{sgn}(\kappa)d\kappa \\
= \frac{i}{2}\sqrt{\frac{\pi}{a}} \left[-\int_{-\infty}^0\exp(-ikr)\exp\left(-\frac{k^2}{4a}\right)dk + \int_0^\infty\exp(-ikr)\exp\left(-\frac{k^2}{4a}\right)dk\right]\\
=\frac{i}{2}\sqrt{\frac{\pi}{a}} \left[-\int_0^\infty\exp(ikr)\exp\left(-\frac{k^2}{4a}\right)dk + \int_0^\infty\exp(-ikr)\exp\left(-\frac{k^2}{4a}\right)dk\right]\\
=\frac{i}{2}\sqrt{\frac{\pi}{a}} \left[-2i\int_0^\infty\sin(kr)\exp\left(-\frac{k^2}{4a}\right)dk\right]\\
=\sqrt{\frac{\pi}{a}} \left[\int_0^\infty\sin(kr)\exp\left(-\frac{k^2}{4a}\right)dk\right]
$$

と積分できそうな形になりました。係数を移してもうちょっと頑張ります。$\sin(x)$ は指数表記の虚部 $\Im[\exp(ix)]$ ということで、

$$
\sqrt{\frac{a}{\pi}}\int_{-\infty}^\infty \frac{1}{x}\exp\left(-a(x-r)^2\right) dx = \Im\left[\int_0^\infty\exp(ikr)\exp\left(-\frac{k^2}{4a}\right)dk\right] \\
= \Im\left[\int_0^\infty\exp\left(-\frac{1}{4a}\left(k - 2iar\right)^2 - ar^2\right)dk\right] \\
= \exp\left(-ar^2\right)\Im\left[\int_{-2iar}^{\infty - 2iar}\exp\left(-\frac{k^2}{4a}\right)dk\right] \\= 2\sqrt{a}\exp\left(-ar^2\right)\Im\left[\int_{-i\sqrt
{a}r}^{\infty - i\sqrt{a}r}\exp\left(-k^2\right)dk\right]
$$

$\int_{-2iar}^{\infty - 2iar}$ の積分は $x$軸に平行に、$x$軸から $-2iar$ だけ上下にずれたところをたどっていってます。つまり複素平面上での積分になります。このとき被積分関数は性質がよさそうなので、始点終点が同じならば結果は同じだろうということで、実軸をたどるようにします。

$$
\int_{-i\sqrt{a}r}^{\infty - i\sqrt{a}r}\exp\left(-k^2\right)dk = \left(\int_{-i\sqrt{a}r}^{0} + \int_0^{\infty}+\int_{\infty}^{\infty - i\sqrt{a}r}\right)\exp\left(-k^2\right)dk \\ =
\int_0^{i\sqrt{a}r}\exp\left(-k^2\right)dk + \int_0^{\infty}\exp\left(-k^2\right) dk \\=
\frac{\sqrt{\pi}}{2}\mathrm{erf}(i\sqrt{a}r) + \frac{\sqrt{\pi}}{2}
$$

実軸上無限遠でちょっと虚軸を動いた程度の積分は0としました。$\mathrm{erf}(x)$ は普通の誤差関数です。よって

$$
2\sqrt{a}\exp\left(-ar^2\right)\Im\left[\int_{-i\sqrt
{a}r}^{\infty - i\sqrt{a}r}\exp\left(-k^2\right)dk\right]\\
= \exp\left(-ar^2\right)\Im \left[\sqrt{a\pi}\left(1 + \mathrm{erf}(i \sqrt{a} r)) \right) \right] \\
= \exp\left(-ar^2\right)\sqrt{a\pi}\Im \left[\mathrm{erf}(i \sqrt{a} r)\right]
$$

とできます。虚部をとるので $1$ は消えます。元の式に入れてまとめると

$$
I_{-1}(r, a) = \int_{-\infty}^\infty \frac{1}{x}\exp\left(-a(x-r)^2\right) dx = \pi\exp\left(-ar^2\right)\Im \left[\mathrm{erf}(i \sqrt{a} r)\right]
$$

ですが、虚数誤差関数 $\mathrm{erfi}(x) = -i\mathrm{erf}(ix)$を用いると

$$
I_{-1}(r, a) = \pi\exp\left(-ar^2\right)\mathrm{erfi}\left(\sqrt{a} r\right)
$$

となります。正直ぱっと見発散する積分で、本当か?という気分になりますが、これを次回確認してみたいと思います。

追記

$1/x$ のフーリエ変換と畳み込みの話は、投稿当初は間違えていましたが、 @septcolor 様に指摘いただきました。
読みやすさのため修正後のみの内容ですが、間違いのあらすじは $1/x$ のフーリエ変換の係数を $2\pi$ で余計に割っていて、一方関数の積のフーリエ変換で $2\pi$ を忘れていいたため、打ち消しあって結果は正しかったというものです。

応用

この積分は基底関数としてガウス関数系にして、クーロン相互作用を計算したときに似たような形が出てきます。量子化学計算の実装で誤差関数がでてくるのはこれのせいです。
この積分が発散せず値を持つだろうという気持ちは、このことに基づいています。

ただ、クーロン積分は三次元中で、空間中の点から原子核までの距離の逆数 $1/|\vec{R} - \vec{r}|$ のフーリエ変換は $1/k^2$ になって若干違う形(誤差関数が実数で済む)になります。

-2次以降

裏で確かめたのですが、数値積分を $[-\infty, -\epsilon]$、$[\epsilon, \infty]$ に分けて $\epsilon$ を小さくしていくと、-2次と-3次の場合積分の結果がどんどん大きくなりました。(-1次の時は求めた式と同じ値に落ち着きました)

そもそも収束するかどうか怪しいですね。もしかしたら $n < -1$ では $x = 0$ 近傍が大きくなりすぎて発散するのかもしれません。

一般化

というわけで0以上の時だけを考えます。まず漸化式を求めておきます。

$$
I_n(r,a) = \int_{-\infty}^\infty x^n\exp\left(-a(x - r)^2\right)dx
$$

いつも通り微分しますと

$$
\frac{\partial I_n(r, a)}{\partial r} = \int_{-\infty}^\infty 2a\left(x^{n+1} - rx^n\right)\exp\left(-a(x - r)^2\right)dx = 2aI_{n+1}(r, a) - 2arI_n(r, a)
$$

$$
I_{n+1}(r, a) = rI_n(r, a) + \frac{1}{2a}\frac{\partial I_n(r, a)}{\partial r}
$$

$I_0(r, a) = \sqrt{\pi/a}$ なので、どうも $r$ の多項式になりそうです
部分積分でも漸化式を得るのですが、今度は微分がないものの$n+2$, $n+1$, $n$ が絡む漸化式となり、同値かどうかは確かめてないです。

いくつか具体例を挙げると、$I_1(r,a) = rI_0$ と $I_2(r, a) = (r^2 + (2a)^{-1})I_0$ は求めたとおりですが、

$$
I_3 = r\left(r^2 + \frac{1}{2a}\right)I_0 + a^{-1}rI_0 = \left(r^3 +\frac{3}{2a}r\right)I_0 \\
I_4 = r\left(r^3 +\frac{3}{2a}r\right)I_0 + a^{-1}\left(\frac{3}{2}r^2 +\frac{3}{4a}\right)I_0 = \left(r^4 +3a^{-1}r^2+\frac{3}{4}a^{-2}\right)I_0 \\
I_5 = r \left(r^4 +3a^{-1}r^2+\frac{3}{4}a^{-2}\right)I_0 + a^{-1}\left(2r^3 +3a^{-1}r\right)I_0 = \left(r^5 + 5a^{-1}r^3+ \frac{15}{4}a^{-2}r\right)I_0
$$

と続きます。 一般項を思いついた、またはどこかで見つけたら追記したいと思います。

みつけた

$$
\int_{-\infty}^\infty x^n\exp(-px^2 + 2qx)dx = n! \exp(q^2/p)\sqrt{\frac{\pi}{p}}\left(\frac{q}{p}\right)^n\sum_{k=0}^{\lfloor n/2 \rfloor} \frac{1}{(n-2k)!k!}\left(\frac{p}{4q^2}\right)^k
$$

というのを見つけました。1

$$
-a(x - r)^2 = -ax^2 + 2arx - ar^2
$$

より、 $p = a$、$q = ar$ だといえるので、$ \exp(ar^2)$ をキャンセルして

$$
I_n(r, a) = n!\sqrt{\frac{\pi}{a}}r^n\sum_{k=0}^{\lfloor n/2 \rfloor} \frac{1}{(n-2k)!k!}\left(\frac{1}{4ar^2}\right)^k
$$

です。数値計算チェックも大丈夫でした。

追記

記事冒頭にも書きましたが、数値計算(julia)によるチェックもしました。
https://qiita.com/sage-git/items/07208f54af5c57663ed6

  1. Computation of Overlap, Kinetic and Nuclear Attraction Integrals by a Novel Method. Turk J Phy 25 (2001) , 237 – 248

2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?