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
, можливо, доведеться створити власний клас комплексних чисел або знайти бібліотеку.
Внутрішньо, операції над комплексними числами використовують арифметику з плаваючою точкою, яка може ввести помилки округлення. Таким чином, при реалізації алгоритмів, що інтенсивно використовують комплексні числа, ключовим є пам’ятати про це та враховувати вплив на точність і акуратність.
Дивіться також
- Посібник C# для
System.Numerics.Complex
: https://learn.microsoft.com/en-us/dotnet/api/system.numerics.complex - Поглиблений вивчення математики комплексних чисел: https://mathworld.wolfram.com/ComplexNumber.html
- Для альтернативних реалізацій та бібліотек дивіться Math.NET Numerics: https://numerics.mathdotnet.com/