複素数を表現する / PDLによる統計解析
複素数はPDL::Complexを読むと使えるようになる虚数単位を表すi関数を使って表現します。
たとえば3 + 2iという複素数を表現するには次のようにします。
use PDL; use PDL::Complex; my $num = 3 + 2*i;
この複素数を出力すると以下のように表示されます。
3 +2i
虚数単位iを使用する
PDLでは虚数を扱うことができます。虚数を扱うためには、PDL::PDL::Complexを読み込みましょう。
use PDL::Complex;
すると虚数単位を表すi関数がインポートされます。
i
虚数単位を出力すると以下のように出力されます。
0 +1i
虚数単位iというのは二乗して-1になる数のことでした。二乗してみましょう。
my $ret = i * i;
これを出力すると以下のように表示されます。
-1 +0i
複素数の四則演算
複素数の四則演算は通常の演算と同じく+, -, *, /を使って行うことができます。
use PDL; use PDL::Complex; my $num1 = 1 + 2*i; my $num2 = 3 + 4*i;
和
# 4 +6i my $sum = $num1 + $num2;
差
# 2 +2i my $sub = $num2 - $num1;
積
# -5 +10i my $multi = $num1 * $num2;
商
# 0.44 +0.08i my $div = $num1 / $num2;
n乗根を計算する
n乗根を計算するにはCroots関数を使用します。
use PDL; use PDL::Complex; # 5の3乗根 my $nums = Croots(5, 3);
計算結果の出力は以下のようになります。
[1.85398 +0.496773i -1.35721 +1.35721i -0.496773 -1.85398i]
実数を複素数に変換する
実数を複素数に変換するにはr2C関数を使用します。
use PDL; use PDL::Complex; my $num = r2C 5;
出力結果は以下のようになります。
5 +0i