kennen:include:complex
Inhaltsverzeichnis
<complex>
Komplexe Zahlen
Komplexe Zahlen werden in drei Spezialisierungen angeboten:
std::complex<float> std::complex<double> std::complex<long double>
Zumeist wird man einen dieser Typen bevorzugen:
typedef std::complex<double> complex; complex c(2,3); std::cout << c << " = " << c.real() << '+' << c.imag() << "j\n"; // (2,3) = 2+3j std::cin >> c; // erlaubt: 2 (2) (2,3)
Ausgaben erfolgen als geklammertes Zahlenpaar (re,im). Eingaben sind in drei Formen erlaubt. Neben Arithmetik, Vergleichen und den üblichen mathematischen Funktionen aus <cmath> sind definiert:
real( c ) | Realteil |
imag( c ) | Imaginärteil |
abs( c ) | Betrag (Abstand rho vom Nullpunkt) |
arg( c ) | orientierter Winkel phi von Realachse |
norm( c ) | Quadrat von abs(c) |
conj( c ) | konjugiert komplexe Zahl (re,-im) |
polar(rho, phi) | komplexe Zahl aus Polarkoordinaten |
Beispiel
- mandelbrot.cpp
#include <complex> #include <iostream> auto mandelbrot(std::complex<double> c) { std::complex<double> z; for (auto i = 0; i < 100; ++i) z = z*z + c; return abs(z) < 2; } auto pixel(bool value) { return " *"[value]; } int main() { for (auto y = 1.0; y >= -1.0; y -= 0.05) { for (auto x = -2.0; x <= 0.5; x += 0.03) std::cout << pixel(mandelbrot({x,y})); std::cout << '\n'; } }
Ausgabe:
* ******* ******** ****** ******** * **** ******************* ************************** *** ***************************** ********************************* ********************************* ************************************** ************************************ ** ***** ************************************ *********** ************************************* *************** ************************************** ****************************************************** *** ***************************************************** *************************************************************************** *** ***************************************************** ****************************************************** *************** ************************************** *********** ************************************* ** ***** ************************************ ************************************ ************************************** ********************************* ********************************* ***************************** ************************** *** **** ******************* ******** * ****** ******** ******* *
kennen/include/complex.txt · Zuletzt geändert: 2020-07-30 09:20 von 127.0.0.1