C#, código Haishibei (53) - "método de gradiente" Código fuente de C# para un conjunto de raíces reales de "ecuaciones no lineales"

 

utilizando el sistema;

espacio de nombres Zhou.CSharp.Algorithm
{     delegado público double delFunction_x(doble x);     delegado publico double delFunction_xa(doble[] x);     delegado publico double delFunction_x_y(doble x, doble y);     delegado público double delFunction_x_ya(doble x, doble[] y);     delegado público doble delFunction_xa_ya(doble[] x, doble[] y);




    /// <summary>
    /// Class NLEquations para resolver ecuaciones no lineales
    /// Zhou Changfa
    /// Adaptado a la confusión profunda
    /// </summary>
    public static parcial class NLEquations
    {

        doble eps) {             int i, j;             doble f, d, s;














            doble[] y = nuevo doble[n];

            i = nMaxIt;
            f = Func(x, y);

            // Precisión de control, resolución iterativa
            while (f >= eps)
            {                 i = i - 1;                 if (i == 0)                 {                     return true;                 }




                d = 0,0;
                para (j = 0; j <= n - 1; j++)
                {                     d = d + y[j] * y[j];                 }                 if (Math.Abs(d) < float.Epsilon)                 {                     return false;                 }





                s = f / d;
                for (j = 0; j <= n - 1; j++)
                {                     x[j] = x[j] - s * y[j];                 }                 f = Func(x, y);             }



            // Si se alcanza la precisión dentro del número efectivo de iteraciones
            return (nMaxIt > i);
        }
 

}

}

Supongo que te gusta

Origin blog.csdn.net/beijinghorn/article/details/131276696
Recomendado
Clasificación