9.2. math —数学関数—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/math
移動先:案内検索

9.2。 算数 —数学関数

このモジュールはいつでも利用できます。 C標準で定義されている数学関数へのアクセスを提供します。

これらの関数は、複素数では使用できません。 複素数のサポートが必要な場合は、 cmath モジュールの同じ名前の関数を使用してください。 ほとんどのユーザーは複素数を理解するために必要なほど多くの数学を学びたくないので、複素数をサポートする関数とサポートしない関数は区別されます。 複素数の結果の代わりに例外を受け取ると、パラメーターとして使用される予期しない複素数を早期に検出できるため、プログラマーは最初にそれが生成された方法と理由を判別できます。

このモジュールでは、次の機能が提供されます。 特に明記されていない限り、すべての戻り値は浮動小数点数です。

9.2.1。 数理論関数と表現関数

math.ceil(x)
x の上限をfloatとして返します。最小の整数値は x 以上です。
math.copysign(x, y)

y の符号で x を返します。 符号付きゼロをサポートするプラットフォームでは、copysign(1.0, -0.0)-1.0 を返します。

バージョン2.6の新機能。

math.fabs(x)
x の絶対値を返します。
math.factorial(x)

x 階乗を返します。 x が整数でないか負の場合、ValueErrorを上げます。

バージョン2.6の新機能。

math.floor(x)
x のフロアをfloatとして返します。最大の整数値は x 以下です。
math.fmod(x, y)
プラットフォームCライブラリで定義されているように、fmod(x, y)を返します。 Python式x % yは同じ結果を返さない場合があることに注意してください。 C標準の目的は、fmod(x, y)が、ある整数 n に対してx - n*yと正確に(数学的に;無限の精度で)等しくなり、結果がと同じ符号を持つようにすることです。 x およびabs(y)未満の大きさ。 Pythonのx % yは、代わりに y の符号の結果を返し、float引数に対して正確に計算できない場合があります。 たとえば、fmod(-1e-100, 1e100)-1e-100ですが、Pythonの-1e-100 % 1e100の結果は1e100-1e-100であり、フロートとして正確に表すことはできず、驚くべきことに丸められます。 1e100。 このため、浮動小数点数を操作する場合は関数 fmod()が一般的に推奨され、整数を操作する場合はPythonのx % yが推奨されます。
math.frexp(x)
x の仮数と指数をペア(m, e)として返します。 m は浮動小数点数であり、 ex == m * 2**eが正確に一致するような整数です。 x がゼロの場合、(0.0, 0)を返し、それ以外の場合は0.5 <= abs(m) < 1を返します。 これは、フロートの内部表現をポータブルな方法で「分解」するために使用されます。
math.fsum(iterable)

iterableの値の正確な浮動小数点合計を返します。 複数の中間部分和を追跡することにより、精度の低下を回避します。

>>> sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
0.9999999999999999
>>> fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
1.0

アルゴリズムの精度は、IEEE-754算術保証と、丸めモードが半偶数である一般的なケースに依存します。 一部のWindows以外のビルドでは、基になるCライブラリが拡張精度の加算を使用し、中間合計を2倍に丸めて、最下位ビットでオフになる場合があります。

詳細な説明と2つの代替アプローチについては、 ASPNクックブックのレシピで正確な浮動小数点の合計を参照してください。

バージョン2.6の新機能。

math.isinf(x)

フロート x が正または負の無限大であるかどうかを確認します。

バージョン2.6の新機能。

math.isnan(x)

フロート x がNaN(数値ではない)であるかどうかを確認します。 NaNの詳細については、IEEE754標準を参照してください。

バージョン2.6の新機能。

math.ldexp(x, i)
x * (2**i)を返します。 これは本質的に関数 frexp()の逆です。
math.modf(x)
x の小数部と整数部を返します。 どちらの結果も x の符号が付いており、浮動小数点数です。
math.trunc(x)

RealxIntegral (通常は長整数)に切り捨てて返します。 __trunc__メソッドを使用します。

バージョン2.6の新機能。

frexp()modf()は、同等のCとは異なる呼び出し/戻りパターンを持っていることに注意してください。これらは、2番目の引数を返すのではなく、単一の引数を取り、値のペアを返します。 '出力パラメータ'を介して値を返します(Pythonにはそのようなものはありません)。

ceil()floor()、および modf()関数の場合、 all 浮動小数点数が十分に大きいことに注意してください。大きさは正確な整数です。 Pythonフロートは通常53ビット以下の精度(プラットフォームCダブルタイプと同じ)を持ちます。この場合、フロート xabs(x) >= 2**52は必ずしも小数ビットを持ちません。


9.2.2。 パワー関数と対数関数

math.exp(x)
e**xを返します。
math.expm1(x)

e**x - 1を返します。 小さなフロート x の場合、exp(x) - 1で減算すると、精度が大幅に低下する可能性があります。 expm1()関数は、この量を完全な精度で計算する方法を提供します。

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05

バージョン2.7の新機能。

math.log(x[, base])

1つの引数を使用して、 x の自然対数を返します(ベース e に)。

2つの引数を使用して、 x の対数をlog(x)/log(base)として計算された指定のベースに返します。

バージョン2.3で変更: base 引数が追加されました。

math.log1p(x)

1 + x (ベース e )の自然対数を返します。 結果は、 x がゼロに近い場合に正確な方法で計算されます。

バージョン2.6の新機能。

math.log10(x)
x の10を底とする対数を返します。 これは通常、log(x, 10)よりも正確です。
math.pow(x, y)

xyの累乗に戻します。 例外的なケースは、可能な限りC99標準の付録「F」に従います。 特に、pow(1.0, x)pow(x, 0.0)は、xがゼロまたはNaNの場合でも、常に1.0を返します。 xyの両方が有限であり、xが負であり、yが整数でない場合、pow(x, y)は未定義であり、発生します。 ValueError

組み込みの**演算子とは異なり、 math.pow()は両方の引数をタイプ float に変換します。 **または組み込みの pow()関数を使用して、正確な整数の累乗を計算します。

バージョン2.6で変更: 1**nanおよびnan**0の結果は未定義でした。

math.sqrt(x)
x の平方根を返します。


9.2.3。 三角関数

math.acos(x)
x のアークコサインをラジアンで返します。
math.asin(x)
x のアークサインをラジアンで返します。
math.atan(x)
x のアークタンジェントをラジアンで返します。
math.atan2(y, x)
atan(y / x)をラジアンで返します。 結果は-pipiの間にあります。 原点から点(x, y)までの平面内のベクトルは、正のX軸とこの角度をなします。 atan2()のポイントは、両方の入力の符号がわかっているため、角度の正しい象限を計算できることです。 たとえば、atan(1)atan2(1, 1)はどちらもpi/4ですが、atan2(-1, -1)-3*pi/4です。
math.cos(x)
x ラジアンの余弦を返します。
math.hypot(x, y)
ユークリッドノルムsqrt(x*x + y*y)を返します。 これは、原点から点(x, y)までのベクトルの長さです。
math.sin(x)
x ラジアンの正弦を返します。
math.tan(x)
x ラジアンの接線を返します。


9.2.4。 角度変換

math.degrees(x)
角度 x をラジアンから度に変換します。
math.radians(x)
角度 x を度からラジアンに変換します。


9.2.5。 双曲線関数

math.acosh(x)

x の逆双曲線コサインを返します。

バージョン2.6の新機能。

math.asinh(x)

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

バージョン2.6の新機能。

math.atanh(x)

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

バージョン2.6の新機能。

math.cosh(x)
x の双曲線コサインを返します。
math.sinh(x)
x の双曲線正弦を返します。
math.tanh(x)
x の双曲線正接を返します。


9.2.6。 特殊機能

math.erf(x)

x でエラー関数を返します。

バージョン2.7の新機能。

math.erfc(x)

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

バージョン2.7の新機能。

math.gamma(x)

x でガンマ関数を返します。

バージョン2.7の新機能。

math.lgamma(x)

x でのガンマ関数の絶対値の自然対数を返します。

バージョン2.7の新機能。


9.2.7。 定数

math.pi
数学定数π= 3.141592…、利用可能な精度。
math.e
数学定数e = 2.718281…、利用可能な精度。

も参照してください

モジュール cmath
これらの関数の多くの複素数バージョン。