9.11 ComplexΒΆ
The Complex constructor implements complex objects over a commutative ring R. Typically, the ring R is Integer, Fraction Integer, Float or DoubleFloat. R can also be a symbolic type, like Polynomial Integer. For more information about the numerical and graphical aspects of complex numbers, see ugProblemNumeric .
Complex objects are created by the complexcomplexComplex operation.
a := complex(4/3,5/2)
43+52i |
Type: Complex Fraction Integer
b := complex(4/3,-5/2)
43-52i |
Type: Complex Fraction Integer
The standard arithmetic operations are available.
a + b
83 |
Type: Complex Fraction Integer
a - b
5i |
Type: Complex Fraction Integer
a * b
28936 |
Type: Complex Fraction Integer
If R is a field, you can also divide the complex objects.
a / b
-161289+240289i |
Type: Complex Fraction Integer
Use a conversion (ugTypesConvertPage in Section ugTypesConvertNumber ) to view the last object as a fraction of complex integers.
% :: Fraction Complex Integer
-15+8i15+8i |
Type: Fraction Complex Integer
The predefined macro %i is defined to be complex(0,1).
3.4 + 6.7 * %i
3.4+6.7i |
Type: Complex Float
You can also compute the conjugateconjugateComplex and normnormComplex of a complex number.
conjugate a
43-52i |
Type: Complex Fraction Integer
norm a
28936 |
Type: Fraction Integer
The realrealComplex and imagimagComplex operations are provided to extract the real and imaginary parts, respectively.
real a
43 |
Type: Fraction Integer
imag a
52 |
Type: Fraction Integer
The domain Complex Integer is also called the Gaussian integers. If R is the integers (or, more generally, a EuclideanDomain), you can compute greatest common divisors.
gcd(13 - 13*%i,31 + 27*%i)
5+i |
Type: Complex Integer
You can also compute least common multiples.
lcm(13 - 13*%i,31 + 27*%i)
143-39i |
Type: Complex Integer
You can factorfactorComplex Gaussian integers.
factor(13 - 13*%i)
-(1+i)(2+3i)(3+2i) |
Type: Factored Complex Integer
factor complex(2,0)
-i(1+i)2 |
Type: Factored Complex Integer