//Функция для высчитывания новой точки Coord newPoint(Coord x1, Coord x2, opt opt_A) { Matrix E = Matrix.E(amountVar); Coord grad = Coord.Gradient(y, x2, amountVar); if (k % amountVar == 1) { //if (k == 1) A = E; } else { A = opt_A(x1, x2); } p = -A * grad; p = p / p.Norma; LinearSearch f1 = new LinearSearch(x2, p, y); f1.Svenn(20); f1.Bolcano(10); f1.Davidon(); alfa = f1.alfa_min; Coord x3 = x2 + alfa * p / p.Norma; return(x3); }