複素数はz = a + b * iという形で表されます。ここで、
aは実部(実数)です。
bは虚部(こちらも実数)です。また、
iはi^2 = -1を満たす虚数単位です。
複素数z = a + b * iの共役は、次のように表されます。
zc = a - b * i
zの絶対値(またはモジュラス)は、次のように定義されます。
|z| = sqrt(a^2 + b^2)
絶対値の2乗は、zとその共役zcの積として計算されます。
|z|^2 = z * zc = a^2 + b^2
2つの複素数z1 = a + b * iとz2 = c + d * iの和は、それぞれの実部と虚部を別々に足し合わせて計算します。
z1 + z2 = (a + b * i) + (c + d * i)
= (a + c) + (b + d) * i
2つの複素数の差は、それぞれの実部と虚部を引いて求めます。
z1 - z2 = (a + b * i) - (c + d * i)
= (a - c) + (b - d) * i
2つの複素数の積は、次のように定義されます。
z1 * z2 = (a + b * i) * (c + d * i)
= (a * c - b * d) + (b * c + a * d) * i
0ではない複素数の逆数は、次のように表されます。
1 / z = 1 / (a + b * i)
= a / (a^2 + b^2) - b / (a^2 + b^2) * i
ある複素数を別の複素数で割る除法は、次のように表されます。
z1 / z2 = z1 * (1 / z2)
= (a + b * i) / (c + d * i)
= (a * c + b * d) / (c^2 + d^2) + (b * c - a * d) / (c^2 + d^2) * i
自然対数の底である_e_を複素数の指数で累乗する計算は、オイラーの公式を使って表せます。
e^(a + b * i) = e^a * e^(b * i)
= e^a * (cos(b) + i * sin(b))
複素数の組み込みサポートは使わないという前提で、次の演算を実装してください。