/// <summary> ///Текущее значение функции. /// </summary> double y(Vectors x) { return((double)function.DynamicInvoke(x.Vector)); /// Возвращает значение динамической функции уравнения }
/// <summary> ///значение бета по формуле Флетчера-Ривса. /// </summary> double betaPhitchersRivers(Vectors g2, Vectors g1) { return((Math.Pow(g2.Norma, 2)) / (Math.Pow(g1.Norma, 2))); }
/// <summary> /// Формула переменной метрики Бройдена–Флетчера–Гольдфарба–Шенно. /// </summary> Matrix BFGSH(Vectors x2, Vectors x1) { Vectors gamma = grad(x2) - grad(x1); Vectors S = A * gamma; Vectors deltaX = x2 - x1; return(A + (1 + (S * gamma) / (gamma * deltaX)) * ((Vectors.Multiplication(deltaX, deltaX)) / (deltaX * gamma)) - ((Vectors.Multiplication(deltaX, gamma) + Vectors.Multiplication(gamma, deltaX)) / (deltaX * gamma))); }