Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library complex

library complex

要約

複素数を扱うためのライブラリです。

クラスとモジュール

class Complex

複素数を扱うためのクラスです。

追加・再定義されるメソッド

Kernel#Complex(a, b) [added by complex]

実部が a 虚部が b である Complex オブジェクトを生成して返します。

[PARAM] a:
実部を数値で指定します。
[PARAM] b:
虚部を数値で指定します。

[SEE_ALSO] Complex

例:

p Complex(2,1) #=> (2+1i)
Math.#acos(z) -> Complex [redefined by complex]

複素関数としてのacos関数(逆cos関数)の結果を返します。

acos関数は以下で定義されます。

acos(z) = -i * log(z + i*sqrt(1-z*z))
[PARAM] z:
複素数
Math.#acosh(z) -> Complex [redefined by complex]

複素関数としてのacosh関数(双曲逆cos関数)の結果を返します。

acosh関数は以下で定義されます。

acosh(z) = log(z + sqrt(z*z-1))
[PARAM] z:
複素数
Math.#asin(z) -> Complex [redefined by complex]

複素関数としてのasin関数(逆sin関数)の結果を返します。

asin関数は以下で定義されます。

asin(z) = -i * log(i*z + sqrt(1-z*z))
[PARAM] z:
複素数
Math.#asinh(z) -> Complex [redefined by complex]

複素関数としてのasinh関数(双曲逆sin関数)の結果を返します。

asinh関数は以下で定義されます。

asinh(z) = log(z + sqrt(z*z+1))
[PARAM] z:
複素数
Math.#atan(z) -> Complex [redefined by complex]

複素関数としてのatan関数(逆tan関数)の結果を返します。

atan関数は以下で定義されます。

atan(z) = i/2 * log((i+z) / (i-z))
[PARAM] z:
複素数
Math.#atan2(z) -> Complex [redefined by complex]

複素関数としてのatan2関数の結果を返します。

atan2関数は以下で定義されます。

atan2(y, x) = -i * log( (x + i * y) / sqrt( x*x + y*y ) )
[PARAM] z:
複素数
Math.#atanh(z) -> Complex [redefined by complex]

複素関数としてのatanh関数(双曲逆tan関数)の結果を返します。

atanh関数は以下で定義されます。

atanh(z) = 1/2 * log((1+z) / (1-z))
[PARAM] z:
複素数
Math.#cos(z) -> Complex [redefined by complex]

複素関数としてのcos関数の結果を返します。

cos関数は以下で定義されます。

cos(z)  = (exp(i * z) + exp(-i * z)) / 2
[PARAM] z:
複素数
Math.#cosh(z) -> Complex [redefined by complex]

複素関数としてのcosh関数(双曲線cos関数)の結果を返します。

cosh関数は以下で定義されます。

cosh(z) = (exp(z) + exp(-z)) / 2
[PARAM] z:
複素数
Math.#exp(z) -> Complex [redefined by complex]

指数関数(自然対数 e の z 乗)を返します。

複素数 z = a + b *i に対する exp(z) の定義は以下です。

exp(z)  = exp(a) * exp(i * b)
[PARAM] z:
複素数

[注意]

虚部が 0 でも [[c:Complex]] クラスのオブジェクトであれば [[c:Complex]] クラスのオブジェクトを返すことに注意してください。

n = 2
z = Complex.new(2, 0)

p Math.exp(n) #=> 7.38905609893065
p Math.exp(z) #=> Complex(7.38905609893065, 0.0)
Math.#log(z) -> Complex [redefined by complex]

複素数 z の自然対数を返します。

絶対値 r 偏角 theta の複素数 z に対する log(z) は以下で定義されます。

log(z)  = log(r) + i * theta
[PARAM] z:
複素数

[注意]

虚部が 0 でも [[c:Complex]] クラスのオブジェクトであれば [[c:Complex]] クラスのオブジェクトを返すことに注意してください。

n = 2
z = Complex.new(2, 0)

p Math.log(n) #=> 0.693147180559945
p Math.log(z) #=> Complex(0.693147180559945, 0.0)
Math.#log10(z) -> Complex [redefined by complex]

複素数 z の常用対数を返します。

複素数 z に対する log10(z) は以下で定義されます。

log10(z)  = log(z) / log(10)
[PARAM] z:
複素数

[注意]

虚部が 0 でも [[c:Complex]] クラスのオブジェクトであれば [[c:Complex]] クラスのオブジェクトを返すことに注意してください。

n = 2
z = Complex.new(2, 0)

p Math.log10(n) #=> 0.301029995663981
p Math.log10(z) #=> Complex(0.301029995663981, 0.0)
Math.#sin(z) -> Complex [redefined by complex]

複素関数としてのsin関数の結果を返します。

sin関数は以下で定義されます。

sin(z)  = (exp(i * z) - exp(-i * z)) / 2
[PARAM] z:
複素数
Math.#sinh(z) -> Complex [redefined by complex]

複素関数としてのsinh関数(双曲線sin関数)の結果を返します。

sinh関数は以下で定義されます。

sinh(z) = (exp(z) - exp(-z)) / 2
[PARAM] z:
複素数
Math.#sqrt(z) -> Complex [redefined by complex]

z の平方根を返します。

複素関数としてのsqrt()の定義は以下です。

sqrt(z) = sqrt(r) * exp(i * t/2)
[PARAM] z:
平方根を求める複素数

[注意]

虚部が 0 でも [[c:Complex]] クラスのオブジェクトであれば [[c:Complex]] クラスのオブジェクトを返すことに注意してください。

n = 2
z = Complex.new(2, 0)

p Math.sqrt(n) #=> 1.4142135623731
p Math.sqrt(z) #=> Complex(1.4142135623731, 0.0)
Math.#tan(z) -> Complex [redefined by complex]

複素関数としてのtan関数の結果を返します。

tan関数は以下で定義されます。

tan(z)  = sin(z) / cos(z)
[PARAM] z:
複素数
Math.#tanh(z) -> Complex [redefined by complex]

複素関数としてのtanh関数(双曲線tan関数)の結果を返します。

tanh関数は以下で定義されます。

tanh(z) = sinh(z) / cosh(z)
[PARAM] z:
複素数
Numeric#arg -> Fixnum | Float [added by complex]

複素数として見た場合の偏角を[-π,π]の範囲で返します。 非負なら0、負なら Math::PI を返します。

例:

n = 1000
f = -12.345

p n.arg    #=> 0
p f.arg    #=> 3.14159265358979
Numeric#conj -> self [added by complex]
Numeric#conjugate -> self [added by complex]

複素数として見た場合の共役を返します。 つまり、self が実数の場合はselfを返します。

Numeric#im -> Complex [added by complex]

実数に対し、純虚数化した Complex クラスのオブジェクトを返します。

例:

n = 100
p n.im   #=> Complex(0, 100)
Numeric#image -> Fixnum [added by complex]
Numeric#imag -> Fixnum [added by complex]

複素数として見た場合の虚部を返します。 つまり、self が実数の場合は 0 を返します。

Numeric#real -> self [added by complex]

複素数として見た場合の実部を返します。 つまり、self が実数の場合はそのまま、selfを返します。

Classes

Sublibraries