protected virtual double GenericIterationMethod(MathFunction func, MathFunction ksi, double a, double b, double x0)
        {
            double xn = x0, counter = 0;
            double fDerivativeMin = func.Derivative(1).MinValue(a, b);

            MathFunction iterFunc = new XFunction(1.0d) + ksi * func;

            do
            {
                xn = iterFunc.Calculate(xn);
                counter++;
            } while (counter < maxIterationCount && !(Math.Abs(func.Calculate(xn)) / fDerivativeMin <= epsilanIter));

            if (counter == maxIterationCount)
            {
                return(xn);                             //  double.PositiveInfinity;
            }
            return(xn);
        }
Beispiel #2
0
 /// <summary>
 /// Adds a X function.
 /// </summary>
 /// <param name="xt">Xt.</param>
 private void AddXFunction(XFunction xt)
 {
     _xterms.Add(xt);
 }