アジマティクス

ここをこうするとおもしろい

「2乗してはじめて0になる数」とかあったら面白くないですか?ですよね

「その数自体は0でないのに、2乗するとはじめて0になる数」ってなんですか?

そんな数あるはずがないと思いますか?

でももしそんな数を考えることができるなら、ちょっとワクワクすると思いませんか?

今回はそんな謎の数のお話。 

 

実数の中には、「2乗して0になる数」というのは0しかありません。

f:id:motcho:20200811123351p:plain

(2乗して0になる実数は0しかない図)

ということは、「2乗してはじめて0になる数」というのがあるとしたら、それは実数ではありえません。

「1年A組にはメガネの人はいないので、メガネの人がいたとしたらその人は1年A組ではありえない」くらいの当たり前のことを言っています。

この辺の議論は、複素数で「i」を導入したときと同じですね。

「実数の中には、2乗して-1になる数というのは存在しないので、それがあるとしたら実数ではありえない」ということで「虚数」であるiが導入されるわけです。

それならばということで、ここではそれに倣うことにしてみます。つまり、「2乗してはじめて0になる数」すなわち「\varepsilon^2 = 0,\varepsilon \neq 0」を満たすような「\varepsilon」を導入して(エプシロン、と読みます)、複素数のときと同じように「a+b \varepsilona,bは実数)」という数を作ってみる。

そしてそのような数体系がどのように振る舞うかを観察してみたい。四則演算はどうなっているのかな? なにか面白い性質は出てくるのかな?  というのが、今回の目的です。

まぁ数学の歴史も長いですから、このようなものが過去に考えられていないわけはなくて、このような数体系のことを「二重数」あるいは「双対数」と呼びます。英語の「dual number」の訳語ですが、この記事では「二重数」で統一します。

そんな二重数の世界を少し覗いてみることにしましょう。

二重世界の四則演算

なにはなくとも四則演算は大事です。2つの二重数、a+b \varepsilonc+d\varepsilonの足し算はこうなります。

 a+b\varepsilon+c+d\varepsilon=\left(a+c\right)+\left(b+d\right)\varepsilon

複素数の場合と同じように、実部どうし、二重部どうしでの足し算をしているだけなわけですね。これで実数のときと整合的に定義できています。

掛け算はやってみるとちょっと面白いです。

a+b \varepsilonc+d\varepsilonをかけるとac+\left(ad+bc\right)\varepsilon+bd \varepsilon^{2}となりますが、最後の項に \varepsilon^2があるためこの項は消失します。

なぜなら、いや、なぜならも何も \varepsilon^2を0と定義したからですね。なのでこの項は0をかけられて消えて、結局

 \left(a+b \varepsilon\right)\left(c+d \varepsilon\right)=ac+\left(ad+bc\right) \varepsilon

となります。実部がac、二重部がad+bc

ところで、複素数に複素平面というのがあるんだったら、二重数においても二重平面とでも言うべきものを考えたくなったとしてもおかしくありません。

つまり、横軸に...,-2,-1,0,1,2,...と並んでいて、縦軸には... -2\varepsilon,-1\varepsilon,0,\varepsilon,2\varepsilon,...と並んでいるような平面のことです。

例えば点(1,1)で二重数1+\varepsilonを表し、点(10,7)で二重数10+7\varepsilonを表すような、そんな平面ということになります。

この二重平面の上で、掛け算が行われる様子を見てみましょう。具体的には、(a,b)という点と(c,d)という点から新たに(ac,ad+bc)という点を作る、という風にすれば、お手元の描画エンジンでも簡単に実現することができます。

実際にやってみるとこんな感じになります。青(複数)に赤(一点)をかけた結果がピンクです。

f:id:motcho:20200812032240g:plain

う〜む。好き。複素数とは全然違う感じで新鮮ですね。

参考として複素数の場合の掛け算も見ておきましょう。

f:id:motcho:20190320094316g:plain

参考:【GIF多め】ギャラリー:目で見る複素数

複素数のときは「回転」の感じが強かったのに、二重数だと「剪断(ずれ変形)」の感じが強く出ているように見えますね。

最後は割り算。割ることとは「逆数をかけること」ですので、a+b\varepsilonの逆数を考えることが本質となります。

逆数とはかけると1になる数のことです。なので、a+b \varepsilonの逆数を求めるには、\left(a+b \varepsilon\right)\left(c+d \varepsilon\right)=1とおいて、この「cd」のことを、「ab」を使って表せば、それがa+b \varepsilonの逆数となるでしょう。やっていきます。

 \left(a+b \varepsilon\right)\left(c+d \varepsilon\right)=1

左辺を展開して

 ac+\left(ad+bc\right) \varepsilon=1

右辺を二重数だと捉えると

 ac+\left(ad+bc\right) \varepsilon=1+0\varepsilon

実部どうし、二重部どうしの係数を比較すると式が2本立って

 ① ac = 1

 ② ad+bc = 0

①の両辺をaで割って

 c=\frac{1}{a}

それを②に代入して整理して

 d=-\frac{b}{a^{2}}

これでcdが求まったので結局、a+b\varepsilonの逆数とは

 \frac{1}{a}-\frac{b}{a^{2}}\varepsilon

であることがわかりました。気力のある人は、コイツをa+b\varepsilonにかけて検算してみましょう。わりとすぐにちゃんと1になることが確かめられます。そして気持ちいい。

ただし、ここまでの議論では大事なことをスルーしています。途中、しれっと「両辺をaで割って」いますが、そんなことができるのは実数aが0でないときに限ります。実際、最後に出てきた式である\frac{1}{a}-\frac{b}{a^{2}}\varepsilonも、aが0であっては成立しない式となっています。

これは何を意味するかといえば、つまりaが0のときは逆数が存在しない」ということです。

aが0であるような二重数、つまり\varepsilon-\varepsilon2\varepsilonなどの、言うなれば「純二重数」には逆数が存在せず、すなわちその数で割ることができません。

「いつでも割り算ができるわけではない」というのは、複素数とは異なる二重数の大きな特徴です。

方程式の二重数解

また別の話として、二重数にはこんな特徴もあります。

x^{2}-6x+9=0」という方程式の実数解は、3です。3のみです。この方程式のxの部分に入力して式全体が正しくなるような実数は3のみであるという意味です。

これは複素数まで広げて考えても同じで、この式を解いても「i」を含んだ虚数解が出てくるということはありません。

しかし、この方程式を考える範囲を二重数の範囲まで広げると、新たな解が出てきます。

その解の一つは例えば「3+2\varepsilon」。確かめてみましょう。

左辺のxにこれを代入して

 \left(3+2\varepsilon\right)^{2}-6\left(3+2\varepsilon\right)+9

展開して

 \left(9+12\varepsilon\right)-\left(18+12\varepsilon\right)+9

カッコを外し、項ごとにまとめて

 9-18+9+\left(12-12\right)\varepsilon

結局これは0ということで、たしかに解になっていることが確かめられました。

実のところ、この方程式は3+2\varepsilonも、3-\varepsilonも、一般に3+a\varepsilonaは実数)のすべてが解になります。解の集合を二重平面上に表してみるとこんな感じ。

f:id:motcho:20200812162153p:plain

この赤い部分全部が解です。点は実数解。もうちょっと感覚的には、こんな感じになっていると考えるとよいでしょうか。

f:id:motcho:20200812171121g:plain

 xy平面の奥側には実は二重平面が広がっていて、実数の視点しか持たない我々には「3」という解しか見えていなくて……みたいな、そんなノリです。

なぜこんなことが起きるのか。その理由の一つとして、二重数の体系には「零因子」が存在するから、というのが挙げられるでしょう。

零因子

ある数体系(詳しい人のためにいうと、です)において、「そいつ自身は0ではないのに、かけると0になりうる」という要素が存在するとき、その要素のことを「零因子」といいます。

実数や複素数の中には零因子が存在しません。つまり、かけた結果が0になっているときは、必ず0がかけられています。

一方、二重数には零因子が存在します。言うまでもなく、\varepsilonそのものが零因子ですね。こいつ自身は0ではないのに、\varepsilonとかけると0になる要素です。

ふだん実数や複素数に慣れ親しんだ我々は、\left(x-2\right)\left(x+5\right)=0みたいな方程式から解としてx=2,-5を何の気無しに導いていますが、それは「掛け算の答えが0になっているということは0がかけられているはずで、てことは\left(x-2\right)\left(x+5\right)の少なくともどちらかは0」という論法が成り立つからにほかなりません。

しかし零因子が存在する数体系の場合は、「掛け算の答えが0になっているということは0がかけられているはずで」が成り立たないのですね。

x^{2}-6x+9=0」という方程式を二重数上で解いたときに、3以外にも無限に解が出てきたのは、そういう理由もあったというわけなのです。

ちなみに、零因子は英語では「ゼロ・ディヴァイザー」といい、大変かっこいいことが知られています。

単位円

またまた別の話。ここでちょっと二重数の単位円というやつを考えてみましょう。

複素数の場合の単位円とは、「絶対値が1の複素数の集合」でした。こんな感じ。

f:id:motcho:20210319094048p:plain

円ですね。

ということは二重数の場合でも「絶対値が1の二重数の集合」を考えれば、それは単位円と呼んでもよさそうだと思えてくるわけです。

そうなると、二重数における絶対値ってなんなのかということが大事になってきます。

実は、複素数や二重数のような体系での絶対値は、共役との積のルートで定義されています。

とある複素数a+biの共役とはa-biのことを指しますが、これらの積をとるとa^{2}+b^{2}となります。

そしてこいつのルートをとると\sqrt{a^{2}+b^{2}}となって、見覚えのある「複素数の絶対値」となるわけです。

この式なので、複素数の絶対値とは原点からの(ユークリッド)距離となっているということだったのですね。

そして原点からのユークリッド距離が1となる複素数の集合というのは、すなわち円である、と、そういうわけです。

これを二重数でも同じことをやってみます。すなわち、二重数でも共役との積のルートを考えてみる。

二重数におけるa+b\varepsilonの共役というのはa-b\varepsilonとなっていて、これらの積をとるとa^{2}ですね。

さらにこいつのルートをとると\sqrt{a^{2}}となって、それってすなわち\left|a\right|(絶対値a)のことです。二重数a+b\varepsilonの絶対値とは\left|a\right|である、と。bが無視される感じなのですね。※

そして、単位円というのは「絶対値が1の二重数の集合」でした。\left|a\right|=1を満たす二重数の集合ということです。これがどんな形になっているかというと……。

f:id:motcho:20210317161523p:plain

こうですね。

これが「単位円」です。

「絶対値が1の数の集合」という定義を守る以上、これが単位円と言わざるを得ません。

数学ってたまにこういうのが発生していいですよね。〇〇の定義はこれ、と決めた以上、全然〇〇っぽくないものでも〇〇になってしまう、という。全然日常的な意味の距離っぽくはないp進距離とか。

こういうの、数学の自由さを感じられてとても好きです。

まあ、どうしてもこれを単位円と呼ぶのが許せない人は「単位平行線」とでも呼ぶとよいでしょう。

複素数のときの掛け算が「回転」で、すなわち円に沿った移動だったことを思うと、二重数の掛け算で現れた「剪断」の動きはこの平行線に沿った動きなのだ、と捉えると、整合的に見えるかもしれません。

※実のところ、この絶対値の定義は「距離の公理を満たさない」という致命的な欠点があります(具体的には、距離が0であるような異なる2点が存在してしまう)。二重数の絶対値というのは特に決まった定義もないようなので、複素数からの類推で「共役との積のルート」というのを採用したのですが、この点がどうしても気になる方は「単位円の定義を共役との積のルートが1である点の集合」とした、とでも捉えておいていただけるといいかもしれません。

一般化

ここまで、二重数のさまざまな特徴を見てきました。

掛け算が剪断だったり、割り算ができないことがあったり、方程式に二重数解が存在したり、単位円が平行線だったりと、二重数には実数や複素数にはない性質がいろいろとありました。

実を言うと、こんなのはまだまだ「さわり」です。二重数には他にも特筆すべき点はあり、特に「微分に使える」というのは二重数の大きな特徴です。というか、二重数で検索したときに出てくるような話は多くがこの微分に関するものなんですね。

それを除いても、二重数にはこんなに興味深いいろいろがあるんだよ、というお話でした。微分に関するあれこれについて知りたい場合は「自動微分」「automatic differentiation」あたりで調べていただくとよいでしょう。

さて、複素数というのはx^{2}=-1であるような謎のxを導入することから始まり、二重数はそれがx^{2}=0という謎のxになるのでした。

そう考えると、他にもいろいろな一般化が考えられそうだと思えてきます。例えば、「x^{2}=1(ただし実数ではない)」というxが存在する体系、とか。

つまり「その数自体は1でないのに、2乗するとはじめて1になる数」ということですね。

こういう数を含む体系にも名前がついていて、これは「分解型複素数」と呼ばれています。

分解型複素数、複素数、そして二重数はまとめて二元数と呼ばれていて、それぞれが相補的な関係にあることが知られています。

この記事でやったことを参考にして、分解型複素数に対しても四則演算、方程式、単位円などを考えてみると、それはそれでまた楽しいものが見えてくるでしょう。

おわりに

詳しい人に向けていうと、二重数というのは\mathbb{R}係数多項式をx^{2}で割ったあまりで同一視したもの、すなわち\mathbb R \lbrack X \rbrack / (X^{2})です。

複素数でもこういう定義するときがありますね。\mathbb R \lbrack X \rbrack / (X^{2}+1)です。

何が言いたいかといえば、二重数というのはなにも伊達や酔狂で考え出されたill-definedなものではなく、ちゃんとこうやって厳密に定義できているんだよという話です。

というわけで今回は、複素数の裏世界みたいな「二重数」のお話でした。

いかにも数学の自由さを象徴しているような概念だと思います。数学が「ここをこうするとどうなるんだろう」という冒険を受け入れてくれるのは、数学が厳密に作られているからにほかなりません。

いやあ、数学って本当にいいものですね。

それでは今回はこのへんで!

 

※今回の記事を書くにあたっては、Twitterや数学デー(イベント)などでたいへん親しくさせていただいているきいねくさん(@Keyneqq)に多大なるご協力をいただきました。きいねくさんありがとうございました!