Программирование в С++ "Вычислить значения интеграла"
Помогите, пожалуйста, написать программу в С++
Вычислить значения интеграла
методом трапеций, если один из пределов интегрирования a или b
меняется в заданном диапазоне с некоторым шагом. Для каждого
значения параметра вычислить абсолютную погрешность как разность
между приближенным и точным значениями интеграла, вычисленным
по первообразной этого интеграла. Исходные данные для выполнения
задания приведены в таблице, где f(x) – функция, a и b - пределы
интегрирования, n – количество точек разбиения, f′(x) – первообразная

По дате
По Рейтингу
Опять у тебя заведомо ошибочное задание. В данном случае неправильная формула первообразной. Если её исправить, получится:
1234567891011121314151617181920212223242526272829303132
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double f(double x) { // исходная функция
return exp(x) * cos(x) * cos(x);
}
double F(double x) { // первообразная
return exp(x) * (1 + (2 * sin(2 * x) + cos(2 * x)) / 5) / 2;
}
double calc(double a, double b, int n) { // интеграл методом трапеций
double s = (f(a) + f(b)) / 2;
for (int i = 1; i < n; ++i) {
s += f((a * (n - i) + b * i) / n);
}
return s * (b - a) / n;
}
int main() {
double Fa = F(0);
for (int i = 1; i <= 8; ++i) {
double b = M_PI * i / 8;
double s = calc(0, b, 60);
cout << setw(10) << setprecision(8) << b
<< setw(11) << setprecision(8) << s
<< setw(15) << setprecision(8) << s - (F(b) - Fa) << '\n';
}
}