ヘストネス方程式
ヘストネス方程式は、David Hestenes が1986年に提案した代数的な方程式です。
この方程式は、3次元空間における曲面の形状を記述するものです。
ヘストネス方程式は次のように表されます:
$$
(x^2 + y^2 + z^2 - 1)^3 - x^2y^3 - y^2z^3 - z^2x^3 = 0
$$
この方程式は、非線形の代数方程式で、左辺が$0$になる点の集合が曲面を表しています。
この曲面には以下のような特徴があります:
中心が原点$(0, 0, 0)$にあり、単位球面$(x^2 + y^2 + z^2 = 1)$に内接する曲面です。
曲面は滑らかではなく、いくつかの尖った部分があります。
曲面は$8$回対称性を持っています。
つまり、座標軸周りに$45$度回転させても同じ形状になります。曲面は自己交差しており、内部に空洞部分があります。
ヘストネス方程式は、幾何学的に興味深い性質を持つ代数方程式として知られており、コンピューター graphicsや数学の視覚化などで利用されています。
この方程式から得られる曲面は、複雑で美しい形状を持つため、芸術的な表現の題材にもなっています。
ソースコード
1 | import numpy as np |
上記のコードでは、まずHestenes方程式を定義する関数 hestenes_equation(x, y, z)
を作成しています。
この関数は、与えられた x
, y
, z
の値に対するHestenes方程式の値を返します。
次に、numpy
を使って x
と y
の値の範囲を設定し、それらの値の組み合わせからメッシュグリッドを作成しています。
そして、z=0
の平面上でHestenes方程式を計算し、その結果を Z
に格納しています。
最後に、matplotlib
の plot_surface
関数を使って、計算された Z
の値を3次元プロットしています。
実行すると、Hestenes方程式の立体的な曲面がプロットされます。
[実行結果]
ソースコード解説
ソースコードを説明します。
1. ライブラリのインポート
1 | import numpy as np |
最初に、NumPy
とMatplotlib
ライブラリをインポートしています。NumPy
は数値計算を、Matplotlib
はデータの可視化を行うためのPythonライブラリです。
2. Hestenes方程式の定義
1 | def hestenes_equation(x, y, z): |
Hestenes方程式を計算する関数hestenes_equation
を定義しています。
この関数は、x
、y
、z
の値を引数として受け取り、それらの値に対するHestenes方程式の値を返します。
3. メッシュグリッドの作成
1 | x = np.linspace(-1.5, 1.5, 50) |
NumPy
のlinspace
関数を使って、x
とy
の値の範囲を設定しています。
ここでは、$-1.5$から$1.5$までの$50$個の等間隔の値を生成しています。
次に、meshgrid
関数を使って、x
とy
の値の組み合わせからメッシュグリッドを作成しています。
4. Hestenes方程式の計算
1 | Z = hestenes_equation(X, Y, 0) # z=0の平面で計算 |
先程定義したhestenes_equation
関数を使って、メッシュグリッド上の各点における方程式の値を計算しています。
ここでは、z=0
の平面上での値を計算しています。
計算結果はZ
に格納されます。
5. 3次元プロットの設定
1 | fig = plt.figure() |
Matplotlib
を使って、3次元プロットを設定しています。
まず、新しい図fig
を作成し、その中に3次元の座標軸ax
を追加しています。
次に、plot_surface
関数を使って、計算されたZ
の値を3次元プロットしています。rstride
とcstride
は、プロットする点の間隔を指定するパラメータです。cmap='viridis'
は、曲面の色を指定するためのカラーマップです。
最後に、軸のラベルとタイトルを設定しています。
6. プロットの表示
1 | plt.show() |
最後に、plt.show()
を呼び出すことで、作成したプロットを表示します。
結果解説
[実行結果]
グラフに表示されている内容について説明します。
このグラフは3次元プロットで、Hestenes方程式から得られる曲面を可視化しています。
曲面の形状は以下のような特徴を持っています:
中心が原点$(0, 0, 0)$にあり、単位球面に内接しています。
曲面の外形は球形に近い形をしています。曲面は滑らかではなく、いくつかの鋭い尖った部分があります。
特に、座標軸の正負方向に$4$つの主要な尖った部分があります。曲面は$8$回対称性を持っており、座標軸周りに$45$度回転させても同じ形状になります。
曲面は自己交差しており、内部に空洞部分があります。
曲面の内側には複雑な入り組んだ構造があり、一見すると次元が高い幾何学的な形状のようにも見えます。曲面の色は、
viridisカラーマップ
を使って高さに応じて色分けされています。
原点付近は青紫色、高い部分は黄色がかった緑色になっています。グラフの背景は白で、曲面の形状が浮き立つようになっています。
$X$軸、$Y$軸、$Z$軸のラベルと、タイトル「Hestenes Equation」が付けられています。
このようにHestenes方程式から得られる曲面は、非常に複雑で美しい形状を持っており、その幾何学的な特徴が3次元プロットによってよく可視化されています。