#include
#include
#include
// Первая функция f(x)
double f1(double x) {
return 2 * log(x) - 1 / log(x);
}
// Вторая функция f(x)
double f2(double x) {
return 1 / (cbrt(x) + sqrt(x));
}
// Метод прямоугольников для вычисления интеграла
double integrate(double (*func)(double), double a, double b, double epsilon) {
double result = 0.0;
int n = 1;
double step = (b - a) / n;
double newResult = 0.0;
do {
result = newResult;
newResult = 0.0;
step = (b - a) / n;
for (int i = 0; i < n; ++i) {
newResult += func(a + i * step + step / 2) * step;
}
n *= 2;
} while (fabs(newResult - result) > epsilon);
return newResult;
}
// Функция для вычисления длины кривой
double curveLength(double (*func)(double), double a, double b, double epsilon) {
double length = 0.0;
int n = 1;
double step = (b - a) / n;
double newLength = 0.0;
do {
length = newLength;
newLength = 0.0;
step = (b - a) / n;
for (int i = 0; i < n; ++i) {
double x1 = a + i * step;
double x2 = x1 + step;
double y1 = func(x1);
double y2 = func(x2);
newLength += sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
}
n *= 2;
} while (fabs(newLength - length) > epsilon);
return newLength;
}
int main() {
double a, b, epsilon;
std::cout << "Введите значения a, b и точность epsilon: ";
std::cin >> a >> b >> epsilon;
// Вычисление интеграла для первой функции
double integral1 = integrate(f1, a, b, epsilon);
std::cout << "Значение интеграла первой функции: " << std::setprecision(10) << integral1 << std::endl;
// Вычисление длины кривой для первой функции
double length1 = curveLength(f1, a, b, epsilon);
std::cout << "Длина кривой первой функции: " << std::setprecision(10) << length1 << std::endl;
// Вычисление интеграла для второй функции
double integral2 = integrate(f2, a, b, epsilon);
std::cout << "Значение интеграла второй функции: " << std::setprecision(10) << integral2 << std::endl;
// Вычисление длины кривой для второй функции
double length2 = curveLength(f2, a, b, epsilon);
std::cout << "Длина кривой второй функции: " << std::setprecision(10) << length2 << std::endl;
return 0;
}
Задача заключается в написании программы на языке C++, которая выполняет следующие вычисления:
Результат