Example #1
0
        public ComplexNumbers GetSqrt()
        {
            double arg = Math.PI + Math.Atan(Im / Re);

            if ((Im >= 0 && Re >= 0) || (Im <= 0 && Re >= 0))
            {
                arg = Math.Atan(Im / Re);
            }

            ComplexNumbers sqrt0 = new ComplexNumbers
            {
                Re = Math.Pow(GetModule().Re, 0.5) * Math.Cos(arg / 2.0),
                Im = Math.Pow(GetModule().Re, 0.5) * Math.Sin(arg / 2.0)
            };

            ComplexNumbers sqrt1 = new ComplexNumbers
            {
                Re = Math.Pow(GetModule().Re, 0.5) * Math.Cos((arg + 2 * Math.PI) / 2.0),
                Im = Math.Pow(GetModule().Re, 0.5) * Math.Sin((arg + 2 * Math.PI) / 2.0)
            };

            if (sqrt0.GetModule() < sqrt1.GetModule())
            {
                return(sqrt0);
            }
            else
            {
                return(sqrt1);
            }
        }
Example #2
0
        public ComplexNumbers GetPow()
        {
            ComplexNumbers result = new ComplexNumbers
            {
                Re = Re * Re - Im * Im,
                Im = 2 * Re * Im
            };

            return(result);
        }
Example #3
0
 public ComplexNumbers(ComplexNumbers cn)
 {
     Re = cn.Re;
     Im = cn.Im;
 }