虚数 3D表示

単純な虚数を含む3D方程式の例を示します。

この例では、複素数 z = x + yi を考え、その絶対値がある閾値より小さい範囲を3Dでプロットします。

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
29
30
31
32
33
34
35
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 3Dプロットの設定
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# x, y座標の範囲設定
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)

# x, y座標の組み合わせ生成
X, Y = np.meshgrid(x, y)

# 複素数の表現: Z = X + Yi
Z = X + 1j*Y

# 方程式: |Z| < threshold
threshold = 2

# 絶対値が閾値未満の場合をTrueにする条件
condition = np.abs(Z) < threshold

# 3Dプロット
ax.scatter(X[condition], Y[condition], np.abs(Z)[condition], c='b', marker='.')

# プロットの設定
ax.set_xlabel('Re(X)')
ax.set_ylabel('Im(Y)')
ax.set_zlabel('|Z|')
ax.set_title('Complex Equation: |Z| < {}'.format(threshold))

# 表示
plt.show()

この例では、Z = X + Yi という複素数を使って、絶対値が閾値未満の範囲を3Dでプロットしています。

np.abs(Z) は複素数の絶対値を計算しています。

閾値より小さい範囲が青い点でプロットされています。

この例を実行すると、虚数に関する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.Axes3D: 3Dプロットを行うためのモジュール。

2. 3Dプロットの設定

1
2
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
  • plt.figure(): 新しいプロット用の図を作成。
  • fig.add_subplot(111, projection='3d'): 3Dプロット用のサブプロットを作成。

3. x, y座標の範囲設定

1
2
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
  • np.linspace(-5, 5, 100): -5 から 5 までの範囲を 100 等分した値を生成。

4. x, y座標の組み合わせ生成

1
X, Y = np.meshgrid(x, y)
  • np.meshgrid(x, y): xy の座標点を組み合わせて2次元グリッドを生成。

5. 複素数の表現

1
Z = X + 1j*Y
  • Z = X + 1j*Y: 複素数の表現。1j は虚数単位。

6. 方程式と閾値の設定

1
threshold = 2
  • threshold = 2: 方程式 |Z| < threshold の閾値を設定。

7. 条件の設定

1
condition = np.abs(Z) < threshold
  • np.abs(Z) < threshold: 絶対値が閾値未満の場合をTrueにする条件を設定。

8. 3Dプロット

1
ax.scatter(X[condition], Y[condition], np.abs(Z)[condition], c='b', marker='.')
  • ax.scatter(): 3D散布図をプロット。条件を満たす座標点に対応する複素数の絶対値を青い点としてプロット。

9. プロットの設定

1
2
3
4
ax.set_xlabel('Re(X)')
ax.set_ylabel('Im(Y)')
ax.set_zlabel('|Z|')
ax.set_title('Complex Equation: |Z| < {}'.format(threshold))
  • 軸ラベルおよびタイトルの設定。

10. 表示

1
plt.show()
  • plt.show(): プロットの表示。

このプログラムは、虚数平面上の条件を可視化するために3Dプロットを使用しています。

閾値 threshold 未満の複素数領域が、複素平面上で青い点として表示されます。

結果解説

[実行結果]

上記のコードは、複素数を用いた方程式 |Z| < threshold の解を3Dプロットしています。

ここで、Z は複素数で、Z = X + Yi と表されます。この方程式は、複素平面上で絶対値がある閾値 threshold 未満の領域を表します。

以下はプロットの詳細な説明です:

  1. X および Y 座標は、それぞれ -5 から 5 までの範囲で 100 等分された値を取ります。これにより、複素平面上の座標点を生成します。

  2. XY の座標点を組み合わせて、Z = X + Yi の複素数の表現を生成します。

  3. 方程式 |Z| < threshold を満たす条件を condition として設定します。

  4. condition を満たす座標点に対応する複素数の絶対値 |Z| をプロットします。これにより、|Z| < threshold の範囲が3D空間に青い点として可視化されます。

  5. プロットには Re(X)(実部)、Im(Y)(虚部)、および |Z|(絶対値)の軸が使用されています。

このプロットでは、閾値 threshold 未満の領域が複素平面上で青い点として浮かび上がります。

これは、複素数がこの条件を満たす領域を示しています。