コード例 #1
0
        public double gauss(double a, double b)
        {
            double x, sum = 0;

            double[] Xi = { -0.861136, -0.339981, 0.339981, 0.861136 };//значення вузлів при кількість вузлів n = 4;
            double[] Ai = { 0.347855, 0.652145, 0.652145, 0.347855 };
            for (int i = 0; i < 4; i++)
            {
                x    = (a + b) / 2 + Xi[i] * (b - a) / 2; //заміна х[i] через t[i] щоб змінити межі
                sum += Ai[i] * Funk.Y(x);                 //сума (складова добутку для знаходження інтегралу)
            }
            return(sum * (b - a) / 2);
        }
コード例 #2
0
        public double SympsonMethod(double a, double b, int n) // a=2, b=5, n=10
        {
            double x, h, s;

            h = (b - a) / n; //0,3
            s = 0;           //площа
            x = a + h;       //х після першого кроку (і - непарне)
            while (x < b)
            {
                s += 4 * Funk.Y(x); // 4 * у [непарне]
                x += h;             // і - парне
                s += 2 * Funk.Y(x); // 4 * у [парне]
                x += h;
            }
            s = h / 3 * (s + Funk.Y(a) - Funk.Y(b));
            return(s);
        }