数学はなんの役に立つなんか聞くんじゃねぇ ~虚数編~
虚数の前に
ヘッダにも書いているが、数学から情報全般の体系につなげたくて、数学の記事を書いていますが、今回のテーマ虚数を、数学がプログラミングと密接な関係にあることと、その関連からの説明をしていこうと思います。
notesにはわたしの方法でのアプローチはなかったので、結構斬新な説明になるとおもいますが、どうか読んでいただけると幸いです。
数学とプログラミングでのデータの扱い方
みなさんが親しんだ数学では、数は1,2,3…やa,b,c…などの単一の項目を扱うものが主だったと思います。
例えばx+1=2みたいにxと1と2を組み合わせたようなもののはずです。
これから書くものはベクトルや列や族と呼ばれるものです。プログラミングでは配列とかオブジェクトとか呼ばれるものです。
ベクトルの演算はa+b=cみたいな形をしても、a,b,cそれぞれにx座標、y座標の2種類の数値を持っています。こんなような複数の数値を持って一つのデータとして扱うことを数学でもプログラミングでもします。
どんなふうに使うかというとプログラミングでは申し込みページの入力項目を入力データという名前をつけたりして一まとめにして扱ったりします。まとめて扱うと便利なんです。いちいち、生年月日とか申し込んだ商品とか項目を羅列して扱うと大変になります。
まとめた値を一つのデータとして見ること自体はみなさんも仕事で日常的に行なっているのではないでしょうか?
顧客データは名前、生年月日、住所とかそういう複数の値を一まとめにして顧客データって呼んでませんか?そんな感じで日常にやることを数学でもやれます。これはかなり重大なことなんですが、ここでは詳細に書きません。
虚数改めて複素数は複雑
虚数と実数をまとめたものを数学では複素数なんて呼びますが、その英訳はcomplex numberと言います。複雑な数です。
虚数だけ語るより、複素数を語る方がらくなので、複素数から解説していきます。
複素数は英名通り複雑な数値ですが、実際数式に書くとa+biのように実数a,bと虚数を表す記号iで表現できます。iは二乗したらマイナス1になるものです。
数式は言葉とこのシリーズの最初の記事でも言ってますが、ここで前述の数式を日本語に直すと実数部分がa、虚数部分がiのb倍である数と言えます。
$${\begin{bmatrix} a \\c \end{bmatrix}}$$
上を実数部分、下を虚数部分として上のようにまとめて表現できるけど、座標のような形ですね。
まあ座標のようだと思った人がいて、その方面で研究されたのが複素平面ですね。
複素平面から虚数を説明する記事や動画が多いので、複素平面の説明はそれらに任せて今は複素数が二つの独立した値の組みとして表現可能だということです。
データのなかの構造
構造はいろんなものにあって、その構造を解析することで社会や文化のことがわかるという考えが大雑把で表面的な意味での構造主義ですが、数は一般的に構造などもたないと思われてます。
実数全体では構造があるかもしれないけど、実数一つ、一つを取り上げてみても構造はありません。
複素数は違います。構造を持った数なのです。構造を持つことで複素数は実数等の他の数から一線をかくす存在です。
数直線上に置いていける実数とは違い、複素数は直線になんかには並べられない。多分日常に滅多になく、なかなかどんなものか理解できないのはこういうところだと思う。
歴史的には二次方程式の解からうまれたのですが、二次方程式って日常で使うこと少ないし、仕事でも意外に二次元の数値って扱わないしで、三角関数より仕事で使う人いないのではと思うけどその辺で虚数がわからないという層が生まれてしまうのはしょうがないのでしょう。
虚数とは
まあ、ここまで書いてきて、結論自体は簡単で虚数とは構造を持った数、複素数という数の一部です。
実際に存在しない数という話を間に受けちゃうとちょっとヤバいことになります。信じてしますと実数がこの世に存在するかのような錯覚をします。測定精度に限りがあるから、現実には無理数なんて存在しないと言っても嘘じゃないということも信じないといけなくなるし、そもそも数という概念は抽象概念で恋とか愛とかと同じもので目に見えないですし、と結構めんどいです。
二次元以上の計算から構造を持った数が生まれた理由は、正直よくわからないですが、抽象概念を扱うからなのでしょうか。私たちが思っている以上に長さや面積や体積は抽象的です。具体的な数字が出る分具体的だろと思うかもしれませんが、数学での面積とは確率論をやってみないと正直わからない難しいものです。公理的確率論というか測度論はわたし独学ですが何ヶ月も理解したという感覚になるのにかかりました。大学でもひと講義分ボリュームがある、下手したら何回かに分ける大学もあるような代物です。
いや、直感的には小学生が扱うものです。直感は時に論理を超えます。ですが、再現性やその他のものを置き去りにして結論がでるので、学問やノウハウにするには不向きです。熟練の職人みたいな人の一握りの人のような層にしかわからなくなります。なので、論理をもって理解するためには様々な概念を用いて説明する必要があるので、難しくなります。
まとめ
虚数やimaginary number等の名前は不適切だと思いつつも慣習に従い虚数という名前を使いましたが、やはり複素数の実数以外の部分というくらいがちょうどいい呼び方かもしれません。
また複素数はほかに似た概念があるか挙げるのが難しいのですが、こころに意識と無意識があるとか人はこころとからだからなるとか、そういう複数の要素からなるものと同じような概念で、実数とは一線を画すものです。
なので、複素数が実在しないとか、なんの役に立つとかがわかりづらいということです。
あとがき
突発で書いた記事で、いやもともと予定立てて書いてないけど、虚数はやっぱり難しい概念ですね。なので、複素解析とか複素関数とか私勉強してないんですよね。なので、正直リーマン予想ってあんまりわからないんですよね。
それでも、虚数って存在しないとか学ぶ意味がないというと肯定できないです。行列と同じように回転を表現できる理由やそれなのに単数のデータのように扱えるのはとても便利なのです。
やっぱりうまくまとまらなかった…