C#:
Umgang mit komplexen Zahlen
Wie geht das:
C# verfügt über eine eingebaute System.Numerics.Complex
Struktur zur Verarbeitung komplexer Zahlen. Hier ist eine kurze Anleitung:
using System;
using System.Numerics;
class BeispielKomplexeZahlen
{
static void Main()
{
// Erstellen von komplexen Zahlen
Complex c1 = new Complex(4, 5); // 4 + 5i
Complex c2 = Complex.FromPolarCoordinates(1, Math.PI / 4); // 1 * e^(iπ/4)
// Grundlegende Operationen
Complex summe = c1 + c2;
Complex differenz = c1 - c2;
Complex produkt = c1 * c2;
Complex quotient = c1 / c2;
// Ergebnisse ausgeben
Console.WriteLine($"Summe: {summe}");
Console.WriteLine($"Differenz: {differenz}");
Console.WriteLine($"Produkt: {produkt}");
Console.WriteLine($"Quotient: {quotient}");
Console.WriteLine($"Betrag von c1: {c1.Magnitude}");
Console.WriteLine($"Phase von c1: {c1.Phase}");
}
}
Und das wird ausgegeben:
Summe: (4.70710678118655, 5.70710678118655)
Differenz: (3.29289321881345, 4.29289321881345)
Produkt: (-1.00000000000001, 9)
Quotient: (0.6, 0.8)
Betrag von c1: 6.40312423743285
Phase von c1: 0.896055384571344
Tiefere Einblicke
Komplexe Zahlen, die aus einem realen und einem imaginären Teil bestehen (oft als a + bi notiert), gibt es seit dem 17. Jahrhundert. Der italienische Mathematiker Gerolamo Cardano wird mit ihrer frühen Entwicklung in Verbindung gebracht. Bei der Programmierung geht es darum, diese beiden unterschiedlichen Teile zu verstehen und zu verwalten.
Obwohl System.Numerics.Complex
in C# robust und in die Sprache integriert ist, bieten andere Sprachen wie Python mit cmath
oder Drittanbieterbibliotheken ähnliche Funktionalitäten. Und wenn Sie in einer älteren Version von C# oder einer .NET-Version arbeiten, die System.Numerics
nicht unterstützt, müssen Sie möglicherweise Ihre eigene komplexe Zahlenklasse erstellen oder eine Bibliothek finden.
Intern verwenden die Operationen mit komplexen Zahlen Gleitkommaarithmetik, was zu Rundungsfehlern führen kann. Daher ist es wichtig, dies bei der Implementierung von Algorithmen, die komplexe Zahlen umfangreich nutzen, zu berücksichtigen und den Einfluss auf Präzision und Genauigkeit zu bedenken.
Siehe auch
- C# Referenz für
System.Numerics.Complex
: https://learn.microsoft.com/de-de/dotnet/api/system.numerics.complex - Ein tieferer Einblick in die Mathematik komplexer Zahlen: https://mathworld.wolfram.com/ComplexNumber.html
- Für alternative Implementierungen und Bibliotheken, siehe Math.NET Numerics: https://numerics.mathdotnet.com/