Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Mathモジュール

module Math

クラスの継承リスト: Math

要約

浮動小数点演算をサポートするモジュールです。

Math モジュールにはさまざま数学関数がモジュール関数として定義されています。 モジュール関数は以下のように,モジュールの特異メソッドとして呼び出す使い方と、 モジュールをインクルードしてレシーバーを省略した形で呼び出す使い方の両方ができます。

pi = Math.atan2(1, 1)*4;
include Math
pi2 = atan2(1, 1)*4

目次

モジュール関数
acos acos acosh acosh asin asin asinh asinh atan atan atan2 atan2 atanh atanh cos cos cosh cosh erf erfc exp exp frexp hypot ldexp log log log10 log10 rsqrt sin sin sinh sinh sqrt sqrt sqrt tan tan tanh tanh
定数
E PI

モジュール関数

acos(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

acos(z) = -i * log(z + i*sqrt(1-z*z))
[PARAM] z:
複素数
acos(x) -> Float[permalink][rdoc]

x の逆余弦関数の値をラジアンで返します。

[PARAM] x:
-1.0 <= x <= 1 の範囲内の実数
[RETURN]
返される値の範囲は [0, +π] です。
[EXCEPTION] Errno::EDOM:
引数に範囲外の値を指定した場合に発生します。
acosh(x) -> Float[permalink][rdoc]

x の逆双曲線余弦関数の値を返します。

定義

acosh(x) = log(x + sqrt(x * x - 1)) [x >= 1]
[PARAM] x:
x >= 1 の範囲の実数
[EXCEPTION] Errno::EDOM:
範囲外の値を引数に指定した場合に発生します。
acosh(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

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

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

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

asin(z) = -i * log(i*z + sqrt(1-z*z))
[PARAM] z:
複素数
asin(x) -> Float[permalink][rdoc]

x の逆正弦関数の値をラジアンで返します。

[PARAM] x:
-1.0 <= x <= 1 の範囲内の実数
[RETURN]
返される値の範囲は[-π/2, +π/2] です。
[EXCEPTION] Errno::EDOM:
引数に範囲外の値を指定した場合に発生します。
asinh(x) -> Float[permalink][rdoc]

x の逆双曲線正弦関数の値を返します。

定義

asinh(x) = log(x + sqrt(x * x + 1))
[PARAM] x:
実数
asinh(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

asinh(z) = log(z + sqrt(z*z+1))
[PARAM] z:
複素数
atan(x) -> Float[permalink][rdoc]

x の逆正接関数の値をラジアンで返します。

[PARAM] x:
実数
[RETURN]
返される値の範囲は [-π/2, +π/2] です。
atan(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

atan(z) = i/2 * log((i+z) / (i-z))
[PARAM] z:
複素数
atan2(y, x) -> Float[permalink][rdoc]

y / x の逆正接関数の値を返します。

[PARAM] y:
実数
[PARAM] x:
実数
[RETURN]
返される値の範囲は [-π, π] です。
Math.atan2(1,0)   #=>  1.5707963267949
Math.atan2(-1,0)  #=> -1.5707963267949
atan2(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

atan2(y, x) = -i * log( (x + i * y) / sqrt( x*x + y*y ) )
[PARAM] z:
複素数
atanh(x) -> Float[permalink][rdoc]

x の逆双曲線正接関数の値を返します。

定義

atanh(x) = log((1+x)/(1-x)) / 2     [-1 < x < 1]
[PARAM] x:
-1 < x < 1 の実数
[RETURN]
実数
[EXCEPTION] Errno::EDOM:
範囲外の値を引数に指定した場合に発生します。
atanh(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

atanh(z) = 1/2 * log((1+z) / (1-z))
[PARAM] z:
複素数
cos(x) -> Float[permalink][rdoc]

x の余弦関数の値をラジアンで返します。

[PARAM] x:
実数
[RETURN]
[-1, 1] の実数
cos(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

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

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

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

cosh(z) = (exp(z) + exp(-z)) / 2
[PARAM] z:
複素数
cosh(x) -> Float[permalink][rdoc]

x の双曲線余弦関数の値を返します。

定義

cosh(x) = (exp(x) + exp(-x)) / 2
[PARAM] x:
実数
erf(x) -> Float[permalink][rdoc]

x の誤差関数の値を返します。

[PARAM] x:
実数
erfc(x) -> Float[permalink][rdoc]

x の相補誤差関数の値を返します。

[PARAM] x:
実数
exp(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

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

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

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

p Math.exp(n) #=> 7.38905609893065
p Math.exp(z) #=> Complex(7.38905609893065, 0.0)
exp(x) -> Float[permalink][rdoc]

x の指数関数の値を返します。

すなわち e の x 乗の値を返します( e は自然対数の底)。

[PARAM] x:
実数

[SEE_ALSO] exp(3)

frexp(x) -> [Float, Fixnum][permalink][rdoc]

実数 x の仮数部と指数部の配列を返します。

[PARAM] x:
実数
hypot(x, y) -> Float[permalink][rdoc]

sqrt(x*x + y*y) を返します。

この値は x, y を直交する 2 辺とする直角三角形の斜辺(hypotenuse)の長さです。

[PARAM] x:
実数
[PARAM] y:
実数
Math.hypot(3, 4) #=> 5.0
ldexp(x, exp) -> Float[permalink][rdoc]

実数 x に 2 の exp 乗をかけた数を返します。

[PARAM] x:
実数
[PARAM] exp:
整数。小数点以下切捨て。
log(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

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

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

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

p Math.log(n) #=> 0.693147180559945
p Math.log(z) #=> Complex(0.693147180559945, 0.0)
log(x) -> Float[permalink][rdoc]

x の自然対数を返します。

[PARAM] x:
正の実数
[EXCEPTION] Errno::EDOM:
引数が負の値である場合に発生します。
[EXCEPTION] Errno::ERANGE:
引数が 0 の場合に発生します。
log10(x) -> Float[permalink][rdoc]

x の常用対数を返します。

[PARAM] x:
正の実数
[EXCEPTION] Errno::EDOM:
引数が負の値である場合に発生します。
[EXCEPTION] Errno::ERANGE:
引数が 0 の場合に発生します。
log10(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

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

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

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

p Math.log10(n) #=> 0.301029995663981
p Math.log10(z) #=> Complex(0.301029995663981, 0.0)
rsqrt(a) -> Numeric[permalink][rdoc] [redefined by mathn]

[TODO]

複素数を考慮しないので、負の数や Complex をあたえないでください。

a が Float の時は、Float を返します。 それ以外の時、平方根が有理数であれば、Rational または Integer を返します。 無理数であれば、Float を返します。

sin(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

sin(z)  = (exp(i * z) - exp(-i * z)) / 2
[PARAM] z:
複素数
sin(x) -> Float[permalink][rdoc]

x の正弦関数の値をラジアンで返します。

[PARAM] x:
実数
[RETURN]
[-1, 1] の実数
sinh(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

sinh(z) = (exp(z) - exp(-z)) / 2
[PARAM] z:
複素数
sinh(x) -> Float[permalink][rdoc]

x の双曲線正弦関数の値を返します。

定義

sinh(x) = (exp(x) - exp(-x)) / 2
[PARAM] x:
実数
sqrt(x) -> Float[permalink][rdoc]

x の平方根を返します。

[PARAM] x:
正の実数
[EXCEPTION] Errno::EDOM:
引数が負の値である場合に発生します。
sqrt(z) -> Complex[permalink][rdoc] [redefined by complex]

z の平方根を返します。

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

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

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

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

p Math.sqrt(n) #=> 1.4142135623731
p Math.sqrt(z) #=> Complex(1.4142135623731, 0.0)
sqrt(a) -> Numeric[permalink][rdoc] [redefined by mathn]

[TODO]

a の正の平方根を返します。 a が Complex の時は、Complex を返します。 a が負の時は、a を正にして、その平方根を Complex の虚数部に入れて返します。 それ以外は、Math.rsqrt の結果を返します。

tan(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

tan(z)  = sin(z) / cos(z)
[PARAM] z:
複素数
tan(x) -> Float[permalink][rdoc]

x の正接関数の値をラジアンで返します。

[PARAM] x:
実数
[RETURN]
実数
tanh(x) -> Float[permalink][rdoc]

x の双曲線正接関数の値を返します。

定義

tanh(x) = sinh(x) / cosh(x)
[PARAM] x:
実数
[RETURN]
[-1, 1] の範囲の実数
tanh(z) -> Complex[permalink][rdoc] [redefined by complex]

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

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

tanh(z) = sinh(z) / cosh(z)
[PARAM] z:
複素数

定数

E -> Float[permalink][rdoc]

自然対数の底

p Math::E
# => 2.718281828
PI -> Float[permalink][rdoc]

円周率

p Math::PI
# => 3.141592654