private void TheoreticalError(IApproximateCalculate function) { double result = rightBorder - leftBorder; double h = (rightBorder - leftBorder) / numberOfParts; double constant; if (function is QuadratureFormulaLeftRectangles || function is QuadratureFormulaRightRectangles) { constant = 1.0 / 2.0; result *= constant * h; } else if (function is QuadratureFormulaMediumRectangles) { constant = 1.0 / 24.0; result *= constant * h * h; } else if (function is QuadratureFormulaTrapezoid) { constant = 1.0 / 12.0; result *= constant * h * h; } else { constant = 1.0 / 2880.0; result *= constant * Math.Pow(h, 4); } Console.WriteLine($"Теоретическая погрешность: {result * (1 + Math.Exp(rightBorder))}\n"); }
private void AbsoluteError(IApproximateCalculate function) { Console.Write("Абсолютная фактическая погрешность: "); Console.WriteLine(Math.Abs(function.Value - PreciselyValue())); }