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