0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 7
|
|
1 | |
Написать программу для нахождения значения функции y(x) и s(x)11.10.2019, 03:42. Показов 1113. Ответов 1
Метки нет Все метки)
(
Суть задания такова:
Для каждого 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,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания. Σ=cos(kx)/k!; Y(x)=e^cos(x)*sin(cos(x)). Проблема заключается в том, что у меня не получаются одинаковыми значения y(x) и s(x). Подозреваю что дело в неправильно полученной рекуррентной формуле. Прилагаю код: double In(const char* t) { double x; cout << t; while (!(cin >> x) || cin.get() != '\n') { cin.clear(); cout << "Error" << endl; while (cin.get() != '\n'); } return x; } int main() { setlocale(LC_ALL, "Russian"); double a, b, h, n, s, k, x, y, f, c; cout << "1 - ввести любые данные. Любая клавиша - данные по умолчанию" << endl; if (_getch() == '1') { a = In("Введите a = "); do { b = In("Введите b = "); } while (b <= a); do { h = In("Введите h = "); } while (h <= 0); do { n = In("Введите n = "); } while (n <= 0); } else { a = 0.1; b = 1; h = 0.1; n = 2; cout << "Значение по умолчанию:" << endl << "a = " << a << endl << "b = " << b << endl << "h = " << h << endl << "n = " << n << endl << endl; } cout << "Значение Y(x)" << setw(20) << "Значение S(x)" << setw(20) << "|Y(x)-S(x)|" << endl; for (x = a; x <= b; x += h) { y = exp(cos(x)) * cos(sin(x)); for (s = 1, k = 0; k <= n; k++) { for (f = 1, c = 1; c <= k; c++) { f *= c; s += cos(k * x) / f; } } cout << y << setw(20) << s << setw(26) << fabs(y - s) << endl; } return 0; }
0
|
|
11.10.2019, 03:42 | |
Ответы с готовыми решениями:
1
Написать программу нахождения наибольшего и наименьшего значения функции
Написать программу для нахождения значения переменной S по формуле |
7430 / 5022 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
||||||
11.10.2019, 14:01 | 2 | |||||
explorerbeep, несколько отличается то что в условии:
и то что в коде: похоже ещё -1 потерялась: Y=exp(cos(x))*cos(sin(x))-1; двойной цикл для вычисления суммы не нужен, одного вполне достаточно
1
|
11.10.2019, 14:01 | |
11.10.2019, 14:01 | |
Помогаю со студенческими работами здесь
2
Написать программу для нахождения значения переменной S по формуле
Составить программу для нахождения наименьшего значения функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |