Пример #1
0
        private Expr[,] FindJacobian()
        {
            Expr[,] jac = new Expr[Equations.Functions.GetLength(0), Equations.Functions.GetLength(1)];

            for (int i = 0; i < jac.GetLength(0); i++)
            {
                for (int j = 0; j < jac.GetLength(1); j++)
                {
                    //Взятие производной из каждой функции
                    jac[i, j] = Equations.Functions[i, j].Differentiate($"x{j + 1}");
                }
            }

            return(jac);
        }
Пример #2
0
        public NewtonMethodSystem(EquationsSystem eq, Dictionary <string, FloatingPoint> values, double e)
        {
            Equations = eq;
            Eps       = e;
            X         = values;
            Counter   = 0;

            //Все свойства якобиана вычисляются при создании объекта Newton
            Jacobian = new Expr[Equations.Functions.GetLength(0), Equations.Functions.GetLength(1)];

            for (int i = 0; i < Jacobian.GetLength(0); i++)
            {
                for (int j = 0; j < Jacobian.GetLength(1); j++)
                {
                    //Взятие производной из каждой функции
                    if (Equations.Functions[i, j] != null)
                    {
                        Jacobian[i, j] = Equations.Functions[i, j].Differentiate($"x{j + 1}");
                    }
                }
            }
        }