Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача на C++

Диана дугужева Ученик (98), на голосовании 4 месяца назад
Голосование за лучший ответ
Почти как Эйнштейн Знаток (393) 5 месяцев назад
Такая херня. Это в универе задают? Дичь, которая даже не понадобится.
Диана дугужеваУченик (98) 5 месяцев назад
ага
Татьяна Просветленный (36374) 5 месяцев назад
 #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++, которая выполняет следующие вычисления:

Результат
Похожие вопросы