示例#1
0
        public virtual double[] Roots()
        {
            var roots = new List <double>();
            var p     = new Polynomial(1);

            while (true)
            {
                var root = NonlinearEquations.NewtonMethod(new Quotient(this, p), 0);
                if (root == null)
                {
                    break;
                }
                roots.Add((double)root);
                p *= new Polynomial(-(double)root, 1);
            }
            roots.Sort();
            return(roots.ToArray());
        }