見出し画像

数学の小ネタ#3 数の拡張(1) 双対数

 高校数学では、二乗すると-1になる変な数”虚数”が出てきます。この二乗すると-1になる基本単位は、虚数単位iと表現されます。ただし、電気系の学問分野では、電流にiの文字を使うので、iの代りにjが使われることが多いようです。

 一般的な複素数は、2つの実数aとbと虚数単位iを使って、a+biのように表現します。このような虚数を使うと、これまで解けなかった二次方程式にも(虚数の)解が出てきます。これは、それまでの実数を拡張した新しい数の概念です。

 二乗して0(ゼロ)になる数は、実数では0しかありません。複素数の範囲まで広げても、やはり二乗して0になるのは0しかありません。しかし、二乗して0になる”0ではない数”を定義しても、四則演算は破綻しません。このような数は、双対数(または二重数)と呼ばれます。英語では、Hyper-dual numbersと呼ばれます。この時の基本単位がεです。εは0ではありませんが、二乗すると0になります。つまり、ε×ε=0 となります。

 εは、限りなく小さな数だと考えることができます。このεを実数にくっ付けたのが、超実数と呼ばれる数です。英語では、Hyper-real numbers と言います。こんな変な数を考えて、何の意味があるのか?と思うかもしれませんが、これが意味があるのです。微分の定義には、無限小の計算が入った極限が使われていますが、実はこの極限というのが、数学的には厄介(曖昧)なのです。しかし、超実数を考えると、微分は双対数の係数と等しくなるので、曖昧な極限を考える必要が無くなります。

 例えば、x+ε の二乗を考えます。(x+ε)(x+ε)=x^2+2xε+ε^2=x^2+2xε となり、εの前の係数がx^2の微分である2xになっています。このように、超実数を定義すると、通常の演算を1回するだけで、微分が自動的に計算できます。これを利用して、複雑な計算式での微分を数値的に高精度で求める”自動微分”というアルゴリズムが考案されました。この自動微分の考え方は、ニューラルネットワークのバックプロパゲーションに使う微係数の計算などに使われています。

 微分値だけが必要なら、最初の虚数を使って計算することができます。実数xに虚数単位iを加えてx+iとすると、(x+i)(x+i)=x^2-1+2xiとなり、x^2の微分は、(x+i)の二乗の虚部に相当します。このアイデアも、数値微分を高精度で計算するアルゴリズムとしてよく使われています。

この記事が気に入ったらサポートをしてみませんか?