# グラフのラベル設定 ax.set_xlabel('Real axis') ax.set_ylabel('Imaginary axis') ax.set_zlabel('Real part of the equation') ax.set_title('Graph of a complex equation')
plt.show()
この例では、$ (z^3 - 1) $という複素数の3次方程式を使用しています。
これは複素数平面上の方程式です。
3Dプロットは、実部と虚部の関係を示し、方程式の解の振る舞いを可視化します。
[実行結果]
ソースコード解説
このコードは、複素平面上で$ (z^3 - 1) $のグラフを3Dで描画しています。
ここでの$ (z) $は、複素数$ (z = x + yi) $で表され、実部が$ (x) $軸、虚部が$ (y) $軸にマッピングされています。
import numpy as np import matplotlib.pyplot as plt from scipy.integrate import odeint
# ロジスティック方程式(捕食者-被食者モデル) defpredator_prey_system(y, t, alpha, beta, delta, gamma): x, y = y dxdt = alpha * x - beta * x * y dydt = delta * x * y - gamma * y return [dxdt, dydt]
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D
# モビウス帯のパラメータ r, w = 1, 0.2# 半径と帯の幅 u = np.linspace(0, 2 * np.pi, 100) v = np.linspace(-w, w, 50) U, V = np.meshgrid(u, v) X = (r + V * np.cos(U / 2)) * np.cos(U) Y = (r + V * np.cos(U / 2)) * np.sin(U) Z = V * np.sin(U / 2)
r, w = 1, 0.2# 半径と帯の幅 u = np.linspace(0, 2 * np.pi, 100) v = np.linspace(-w, w, 50) U, V = np.meshgrid(u, v) X = (r + V * np.cos(U / 2)) * np.cos(U) Y = (r + V * np.cos(U / 2)) * np.sin(U) Z = V * np.sin(U / 2)
r はモビウス帯の半径、w は帯の幅を指定します。
u は$0$から$2π$までを$100$等分した配列を作り、v は -w から w までを$50$等分した配列を作ります。
np.meshgrid を使用して、u と v のメッシュグリッドを作成します。 これにより、U と V の2つの行列が得られます。