Å jobbe med komplekse tall

C++:
Å jobbe med komplekse tall

Hvordan:

C++ har et innebygd bibliotek <complex> som letter arbeidet med komplekse tall. Her er en rask titt:

#include <iostream>
#include <complex>

int main() {
    std::complex<double> num1(2.0, 3.0); // Oppretter et komplekst tall (2 + 3i)
    std::complex<double> num2(3.0, 4.0); // Et annet komplekst tall (3 + 4i)

    // Addisjon
    std::complex<double> result = num1 + num2;
    std::cout << "Addisjonsresultat: " << result << std::endl; // (5 + 7i)

    // Multiplikasjon
    result = num1 * num2;
    std::cout << "Multiplikasjonsresultat: " << result << std::endl; // (-6 + 17i)

    // Konjugat
    result = std::conj(num1);
    std::cout << "Konjugatet av num1: " << result << std::endl; // (2 - 3i)
    
    return 0;
}

Dypdykk

Komplekse tall har en rik historie, og dukket først opp i løsninger på kubiske ligninger på 1500-tallet. De er essensielle i mange felt, ikke bare programmering. Innen datavitenskap hjelper komplekse tall i algoritmer som krever et todimensjonalt tallrom, som den Raske Fouriertransformasjonen (FFT).

Selv om C++ sitt <complex> bibliotek er standard, finnes det alternativer i andre språk, som Pythons complex datatypen eller JavaScripts matematikkbiblioteker. <complex> biblioteket selv tilbyr omfattende funksjonalitet, inkludert trigonometriske, eksponensielle og logaritmiske operasjoner skreddersydd for komplekse tall.

Når man programmerer disse tallene, er det nøkkelen å forstå den underliggende matematikken for å forhindre unøyaktigheter og forstå operasjoner som kompleks konjugasjon, som snur fortegnet på den imaginære delen, eller implikasjonene av Eulers formel som relaterer komplekse eksponentialer til trigonometriske funksjoner.

Se også