/// <summary>Определить максимум функции</summary> /// <param name="f">Исследуемая функция</param> /// <param name="x1">Начало интервала</param> /// <param name="x2">Конец интервала</param> /// <param name="dx">Шаг</param> /// <returns>Максимум функции</returns> public static FuncValue GetMaxValue([NotNull] this Function f, double x1, double x2, double dx = 0.0001) { var values = f.GetValues(x1, x2, dx); var max = new FuncValue { Value = double.NegativeInfinity }; for (int i = 0, N = values.Length; i < N; i++) { var v = values[i]; if (v <= max.Value) { continue; } max.Value = v; max.Argument = i * dx + x1; } return(max); }
/// <summary>Инициализация нового максимального и минимального значения функции</summary> /// <param name="min">Минимум функции</param> /// <param name="max">Максимум функции</param> public FuncMinMaxValue(FuncValue min, FuncValue max) { Min = min; Max = max; }