メインコンテンツへ移動

1D数学

無料2015-09-18#Math#1D数学

非常に興味深い理解の仕方で、発展史の観点から自然数、数軸、負の数、分数、小数、実数などの数学的概念を解説しています。

2000年以上前、人々は「羊を数える」のを便利にするために自然数を発明しました。「1頭の羊」という概念は理解しやすく、次は「2頭の羊」「3頭の羊」と続き、以下同様です。人々はすぐに、このように数え続けるのは膨大な作業量になることに気づき、ある時点で数えるのをやめ、代わりに「たくさんの羊」と呼ぶようにしました。文明によって、数えるのをやめる地点は異なります。文明の発展とともに、徐々に「数字」について専門に考える人々を養えるようになりました。これらの人々は生活の心配をする必要がありませんでした。これらの賢者たちは「ゼロ」の概念(羊がいない)を確立しました。彼らはすべての自然数に名前を付けるのではなく、複数の計数体系を発展させ、必要な時に自然数に名前を付け、数字の「1」「2」などを使用するようにしました(ローマ人は「I」「V」「X」などを使用しました)。こうして、数学が誕生しました。

人々は羊を一列に並べて数える習慣があり、それが数軸の概念の誕生につながりました。直線上に等間隔で数字を記します。理論上、数軸は無限に延長できますが、便宜上、ある数値までしか表示せず、その先は矢印で数軸が延長可能であることを示します。歴史上の思想家たちは、それが無限に大きな数を表せると考えましたが、羊の商売人たちはその概念を理解できなかったかもしれません。なぜなら、それはすでに彼らの想像を超えていたからです。

もしあなたが口が上手ければ、実際には持っていない羊を誰かに買わせることができるでしょう。そこから借金と負の数の概念が生まれました。この想像上の羊を売ると、あなたは実際に「マイナス1頭」の羊を持っていることになります。この状況が整数の誕生をもたらしました。整数は自然数とその反対の数(負の数)で構成されます。

贫困の出現は明らかに借金よりも早く、贫困のために一部の人々は羊の半分、あるいは4分の1しか買えませんでした。そこで分数が生まれました。分数はある整数を別の整数で割ることで形成されます(例:2/3、111/27)。数学者たちはこれらの数を有理数と呼び、有理数は数軸上の整数の間の空白を埋めました。便宜上、人々は「3.1415」のように長い31415/10000の代わりに小数点表記法を発明しました。

しばらくして、日常生活で使用される一部の数が有理数では表現できないことが発見されました。最も典型的な例は、円の円周と直径の比、すなわちPI(円周率)です。これにより、いわゆる実数が生まれました。実数には有理数とPIのような無理数が含まれます。小数形式で表現する場合、小数点以下に無限の桁数が必要です。実数数学は、工学の基礎であるため、数学の中で最も重要な領域の一つであると考えられています。人類は実数を使用して現代文明を築き上げました。最もクールなことは、有理数は可算であるのに対し、実数は非可算であるということです。自然数と整数を研究する領域は離散数学と呼ばれ、実数を研究する領域は連続数学と呼ばれます。

実際、実数は文明文化によって認められた、約束事のような概念にすぎません。多くの著名な物理学者たちは、宇宙は離散的で有限であるため、実数は一種の錯覚であると考えています。もし現実世界が有限個の離散的な事象で構成されているなら、私たちはある固定された値までしか数えることができません。なぜなら、世界のすべての事象を数え終わってしまうからです(羊だけでなく、トースターや修理工などもすべて数え終わります)。したがって、離散数学だけで宇宙全体を記述でき、自然数の有限部分集合(巨大ですが可算)を使うだけで十分であると断定できます。おそらく宇宙には、私たちの技術を超えた文明が存在し、彼らは連続数学や微積分学の基本定理、さらには無限といった概念すら聞いたことがないかもしれません。彼らはPIを使用せず、3.14159(あるいはより正確な3.1415926535897932382626433832795)を使用するだけで完璧な世界を構築できるのです。

(『三体I』の中で、異星人が宇宙船に1つの点を付けるだけで百科事典を丸ごと持ち去ることができるという例が登場しますが、まさにこのことを指しています)

では、なぜ連続数学を使用するのでしょうか? それは工学的に非常に有用だからです。しかし、現実世界で使用される「実数」という用語が、通常は離散的であることを意味している点には注意が必要です。3D仮想世界の設計者にとって、注意すべきことは何でしょうか? 現実世界と同様に、扱うのは一連の離散的で有限な事象です。C++が提供するshort、int、float、doubleなどの多様なデータ型を使用して3D仮想世界を記述できます。shortは16ビット整数で、65536個の異なる数値を表現できます。この数字は大きいですが、現実世界を測定するには全く不十分です。intは32ビット整数で、42億個の異なる数値を表現できます。floatは32ビット有理数で、42億個の数値を表現できます。doubleはfloatに似ており、64ビット有理数です。

仮想世界の測定単位を選択する鍵は、離散の精度を選択することです。shortやintは離散的で、floatやdoubleは連続的であるという誤った見方がありますが、実際にはこれらのデータ型はすべて離散的です。以前のコンピュータグラフィックスの教科書では、当時のハードウェアの浮動小数点演算能力が整数演算能力よりも低かったため、整数を選択することを推奨していましたが、現代のハードウェアではその考え方は時代遅れです。では、どのように精度を選択すべきでしょうか? コンピュータグラフィックスの第一原則があります。

コンピュータグラフィックスの第一原則:近似の原則。もし見た目が正しければ、それは正しい。

(コンピュータ内のPIは実数ではありませんが、私たちはそれを実数、つまり一般に認められているあの一連の小数であると考えています)

あとがき

1D数学は1本の数軸(このように理解すると、数は連続していることが前提となります)、2D数学は2本の数軸(2Dデカルト座標系)、3D数学は3本の数軸(3Dデカルト座標系)です...

参考文献

  • 『3D数学の基礎:グラフィックスとゲーム開発』

コメント

コメントはまだありません

コメントを書く