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); }
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}"); } } } }