Logarithm of complex sine and cosine avoiding overflow
log(cos(Z)) and log(sin(Z)) return infinities for abs(imag(Z)) > 711 in double precision, or abs(imag(Z)) > 90 in single precision. The overflow occurs in the trigonometric function; the correct final result has about the same magnitude as Z, and can be readily computed.
Using logcos(Z) or logsin(Z) instead of log(cos(Z)) or log(sin(Z)) respectively avoids the overflow, greatly extending the range of arguments which give a useful result.
The functions exploit a simple approximation; this is only applied when the approximation error is less than the precision to which numbers can be represented, so there is no loss of accuracy. Both single and double precision computation are supported.
Note that there is no point in using these functions when computing with real numbers, or with complex numbers if it is known that the imaginary part is close to zero.
Zitieren als
David Young (2026). Logarithm of complex sine and cosine avoiding overflow (https://de.mathworks.com/matlabcentral/fileexchange/32947-logarithm-of-complex-sine-and-cosine-avoiding-overflow), MATLAB Central File Exchange. Abgerufen.
Kompatibilität der MATLAB-Version
Plattform-Kompatibilität
Windows macOS LinuxKategorien
- Signal Processing > Signal Processing Toolbox > Transforms, Correlation, and Modeling > Correlation and Convolution >
Tags
Live Editor erkunden
Erstellen Sie Skripte mit Code, Ausgabe und formatiertem Text in einem einzigen ausführbaren Dokument.
| Version | Veröffentlicht | Versionshinweise | |
|---|---|---|---|
| 1.0.0.0 |
