Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- using namespace std;
- double f(double x);
- double integral(double start, double end, double epsil, double (*fun)(double));
- double integral(double start, double end, double epsil, int &n, double (*fun)(double));
- int main()
- {
- double a, b, result1, result2, epsil;
- int n = 0;
- cout << "Please, enter start, end: ";
- cin >> a >> b;
- cout << "Enter epsil: ";
- cin >> epsil;
- result1 = integral(a, b, epsil, f);
- result2 = integral(a, b, epsil, n, f);
- cout << "Integral1 = " << result1 << endl;
- cout << "Integral2 = " << result2 << " and n = " << n << endl;
- return 0;
- }
- double f(double x)
- {
- return x + 4 / (x + 0.3) - sin(x) - 3;
- }
- double integral(double start, double end, double epsil, double (*fun)(double))
- {
- double result = 0;
- for (double x = start; x<end; x+=epsil)
- result += fabs(fun(x+epsil/2));
- return result*epsil;
- }
- double integral(double start, double end, int count, double (*fun)(double))
- {
- double dx = (end - start) / count, result = 0;
- for (int i = 0; i < count; i++)
- result += fabs(fun(start + dx * i + dx/2));
- return result*dx;
- }
- double integral(double start, double end, double epsil, int &n, double (*fun)(double))
- {
- double result1, result2;
- n = 10;
- do {
- result1 = integral(start, end, n, fun);
- result2 = integral(start, end, 2*n, fun);
- n *= 2;
- } while (fabs(result1 - result2) > epsil*3);
- n /= 2;
- return result1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement