Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > complexライブラリ > Complexクラス
クラスの継承リスト: Complex < Numeric < Comparable < Object < Kernel
複素数を扱うためのクラスです。
このライブラリを require すると、Math モジュールが複素数対応に拡張されます。 対象となる複素数を以下のように極座標表示した時の
z = a + b * i = r * exp(i * t)
偏角 t は[-π,π]の範囲であると考えて、関数は定義されます。 Complex#argを参照して下さい。
以下が複素関数の定義です。
abs(z) = r sqrt(z) = sqrt(r) * exp(i * t/2) exp(z) = exp(a) * exp(i * b) log(z) = log(r) + i * t sin(z) = (exp(i * z) - exp(-i * z)) / 2i cos(z) = (exp(i * z) + exp(-i * z)) / 2 tan(z) = sin(z) / cos(z) sinh(z) = (exp(z) - exp(-z)) / 2 cosh(z) = (exp(z) + exp(-z)) / 2 tanh(z) = sinh(z) / cosh(z) asin(z) = -i * log(i*z + sqrt(1-z*z)) acos(z) = -i * log(z + i*sqrt(1-z*z)) atan(z) = i/2 * log((i+z) / (i-z)) atan2(y, x) = -i * log( (x + i * y) / sqrt( x*x + y*y ) ) asinh(z) = log(z + sqrt(z*z+1)) acosh(z) = log(z + sqrt(z*z-1)) atanh(z) = 1/2 * log((1+z) / (1-z))
また、添付ライブラリのベクトルクラス Vector、および、 行列クラス Matrix を読み込んでいるとき、 Vector や Matrix の要素として、複素数を使うことができます。 Vector および Matrix のそれぞれの項目を参照してください。
require 'complex' z1 = Complex.new(4, 3) z2 = Complex.new(2, 1) p z1 + z2 #=> Complex(6, 4) p z1 * z2 #=> Complex(5, 10) i = Complex::I p z1 == 4 + 3 * i #=> true
定義 | 説明 | |
---|---|---|
generic?(other) -> bool
|
||
new(r, i) -> Complex
|
実部が r、虚部が i であるComplexクラスのオブジェクトを生成します。 |
|
polar(r, theta) -> Complex
|
絶対値が r、偏角が theta である Complexクラスのオブジェクトを生成します。 |
定義 | 説明 | |
---|---|---|
self % c -> Complex
|
除算の剰余を計算します。 |
|
self * c -> Complex
|
複素数 c を乗じた結果を返します。 |
|
self ** c -> Complex
|
複素数 c でべき乗した結果 exp(c * log(self)) を返します |
|
self + c -> Complex
|
複素数 c を加えた結果を返します。 |
|
self - c -> Complex
|
複素数 c を減じた結果を返します。 |
|
self / other -> Complex
|
複素数 other で除した結果を返します。 |
|
self <=> c -> Fixnum
|
cとselfの絶対値absを比較した結果を返します。 |
|
self == c -> bool
|
c と等しければ、true を返します。 |
|
abs -> Float
|
自分自身の絶対値を返します。 |
|
abs2 -> Fixnum
|
自分自身の絶対値の2乗を返します。 |
|
angle -> Float
|
複素数の偏角を[-π,π]の範囲で返します。 |
|
coerce(other) -> Array
|
自分自身とotherのペアの配列を生成し、生成した配列を返します。 |
|
conj -> Complex
|
自分の共役複素数を返します。 |
|
denominator -> Fixnum
|
自分自身の実部・虚部の分母のLCM(最小公倍数)を返します。 |
|
hash -> Fixnum
|
複素数のハッシュ値を返します。 |
|
imag -> Fixnum
|
虚部を返します。 |
|
inspect -> String
|
自分自身について "Complex(実部, 虚部)" 形式の文字列を返します。 |
|
numerator -> Complex
|
Complex#denominator の値で実部・虚部を通分したものの分子のみを Complex で返します。 |
|
polar -> Array
|
複素数の極座標表示、すなわち、配列 [self.abs, self.arg] を返します。 |
|
quo(other) -> Complex
|
複素数otherでの除算結果を返します。 |
|
real -> Fixnum
|
実部を返します。 |
|
to_s -> String
|
自分自身について "実部 + 虚部i" 形式の文字列を返します。 |
定義 | 説明 | |
---|---|---|
I
|
虚数単位です。 |
+@
-@
ceil
clone
div
divmod
eql?
fdiv
floor
im
integer?
modulo
nonzero?
remainder
round
step
to_int
truncate
zero?
===
=~
__id__
__send__
_dump
class
dclone
display
enum_for
equal?
extend
freeze
frozen?
initialize
initialize_copy
instance_eval
instance_exec
instance_of?
instance_variable_defined?
instance_variable_get
instance_variable_set
instance_variables
is_a?
marshal_dump
marshal_load
method
method_missing
methods
nil?
pretty_inspect
pretty_print
pretty_print_cycle
pretty_print_inspect
pretty_print_instance_variables
private_methods
protected_methods
public_methods
remove_instance_variable
respond_to?
singleton_method_added
singleton_method_removed
singleton_method_undefined
singleton_methods
taint
tainted?
tap
to_a
to_ary
to_hash
to_io
to_proc
to_regexp
to_str
to_yaml
to_yaml_properties
to_yaml_style
untaint
定義 | 説明 | ライブラリ |
---|---|---|
Unify
|
内部実装で利用しています。深くは考えないでください。ユーザープログラムでは利用しないでください。 |
mathn |