このモジュールは常に利用できます。このモジュールでは、 複素数を扱う数学関数へのアクセス手段を提供しています。
提供している関数を以下に示します:
x) |
x) |
x) |
x) |
1j
の左から
±-∞j
に延びており、両方とも上で連続しています。
これらの branch cut は将来のリリースで修正されるべきバグとみなされて
います。
正しい branch cut は虚数軸に沿って延びており、一つは 1j
から ∞j
までで右から連続、もう一方は -1j
から下って -∞j
までで、左から連続です。
x) |
1j
から虚数軸に沿って ∞j
へと延びており、
左で連続です。もう一方は -1j
から虚数軸に沿って
-∞j
までで、左で連続です。
(この仕様は上の branch cut が反対側から連続になるように変更されるかも
しれません)。
x) |
x) |
x) |
x) |
e**x
を返します。
x[, base]) |
x) |
x) |
x) |
x) |
x) |
x) |
このモジュールではまた、以下の数学定数も定義しています:
math と同じような関数が選ばれて
いますが、全く同じではないので注意してください。機能を二つの
モジュールに分けているのは、複素数に興味がなかったり、もしかすると
複素数とは何かすら知らないようなユーザがいるからです。
そういった人たちはむしろ、math.sqrt(-1)
が複素数を返すよりも
例外を送出してほしいと考えます。また、cmath で定義されている
関数は、たとえ結果が実数で表現可能な場合 (虚数部分がゼロの複素数) でも、
常に複素数を返すので注意してください。
branch cut に関する注釈: branch cut をもつ曲線上では、与えられた関数は 連続でありえなくなります。これらは多くの複素関数における必然的な 特性です。複素関数を計算する必要がある場合、これらの branch cut に 関して理解しているものと仮定しています。悟りに至るために何らかの (到底基礎的とはいえない) 複素数に関する書をひもといてください。 数値計算を目的とした branch cut の正しい選択方法についての情報としては、 以下がよい参考文献となります:
参考:
Kahan, W: Branch cuts for complex elementary functions; or, Much ado about nothings's sign bit. In Iserles, A., and Powell, M. (eds.), The state of the art in numerical analysis. Clarendon Press (1987) pp165-211.