Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- inline double f(double x) { return x/(3*x+4)/(3*x+4); } // Интегрируемая функция f(x)
- inline double F(double x) { return (4/(3*x+4)+log(3*x+4))/9; } // Ее первообразная F(x)
- double int_rect(double a, double b, double h) {
- // Метод средних прямоугольников
- double r = 0;
- for (double x = a; x <= b-h; x += h)
- r += f(x+h/2);
- r *= h;
- return r;
- }
- double int_trap(double a, double b, double h) {
- // Метод трапеций
- double r = 0;
- for (double x = a; x <= b-h; x += h)
- r += f(x)+f(x+h);
- r *= h/2;
- return r;
- }
- double int_simp(double a, double b, double h) {
- // Метод Симпсона
- double r = 0;
- for (double x = a; x <= b-h; x += h)
- r += f(x)+4*f(x+h/2)+f(x+h);
- r *= h/6;
- return r;
- }
- int main() {
- double a = 0, b = 4, h = 0.01;
- cout << "Rect:\t" << int_rect(a,b,h) << endl;
- cout << "Trap:\t" << int_trap(a,b,h) << endl;
- cout << "Simp:\t" << int_simp(a,b,h) << endl;
- cout << "Real:\t" << F(b) - F(a) << endl;
- cout << "Mist:\t" << fabs(int_simp(a,b,h)-int_simp(a,b,h/2))/15 << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement