[matplotlib 3D] 38.双曲面(Hyperboloid)

matplotlib 3D

はじめに

Matplotlibを使用して双曲面を描画する方法を解説します。

双曲面(Hyperboloid)は、3次元空間における二次曲面の一種で、以下の2種類があります:

  • 一葉双曲面(hyperboloid of one sheet):x²/a² + y²/b² – z²/c² = 1 で表される曲面
  • 二葉双曲面(hyperboloid of two sheets):-x²/a² – y²/b² + z²/c² = 1 で表される曲面

ここでは一葉双曲面を作成します。

コード

解説

モジュールのインポート

3Dグラフの設定

データの生成

双曲面は媒介変数でデータを生成するので、uとvを先に作成してmeshgridします。

双曲面は媒介変数で以下のようになります。

$$X = cosh(u)*cos(v)\\ Y = cosh(u)*sin(v)\\ Z = sinh(u)$$

軸範囲、軸ラベルの設定

3Dグラフの表示

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

まとめ

双曲面は数学的に美しいだけでなく、物理学や工学でも重要な役割を持っています。例えば冷却塔の設計や電波望遠鏡のアンテナ形状にも応用されています。Pythonとmatplotlibを使えば、これらの複雑な3D形状も簡単に可視化できることがわかりました。

参考

双曲面 - Wikipedia

コメント