Example #1
0
        static void Main(string[] args)
        {
            Stopwatch SW    = new Stopwatch();
            double    a     = 1.1;
            double    b     = 2.5;
            double    alpha = 0.4;
            double    beta  = 0;

            SW.Start();
            SW.Stop();
            SW.Restart();
            var n           = 2;
            var integralSum = GaussMethod.Integrate(Function, a, b, alpha, beta, n);

            SW.Stop();
            output("Метод Гаусса", integralSum, n, SW.ElapsedTicks);
            SW.Restart();
            n           = 3;
            integralSum = NewtonCotesMethod.Integrate(Function, a, b, alpha, beta, n);
            SW.Stop();
            output("Метод Ньютона-Котса", integralSum, n, SW.ElapsedTicks);
            for (int i = 10; i <= 10000; i *= 10)
            {
                SW.Restart();
                integralSum = MidpointMethod.Integrate(Function, P, a, b, alpha, beta, i);
                SW.Stop();
                output("Метод средней точки", integralSum, i, SW.ElapsedTicks);
            }
            Console.ReadLine();
        }
Example #2
0
        static void Main(string[] args)
        {
            Stopwatch SW = new Stopwatch();

            double accRunge;
            double richOptStep;

            int    segmNum = 100;
            double integralSum;
            int    n;
            double a     = 1.1d;
            double b     = 2.5d;
            double alpha = 0.4d;
            double beta  = 0;

            SW.Start();
            SW.Stop();
            //SW.Restart();
            //n = 2;
            //integralSum = GaussMethod.CompoundIntegrate(Function, a, b, alpha, beta, n, segmNum);
            //SW.Stop();
            //output("CQF (Gauss)", integralSum, n, SW.ElapsedTicks);

            //richOptStep = Mathematics.GetOptStepRichardson(GaussMethod.CompoundIntegrate, Function, a, b, alpha, beta, n, 2, n - 1, 1e-6);

            //Console.WriteLine("Optimal step (Richardson): " + richOptStep);
            //Console.WriteLine(" => Optimal n: " + Mathematics.GetGoodNum(a, b, richOptStep));
            SW.Restart();
            n           = 3;
            integralSum = NewtonCotesMethod.CompoundIntegrate(Function, a, b, alpha, beta, n, segmNum);
            SW.Stop();
            output("CQF (Newton-Cotes)", integralSum, n, SW.ElapsedTicks);

            accRunge = Mathematics.AccuracyRunge(integralSum, NewtonCotesMethod.CompoundIntegrate(Function, a, b, alpha, beta, n, segmNum * 2), n - 1);

            var optStep = Mathematics.GetOptStep(a, b, segmNum, accRunge, n - 1, 1e-6);

            Console.WriteLine("Optimal step (Runge): " + optStep);
            Console.WriteLine(" => Optimal n: " + Mathematics.GetGoodNum(a, b, optStep));

            richOptStep = Mathematics.GetOptStepRichardson(NewtonCotesMethod.CompoundIntegrate, Function, a, b, alpha, beta, n, 2, n - 1, 1e-6);

            Console.WriteLine("Optimal step (Richardson): " + richOptStep);
            Console.WriteLine(" => Optimal n: " + Mathematics.GetGoodNum(a, b, richOptStep));
            Console.WriteLine("Error (Runge): " + accRunge);
        }