Робота з комплексними числами

C#:
Робота з комплексними числами

Як це зробити:

C# має вбудовану структуру System.Numerics.Complex для обробки комплексних чисел. Ось швидкий огляд:

using System;
using System.Numerics;

class ComplexNumberExample
{
    static void Main()
    {
        // Створення комплексних чисел
        Complex c1 = new Complex(4, 5); // 4 + 5i
        Complex c2 = Complex.FromPolarCoordinates(1, Math.PI / 4); // 1 * e^(iπ/4)

        // Основні операції
        Complex sum = c1 + c2;
        Complex difference = c1 - c2;
        Complex product = c1 * c2;
        Complex quotient = c1 / c2;

        // Виведення результатів
        Console.WriteLine($"Сума: {sum}");
        Console.WriteLine($"Різниця: {difference}");
        Console.WriteLine($"Добуток: {product}");
        Console.WriteLine($"Частка: {quotient}");
        Console.WriteLine($"Модуль c1: {c1.Magnitude}");
        Console.WriteLine($"Фаза c1: {c1.Phase}");
    }
}

І це виведе:

Сума: (4.70710678118655, 5.70710678118655)
Різниця: (3.29289321881345, 4.29289321881345)
Добуток: (-1.00000000000001, 9)
Частка: (0.6, 0.8)
Модуль c1: 6.40312423743285
Фаза c1: 0.896055384571344

Поглиблений Огляд

Комплексні числа, які складаються з дійсної та уявної частини (часто записуються як a + bi), існують з 17 століття. Італійський математик Джероламо Кардано є відомим за їх раннє розвиток. У програмуванні, робота з комплексними числами включає розуміння та управління цими двома відмінними частинами.

Хоча System.Numerics.Complex в C# є міцним і інтегрованим у мову, інші мови, як-от Python, пропонують схожу функціональність за допомогою cmath або сторонніх бібліотек. І якщо ви працюєте у старій версії C# або версії .NET, яка не підтримує System.Numerics, можливо, доведеться створити власний клас комплексних чисел або знайти бібліотеку.

Внутрішньо, операції над комплексними числами використовують арифметику з плаваючою точкою, яка може ввести помилки округлення. Таким чином, при реалізації алгоритмів, що інтенсивно використовують комплексні числа, ключовим є пам’ятати про це та враховувати вплив на точність і акуратність.

Дивіться також

  1. Посібник C# для System.Numerics.Complex: https://learn.microsoft.com/en-us/dotnet/api/system.numerics.complex
  2. Поглиблений вивчення математики комплексних чисел: https://mathworld.wolfram.com/ComplexNumber.html
  3. Для альтернативних реалізацій та бібліотек дивіться Math.NET Numerics: https://numerics.mathdotnet.com/