Скачиваний:
8
Добавлен:
03.11.2022
Размер:
3.69 Кб
Скачать
// integral.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
//

#include <iostream>
#include <math.h>
#include <windows.h>
using namespace std;

double f(double x)
{
    return (pow(x, 2) - 10 * pow(sin(x), 2));
}


const double e = -6.69853875;
int main()
{
    setlocale(LC_ALL, "ru");
    double b = 3, a = 0;
    cout << "Введите число n приблежений" << endl;
    int n;
    while ((!(cin >> n) || cin.peek() != '\n')|| n < 1)
    {
        cin.clear();
        cin.ignore((numeric_limits<streamsize>::max)(), '\n');
        cout << "Ошибка. Введите корректное число." << endl;
    }

    double width = (b - a) / n;


    double trapezoidal_integral = 0;
    for (int step = 0; step < n; step++) {//по разбиению
        const double x1 = a + step * width;
        const double x2 = a + (step + 1) * width;

        trapezoidal_integral += 0.5 * (x2 - x1) * (f(x1) + f(x2));
    }
    cout << trapezoidal_integral << endl;
    cout << "Абсолютная точность " << 100 * trapezoidal_integral / e << "%" << endl;
    trapezoidal_integral = 0;
    cout << "Введите погрешность вычисления " << endl;
    double eps;
    while ((!(cin >> eps) || cin.peek() != '\n'))
    {
        cin.clear();
        cin.ignore((numeric_limits<streamsize>::max)(), '\n');
        cout << "Ошибка. Введите корректное число." << endl;
    }
    n = 1;
    double n1=1;
    double n2=2;
    while (fabs(n1-n2)>eps)
    {
        n2 = n1;
        int step = 0;
        width = (b - a) / n;
        trapezoidal_integral = 0;
        while (step < n)
        {
            const double x1 = a + step * width;
            const double x2 = a + (step + 1) * width;

            trapezoidal_integral += 0.5 * (x2 - x1) * (f(x1) + f(x2));
            step++;
        }
        n1 = trapezoidal_integral;
        n++;
    }

    cout << trapezoidal_integral << " На приближении "<<n << endl;
    cout << "Абсолютная точность " << 100 * trapezoidal_integral / e << "%" << endl;
}


// Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
// Отладка программы: F5 или меню "Отладка" > "Запустить отладку"

// Советы по началу работы 
//   1. В окне обозревателя решений можно добавлять файлы и управлять ими.
//   2. В окне Team Explorer можно подключиться к системе управления версиями.
//   3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
//   4. В окне "Список ошибок" можно просматривать ошибки.
//   5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
//   6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.
Соседние файлы в папке 1 курс различные лабы и их куски. Что-то полезное тут есть