複素数

複素数

初級

説明

複素数とは、a + b * iという形で表される数で、aとbは実数、iはi^2 = -1を満たします。

aは実部、bはzの虚部と呼ばれます。 数a + b * iの共役はa - b * iです。 複素数z = a + b * iの絶対値は実数で、|z| = sqrt(a^2 + b^2)となります。絶対値の2乗|z|^2は、zとその共役を掛け合わせた結果です。

2つの複素数の和・差は、それぞれの実部と虚部を別々に足し引きします。 (a + i * b) + (c + i * d) = (a + c) + (b + d) * i、 (a + i * b) - (c + i * d) = (a - c) + (b - d) * i。

積は定義により次のようになります。 (a + i * b) * (c + i * d) = (a * c - b * d) + (b * c + a * d) * i。

0でない複素数の逆数は次のとおりです。 1 / (a + i * b) = a/(a^2 + b^2) - b/(a^2 + b^2) * i。

複素数a + i * bを別の複素数c + i * dで割ると、次のようになります。 (a + i * b) / (c + i * d) = (a * c + b * d)/(c^2 + d^2) + (b * c - a * d)/(c^2 + d^2) * i。

eを複素数の指数で累乗する計算は、e^(a + i * b) = e^a * e^(i * b)と表せます。この最後の項は、オイラーの公式e^(i * b) = cos(b) + i * sin(b)で与えられます。

次の演算を実装してください。

  • 2つの複素数の加算、減算、乗算、除算
  • 与えられた複素数の共役、絶対値、指数

使っているプログラミング言語には、複素数の実装がないものとします。


出典

Wikipediaリンクは新しいウィンドウまたはタブで開きます
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Haskell Exercism

複素数を始める準備はできましたか?

Exercismに登録すれば、107個の演習、そして本物の人間によるメンタリングとともに、Haskellを学んでマスターできます。すべて無料です。