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); }
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); }