Questo modulo è sempre disponibile. Fornisce le funzioni matematiche per i numeri complessi. Le funzioni disponibili sono le seguenti:
x) |
x) |
x) |
x) |
1j
a ±-∞j
, entrambi continui
dall'alto.
Questi rami di funzione dovrebbero essere considerati un errore da
correggere nelle prossime versioni.
I rami di funzione corretti dovrebbero estendersi lungo l'asse
immaginario, uno da 1j
fino a ∞j
e continuo da
destra e uno da -1j
a -∞j
continuo da sinistra.
x) |
1j
a ∞j
, continuo da sinistra.
L'altro si estende lungo l'asse immaginario da -1j
a
-∞j
, continuo da sinistra.
(Questo metodo probabilmente dovrebbe venire modificato così che la
diramazione superiore diventi continua dall'altro lato.)
x) |
x) |
x) |
x) |
e**x
.
x) |
x) |
x) |
x) |
x) |
x) |
x) |
Il modulo definisce anche due costanti matermatiche:
Notate che la selezione di funzioni è simile, ma non identica, a
quella del modulo math. La ragione di
avere due moduli è che molti utilizzatori non sono interessati ai
numeri complessi, e magari non sanno neppure cosa siano. Essi
preferiscono che math.sqrt(-1)
sollevi un'eccezione piuttosto
che restituire un numero complesso. Inoltre osservate che le
funzioni definite in cmath restituiscono sempre un numero
complesso anche se il risultato può essere espresso come numero reale
(nel caso in cui il numero complesso abbia la parte immaginaria uguale a
zero).
Una nota sui rami di funzione: Essi sono curve lungo le quali la funzione data smette di essere continua. Questa è una caratteristica necessaria in molte funzioni complesse. Si suppone che se voi avete la necessità di lavorare con le funzioni complesse, dovrete conoscere il significato dei rami di funzione. Consultate un qualunque testo (non troppo elementare) che tratti delle variabili complesse per saperne di più. Per informazioni sulla scelta adatta dei rami di funzione per gli usi numerici, un buon riferimento può essere il seguente:
Vedete anche:
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.