C++:
Att arbeta med komplexa tal
Hur man gör:
C++ har ett inbyggt bibliotek <complex>
som underlättar arbete med komplexa tal. Här är en snabb titt:
#include <iostream>
#include <complex>
int main() {
std::complex<double> num1(2.0, 3.0); // Skapar ett komplext tal (2 + 3i)
std::complex<double> num2(3.0, 4.0); // Ett annat komplext tal (3 + 4i)
// Addition
std::complex<double> resultat = num1 + num2;
std::cout << "Resultat av addition: " << resultat << std::endl; // (5 + 7i)
// Multiplikation
resultat = num1 * num2;
std::cout << "Resultat av multiplikation: " << resultat << std::endl; // (-6 + 17i)
// Konjugat
resultat = std::conj(num1);
std::cout << "Konjugatet av num1: " << resultat << std::endl; // (2 - 3i)
return 0;
}
Fördjupning
Komplexa tal har en rik historia, först dyker de upp i lösningar på kubiska ekvationer under 1500-talet. De är nödvändiga inom många områden, inte bara programmering. Inom datavetenskap hjälper komplexa tal i algoritmer som kräver ett tvådimensionellt nummerutrymme, som snabba Fouriertransformen (FFT).
Medan C++’s <complex>
bibliotek är standard, finns alternativ i andra språk, som Pythons complex
datatyp eller JavaScripts matematikbibliotek. <complex>
biblioteket i sig självt ger omfattande funktionalitet, inklusive trigonometriska, exponentiella och logaritmiska operationer skräddarsydda för komplexa tal.
När man programmerar dessa tal är det viktigt att förstå den underliggande matematiken för att förhindra felaktigheter och förstå operationer som komplex konjugation, som vänder tecknet på den imaginära delen, eller implikationerna av Eulers formel som relaterar komplexa exponentiella till trigonometriska funktioner.
Se även
- C++ Standard Template Library-dokumentationen: https://en.cppreference.com/w/cpp/header/complex
- Ett djupare matematiskt dyk i komplexa tal: https://mathworld.wolfram.com/ComplexNumber.html
- För visualisering kan Pythonbiblioteket Matplotlib plotta komplexa tal: https://matplotlib.org/