ДАЮ 100 БАЛЛОВ! С++
Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x) – S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки.
Работу программы проверить для a = 0.2; b = 0.8; h = 0,1; значение параметра n выбрать так, чтобы |Y(x) – S(x)| < 0.001 (0.0001, 0.00001).
На фотографии выполнить пример В14.
Answers & Comments
Ответ:
``cpp
#include <iostream>
#include <cmath>
double Y(double x) {
return exp(x) * sin(x);
}
double S(double x, int n) {
double sum = 0;
for (int i = 0; i <= n; i++) {
double term = pow(x, 2 * i + 1) / double(factorial(2 * i + 1));
sum += pow(-1, i) * term;
}
return sum;
}
int factorial(int n) {
if (n <= 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
double a, b, h;
int n;
// Ввод значений a, b, h, n
std::cout << "Введите значение a: ";
std::cin >> a;
std::cout << "Введите значение b: ";
std::cin >> b;
std::cout << "Введите значение h: ";
std::cin >> h;
std::cout << "Введите значение n: ";
std::cin >> n;
// Вывод заголовка таблицы
std::cout << "x\t\tY(x)\t\tS(x)\t\t|Y(x) - S(x)|" << std::endl;
// Перебор значений x от a до b с шагом h
for (double x = a; x <= b; x += h) {
double y = Y(x);
double s = S(x, n);
double diff = std::abs(y - s);
// Вывод значений в таблицу
std::cout << x << "\t\t" << y << "\t\t" << s << "\t\t" << diff << std::endl;
}
return 0;
}
```
Программа определяет функции Y(x) и S(x, n), а также функцию факториала. В функции `main()` вводятся значения a, b, h и n, после чего происходит вывод заголовка таблицы и перебор значений x от a до b с шагом h. Для каждого значения x вычисляются значения функций Y(x) и S(x, n), а также разница |Y(x) - S(x)|, которые выводятся в таблицу.
В результате выполнения программы будет выведена таблица с значениями функций Y(x) и S(x), а также разницей |Y(x) - S(x)| для каждого значения x от a до b с шагом h.