Пример #1
0
        private void RefreshData(Func <double, double> func, double leftLimit, double rightLimit)
        {
            ExponentialHermiteSplain expApproximation   = new ExponentialHermiteSplain(func, leftLimit, rightLimit);
            CubicHermiteSplain       cubicApproximation = new CubicHermiteSplain(func, leftLimit, rightLimit);

            ExpApproximation = expApproximation.Polynomial();
            ExpInform        = expApproximation.AllData();

            CubicApproximation = cubicApproximation.CubicPolynomial();

            FunctionTabulation ExpTabulation   = new FunctionTabulation(expApproximation.Polynomial(), Step, leftLimit, rightLimit);
            FunctionTabulation CubicTabulation = new FunctionTabulation(cubicApproximation.CubicPolynomial(), Step, leftLimit, rightLimit);

            ExpInform            = expApproximation.AllData();
            CubicInform          = cubicApproximation.AllData();
            MaxErrorExp          = ExpTabulation.FindMaxError(func);
            MaxErrorCubic        = CubicTabulation.FindMaxError(func);
            MaxErrorExpMessage   = "Похибка :" + MaxErrorExp.ToString();
            MaxErrorCubicMessage = "Похибка :" + MaxErrorCubic.ToString();
            TableItems           = RefreshTable(func, ExpTabulation, CubicTabulation);
        }
Пример #2
0
        public ObservableCollection <TabulationFunctionTableItem> RefreshTable(Func <double, double> func, FunctionTabulation expTabulation, FunctionTabulation cubicTabulation)
        {
            ObservableCollection <TabulationFunctionTableItem> items = new ObservableCollection <TabulationFunctionTableItem>();

            for (int i = 0; i < expTabulation.Y.Count; i++)
            {
                items.Add(new TabulationFunctionTableItem(expTabulation.X[i], func(expTabulation.X[i]), expTabulation.Y[i],
                                                          cubicTabulation.Y[i], Math.Abs(func(expTabulation.X[i]) - expTabulation.Y[i]), Math.Abs(func(cubicTabulation.X[i]) - cubicTabulation.Y[i])));
            }
            return(items);
        }