Complex.Divide Method
Divides one complex number by another and returns the result.
Assembly: System.Numerics (in System.Numerics.dll)
Parameters
- dividend
- Type: System.Numerics.Complex
The complex number to be divided.
- divisor
- Type: System.Numerics.Complex
The complex number to divide by.
The division of a complex number, a + bi, by a second complex number, number, c + di, takes the following form:
((ac + bd) / (c 2 + d 2 )) + ((bc - ad) / (c 2 + d 2 )i
If the calculation of the quotient results in an overflow in either the real or imaginary component, the value of that component is either Double.PositiveInfinity or Double.NegativeInfinity.
The Divide method can be used by languages that do not support custom operators. Its behavior is identical to division using the division operator.
The following example divides a complex number by each element in an array of complex numbers.
using System; using System.Numerics; public class Example { public static void Main() { Complex c1 = new Complex(1.2, 2.3); Complex[] values = { new Complex(1.2, 2.3), new Complex(0.5, 0.75), new Complex(3.0, -5.0) }; foreach (Complex c2 in values) Console.WriteLine("{0} / {1} = {2:N2}", c1, c2, Complex.Divide(c1, c2)); } } // The example displays the following output: // (1.2, 2.3) / (1.2, 2.3) = (1.00, 0.00) // (1.2, 2.3) / (0.5, 0.75) = (2.86, 0.31) // (1.2, 2.3) / (3, -5) = (-0.23, 0.38)
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
c^2 + d^2 = max(c,d)^2 * (1 + (min(c,d)/max(c,d))^2)
When c and d are very small, this computation should gracefully round toward 0. When c and d are big, though, and say max(c,d)^2 doesn't overflow, we simply multiply that maximum by a number no greater than 2.
Same story for computing the magnitude |z| of z = c+di, but I'll detail how I would deal with the needed square root there.
- 8/2/2011
- bige1030