C#:
Trabalhando com números complexos
Como:
C# possui uma estrutura integrada System.Numerics.Complex
para processar números complexos. Aqui está um rápido passo a passo:
using System;
using System.Numerics;
class ExemploNumeroComplexo
{
static void Main()
{
// Criando números complexos
Complex c1 = new Complex(4, 5); // 4 + 5i
Complex c2 = Complex.FromPolarCoordinates(1, Math.PI / 4); // 1 * e^(iπ/4)
// Operações básicas
Complex soma = c1 + c2;
Complex diferenca = c1 - c2;
Complex produto = c1 * c2;
Complex quociente = c1 / c2;
// Exibindo resultados
Console.WriteLine($"Soma: {soma}");
Console.WriteLine($"Diferença: {diferenca}");
Console.WriteLine($"Produto: {produto}");
Console.WriteLine($"Quociente: {quociente}");
Console.WriteLine($"Magnitude de c1: {c1.Magnitude}");
Console.WriteLine($"Fase de c1: {c1.Phase}");
}
}
E isso produzirá:
Soma: (4.70710678118655, 5.70710678118655)
Diferença: (3.29289321881345, 4.29289321881345)
Produto: (-1.00000000000001, 9)
Quociente: (0.6, 0.8)
Magnitude de c1: 6.40312423743285
Fase de c1: 0.896055384571344
Aprofundamento
Números complexos, consistindo de uma parte real e uma imaginária (frequentemente notados como a + bi), existem desde o século 17. O matemático italiano Gerolamo Cardano é creditado com seu desenvolvimento inicial. Em programação, lidar com números complexos envolve compreensão e gestão dessas duas partes distintas.
Enquanto o System.Numerics.Complex
do C# é robusto e integrado à linguagem, outras linguagens como Python oferecem funcionalidades semelhantes com cmath
ou bibliotecas de terceiros. E se você está trabalhando em uma versão antiga do C# ou uma versão do .NET que não suporta System.Numerics
, talvez tenha que criar sua própria classe de número complexo ou encontrar uma biblioteca.
Internamente, as operações em números complexos usam aritmética de ponto flutuante, o que pode introduzir erros de arredondamento. Portanto, ao implementar algoritmos que usam extensivamente números complexos, é fundamental lembrar disso e considerar o impacto na precisão e acurácia.
Veja Também
- Referência do C# para
System.Numerics.Complex
: https://learn.microsoft.com/en-us/dotnet/api/system.numerics.complex - Um mergulho profundo na matemática dos números complexos: https://mathworld.wolfram.com/ComplexNumber.html
- Para implementações alternativas e bibliotecas, confira Math.NET Numerics: https://numerics.mathdotnet.com/