Добавил:
Uliminittion
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:1 курс различные лабы и их куски. Что-то полезное тут есть / integral
.cpp// 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 курс различные лабы и их куски. Что-то полезное тут есть