第1章: 複素数と複素平面

Complex Numbers and Complex Plane

1.1 複素数の基本演算

複素数は \(z = x + iy\) の形で表され、実部 \(x\) と虚部 \(y\) を持ちます。Pythonではcomplex型やNumPyで扱えます。

📐 定義: 複素数
複素数の定義: \[z = x + iy, \quad i = \sqrt{-1}\] 基本演算:
  • 加法: \((x_1 + iy_1) + (x_2 + iy_2) = (x_1 + x_2) + i(y_1 + y_2)\)
  • 乗法: \((x_1 + iy_1)(x_2 + iy_2) = (x_1x_2 - y_1y_2) + i(x_1y_2 + x_2y_1)\)
  • 共役: \(\bar{z} = x - iy\)
  • 絶対値: \(|z| = \sqrt{x^2 + y^2}\)

💻 コード例 1: 複素数の基本演算

Python実装: 複素数の基本演算
import numpy as np import matplotlib.pyplot as plt # 複素数の定義 z1 = 3 + 4j z2 = 1 - 2j print(f"z1 = {z1}") print(f"z2 = {z2}") print(f"z1 + z2 = {z1 + z2}") print(f"z1 * z2 = {z1 * z2}") print(f"z1 / z2 = {z1 / z2}") # 共役複素数と絶対値 print(f"\n共役: z1.conjugate() = {z1.conjugate()}") print(f"絶対値: |z1| = {np.abs(z1)}") print(f"偏角: arg(z1) = {np.angle(z1)} rad = {np.degrees(np.angle(z1)):.2f}°") # 複素平面での可視化 fig, ax = plt.subplots(figsize=(8, 8)) ax.axhline(0, color='gray', linewidth=0.5) ax.axvline(0, color='gray', linewidth=0.5) ax.grid(True, alpha=0.3) # 複素数をベクトルとして描画 def plot_complex(z, label, color): ax.arrow(0, 0, z.real, z.imag, head_width=0.3, head_length=0.2, fc=color, ec=color, linewidth=2, label=label) ax.plot(z.real, z.imag, 'o', color=color, markersize=8) ax.text(z.real + 0.3, z.imag + 0.3, label, fontsize=12, color=color) plot_complex(z1, 'z1', 'blue') plot_complex(z2, 'z2', 'red') plot_complex(z1 + z2, 'z1+z2', 'green') ax.set_xlabel('実部 (Re)', fontsize=12) ax.set_ylabel('虚部 (Im)', fontsize=12) ax.set_title('複素平面でのベクトル表示', fontsize=14) ax.legend() ax.axis('equal') ax.set_xlim(-1, 5) ax.set_ylim(-3, 5) plt.tight_layout() plt.show()

1.2 極形式とオイラーの公式

複素数は極形式 \(z = r e^{i\theta}\) でも表現でき、これはオイラーの公式 \(e^{i\theta} = \cos\theta + i\sin\theta\) に基づきます。

📐 定理: オイラーの公式
極形式表示: \[z = r e^{i\theta} = r(\cos\theta + i\sin\theta)\] ここで \(r = |z|\) (絶対値), \(\theta = \arg(z)\) (偏角)
特殊な場合: \[e^{i\pi} + 1 = 0 \quad \text{(オイラーの等式)}\]

まとめ