球体の方程式

球体の方程式

3次元方程式の例として、球体の方程式を挙げて、そのグラフ化を行います。

球体の方程式は次のように表されます。

$$
[ x^2 + y^2 + z^2 = r^2 ]
$$

これは、原点を中心とし、半径が$ (r) $の球の方程式です。

Pythonでこの方程式をグラフ化するには、Matplotlibを使用して3次元のプロットを行います。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

r = 1 # 球の半径

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# x, y, zの値を生成
theta = np.linspace(0, 2 * np.pi, 100)
phi = np.linspace(0, np.pi, 100)
x = r * np.outer(np.cos(theta), np.sin(phi))
y = r * np.outer(np.sin(theta), np.sin(phi))
z = r * np.outer(np.ones(100), np.cos(phi))

# 球をプロット
ax.plot_surface(x, y, z, color='b', alpha=0.5)

# 軸ラベルの設定
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.show()

このコードでは、球の方程式をパラメータ化して球体を描画しています。

球の半径解像度を変更することで、異なる球を描画することができます。

[実行結果]

ソースコード解説

このコードは、Matplotlibを使用して3次元の球を描画するものです。

それぞれの部分について説明します。

1. モジュールのインポート:

1
2
3
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

必要なライブラリをインポートしています。
matplotlib.pyplotはグラフを描画するために使用され、mpl_toolkits.mplot3dは3次元プロットをサポートするために必要です。
numpyは数学的な演算を行うために使用されます。

2. 球の半径の設定:

1
r = 1  # 球の半径

描画する球の半径を設定しています。

3. FigureとAxesの設定:

1
2
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

plt.figure()を使用してFigureオブジェクトを作成し、fig.add_subplot()でAxesオブジェクトを作成しています。
ここでは、3次元プロットを行うためにprojection='3d'を指定しています。

4. x, y, zの値の生成:

1
2
3
4
5
theta = np.linspace(0, 2 * np.pi, 100)
phi = np.linspace(0, np.pi, 100)
x = r * np.outer(np.cos(theta), np.sin(phi))
y = r * np.outer(np.sin(theta), np.sin(phi))
z = r * np.outer(np.ones(100), np.cos(phi))

球の表面を構成する$x, y, z$座標の値を生成しています。
np.linspace()は指定された範囲で等間隔の値を生成し、np.outer()は2つの配列の外積を計算します。

5. 球のプロット:

1
ax.plot_surface(x, y, z, color='b', alpha=0.5)

ax.plot_surface()を使用して球を描画しています。
ここでは、生成したx, y, z座標の値を使用し、color='b'で青色、alpha=0.5で透明度を設定しています。

6. 軸ラベルの設定:

1
2
3
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

$x$軸、$y$軸、$z$軸のラベルを設定しています。

7. グラフの表示:

1
plt.show()

最後にplt.show()を使ってグラフを表示します。
これにより、3次元の球が表示されます。