Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- #include <cmath>
- using namespace std;
- typedef double(*pointFunc)(double);
- double f(double x) {
- return x*acos(x);
- }
- double Leftrectangle_integral(pointFunc f, double a, double b, int n) {
- double x, h;
- double sum = 0.0;
- double fx;
- h = (b - a) / n; //шаг
- for (int i = 0; i < n; i++) {
- x = a + i * h;
- fx = f(x);
- sum += fx;
- }
- return (sum * h); //приближенное значение интеграла равно
- //сумме площадей прямоугольников
- }
- double Rightrectangle_integral(pointFunc f, double a, double b, int n) {
- double x, h;
- double sum = 0.0;
- double fx;
- h = (b - a) / n; //шаг
- for (int i = 1; i <= n; i++) {
- x = a + i * h;
- fx = f(x);
- sum += fx;
- }
- return (sum * h); //приближенное значение интеграла равно
- //сумме площадей прямоугольников
- }
- int main() {
- setlocale(LC_ALL, "RU");
- double a, b, eps;
- double s1, s;
- int n = 1; //начальное число шагов
- cout << "Введите левую границу интегрирования a = ";
- cin >> a;
- cout << "\nВведите правую границу интегрирования b = ";
- cin >> b;
- cout << "\nВведите требуемую точность eps = ";
- cin >> eps;
- s1 = Leftrectangle_integral(f, a, b, n); //первое приближение для интеграла
- do {
- s = s1; //второе приближение
- n = 2 * n; //увеличение числа шагов в два раза,
- //т.е. уменьшение значения шага в два раза
- s1 = Leftrectangle_integral(f, a, b, n);
- } while (fabs(s1 - s) > eps); //сравнение приближений с заданной точностью
- cout << "\nМетод левых прямоугольников: интеграл = " << s1 << endl;
- s1 = Rightrectangle_integral(f, a, b, n);
- n = 1;
- do {
- s = s1; //второе приближение
- n = 2 * n; //увеличение числа шагов в два раза,
- //т.е. уменьшение значения шага в два раза
- s1 = Rightrectangle_integral(f, a, b, n);
- } while (fabs(s1 - s) > eps); //сравнение приближений с заданной точностью
- cout << "Метод правых прямоугольников: интеграл = " << s1 << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement