虚数 3D表示

虚数に関する方程式を3Dグラフ化するためには、matplotlibmpl_toolkits.mplot3dを使用します。

以下に、虚数を含む方程式の例と、それをPythonで3Dグラフ化するためのコードを示します。

この例では、複素数 z = x + yi を使用します。

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
26
27
28
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 虚数を含む方程式の例: z^2 = x + yi
def complex_equation(x, y):
z = x + 1j*y
return z**2

# 3Dグラフの生成
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# x, yの値の範囲を設定
x_vals = np.linspace(-5, 5, 100)
y_vals = np.linspace(-5, 5, 100)

# x, yの組み合わせで方程式の値を計算
X, Y = np.meshgrid(x_vals, y_vals)
Z = complex_equation(X, Y)

# 3Dプロット
ax.plot_surface(X, Y, np.real(Z), cmap='viridis', alpha=0.8)
ax.set_xlabel('Real')
ax.set_ylabel('Imaginary')
ax.set_zlabel('Result')

plt.show()

この例では、方程式として $ z^2 = x + yi $ を採用しています。

complex_equation関数は、与えられた複素数 z に対する方程式の値を計算します。

そして、numpyを使用してxとyの範囲を設定し、それに対応する方程式の値を計算しています。

最後に、mpl_toolkits.mplot3dを使って3Dグラフを作成しています。

このコードを実行すると、xおよびyが実数、zが虚数の方程式の3Dグラフが表示されます。

[実行結果]

ソースコード解説

このPythonソースコードは、複素数に関する方程式 $ z^2 = x + yi $ を3Dグラフで可視化するものです。

以下に、ソースコードの詳細な説明を行います。

1. ライブラリのインポート

1
2
3
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
  • numpy: 数値計算を支援するライブラリ。
    このコードでは、数値の配列や範囲生成に使用されます。
  • matplotlib.pyplot: グラフ描画のためのライブラリ。
  • mpl_toolkits.mplot3d: 3Dグラフ描画のためのツールキット。

2. 複素数を含む方程式の定義

1
2
3
def complex_equation(x, y):
z = x + 1j*y
return z**2
  • complex_equation 関数は、実数 x と虚数 y を引数に取り、それらを用いて z^2 の計算を行います。
    ここで 1j は虚数単位を表します。

3. 3Dグラフの生成

1
2
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
  • matplotlibを使用して、新しい3Dグラフを生成します。

4. x, yの値の範囲を設定

1
2
x_vals = np.linspace(-5, 5, 100)
y_vals = np.linspace(-5, 5, 100)
  • np.linspace を使用して、-5 から 5 までの範囲を 100 分割した数値を生成し、それを x_vals および y_vals に格納します。

5. x, yの組み合わせで方程式の値を計算

1
2
X, Y = np.meshgrid(x_vals, y_vals)
Z = complex_equation(X, Y)
  • np.meshgrid を使用して x_valsy_vals の組み合わせを生成し、それぞれの組み合わせにおける方程式の値を Z に格納します。

6. 3Dプロット

1
ax.plot_surface(X, Y, np.real(Z), cmap='viridis', alpha=0.8)
  • ax.plot_surface を使用して、計算された方程式の結果を3Dプロットします。
    実数部 (np.real(Z)) を X および Y に対応させています。
    cmap='viridis'viridis カラーマップを指定し、alpha=0.8 で透明度を設定しています。

7. 軸ラベルの設定

1
2
3
ax.set_xlabel('Real')
ax.set_ylabel('Imaginary')
ax.set_zlabel('Result')
  • それぞれの軸にラベルを設定しています。

8. グラフの表示

1
plt.show()
  • 最後に、生成したグラフを表示します。

このコードは、複素数の方程式が3Dグラフ上でどのように変化するかを直感的に理解できるようにしたものです。

結果解説

[実行結果]

このグラフは、複素数に関する方程式$ z^2 = x + yi $の3Dプロットを示しています。

以下に、グラフに表示される内容の詳細な説明を提供します。

  1. 座標軸:
  • x軸: 実数部 (x) を表します。
  • y軸: 虚数部 (y) を表します。
  • z軸: 方程式の結果を表します。
  1. 方程式の形:
  • 方程式$ z^2 = x + yi $は、複素数$ (z) $の2乗が、実数部$ (x) $と虚数部$ (y) $の合計に等しいことを表しています。
  1. 色の変化:
  • グラフの色は viridis カラーマップに基づいています。
    色の濃さが高いほど、方程式の結果が大きいことを示しています。
  1. 曲面の形状:
  • グラフ上の曲面は、実数部$ (x) $と虚数部$ (y) $の組み合わせに対する方程式の結果を表しています。
    曲面の形状は、複素平面内でどのように方程式が変化するかを視覚的に示しています。
  1. 曲面の交点や転換点:
  • グラフ上での曲面の交点や転換点は、方程式がゼロになる条件や変化する条件を示しています。
    これらの点において、方程式$ z^2 = x + yi $の結果が特に注目される可能性があります。

このグラフは、複素数の方程式が実数部虚数部に依存する様子を3Dで表現しています。

視覚的な表現を通じて、方程式の挙動や特徴を把握するのに役立ちます。