Komplexné číslo potom zapíšeme ako výraz z = a + i*b , kde a je jeho reálna časť, b je jeho imaginárna časť a i (tiež označované ako j) je jednotkový vektor imaginárnej osi y. Podobne je číslo 1 jednotkovým vektorom v smere osi x.
Operácie z komplexnými číslami:
Dve komplexné čísla sú rovnaké práve vtedy, ak reálna časť prvého čísla je rovnaká ako reálna časť druhého a súčastne aj imaginárne časti su rovnaké.
c1.Re == c2.Re && c1.Im == c2.Im
Dve komplexné čísla sčítavame tak, že sčítame reálnu čast prvého čísla s reálnou časťou druhého a súčastne sčítame aj imaginárnu časť prvého z imaginárnou časťou druhého čísla.
z = (c1.Re + c2.Re) + i*(c1.Im + c2.Im)
Dve komplexné čísla odčítame tak, že odčítame reálnu čast prvého čísla s reálnou časťou druhého a súčastne odčítame aj imaginárnu časť prvého z imaginárnou časťou druhého čísla.
z = (c1.Re - c2.Re) + i*(c1.Im - c2.Im)
Pri násobeni imáginárnych časti platí : i*i = -1
z = (c1.Re * c2.Re - c1.Im * c2.Im) + i*(c1.Re * c2.Im + c2.Re * c1.Im)
Trieda komplexných čísel v c# :
Až do ver .NET Framework 4.0 neboli kompléxne čísla vstavané do Frameworku. Preto si ukážeme ako spraviť takúto triedu na prácu s komplexnými číslami.
class Complex
{
public Double Re {get;set;}
public Double Im {get;set;}
public Complex(Double real, Double imaginary)
{
this.Re = real;
this.Im = imaginary;
}
public static Complex operator +(Complex c1, Complex c2)
{
Double re = c1.Re + c2.Re;
Double im = c1.Im + c2.Im;
return new Complex(re, im);
}
public static Complex operator -(Complex c1, Complex c2)
{
Double re = c1.Re - c2.Re;
Double im = c1.Im - c2.Im;
return new Complex(re, im);
}
public static Complex operator *(Complex c1, Complex c2)
{
Double re = c1.Re * c2.Re - c1.Im * c2.Im;
Double im = c1.Re * c2.Im + c2.Re * c1.Im;
return new Complex(re, im);
}
public static Complex operator /(Complex c1, Complex c2)
{
Complex tmp = new Complex(c2.Re, -c2.Im);
c1 *= tmp;
c2 *= tmp;
if (c2 == 0)
throw new DivideByZeroException();
return (c1 * (1 / c2.Re));
}
public static Boolean operator ==(Complex c1, Complex c2)
{
return (c1.Re == c2.Re && c1.Im == c2.Im);
}
public static Boolean operator !=(Complex c1, Complex c2)
{
return !(c1.Re == c2.Re && c1.Im == c2.Im);
}
public static implicit operator Complex(Double n)
{
return new Complex(n, 0);
}
}
Použitie :
Complex cislo1 = new Complex(-8, 9.2); Complex cislo2 = cislo1 + 5;
V .NET Framework 4.0 a viac sú komplexné čísla priamo podporované.
Namespace: System.Numerics
Assembly: System.Numerics (in System.Numerics.dll)







