Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 7

Написать программу для нахождения значения функции y(x) и s(x)

11.10.2019, 03:42. Показов 1763. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.10.2019, 03:42
Ответы с готовыми решениями:

Написать программу для нахождения значения функции с помощью ряда Тейлора
Добрый день всем. Прошу помощи у более опытных товарищей. Не могу решить задачу. Вычислить и вывести на экран в виде таблицы...

Написать программу нахождения наибольшего и наименьшего значения функции
Написать программу нахождения наибольшего и наименьшего значения функции y=3x*x+x-4 на интервале c шагом 0.1!!! очень нужно пожалуйста...

Написать программу с использованием функции нахождения минимального значения элемента в одномерном массиве
Написать программу с использованием функции нахождения минимального значения элемента в одномерном массиве

1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
11.10.2019, 14:01
explorerbeep, несколько отличается то что в условии:
Цитата Сообщение от explorerbeep Посмотреть сообщение
Y(x)=e^cos(x)*sin(cos(x)).
и то что в коде:
Цитата Сообщение от explorerbeep Посмотреть сообщение
y = exp(cos(x)) * cos(sin(x));
похоже ещё -1 потерялась: Y=exp(cos(x))*cos(sin(x))-1;
двойной цикл для вычисления суммы не нужен, одного вполне достаточно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#define _USE_MATH_DEFINES
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
 
int main()
{    
    int n=100;    
    double a=0.1, b=1.0, h=0.1, p, S, Y;       
    
    cout <<" x      Y(x)       S(x)    |Y(x)-S(x)|\n";
    for (double x=a; x<=b+h/2.; x+=h)
    {
        p=1.0;
        S=0.0;
        for (int k=1; k<=n; k++) 
        {
           p*=k;           
           S+=cos(k*x)/p;
        }  
        Y=exp(cos(x))*cos(sin(x))-1;
    cout <<setprecision(1)<<fixed<<x<<"   "<<setprecision(6)<<Y<<"   "<<S<<"   "<<fabs(Y-S)<<"\n";
    }   
    
system("pause");
return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.10.2019, 14:01
Помогаю со студенческими работами здесь

Написать программу для нахождения значения переменной S по формуле
5. Написать программу для нахождения значения переменной S по формуле: S=1*1*1+2*2*2+...+n*n*n

Написать программу для нахождения значения переменной S по формуле
3. Написать программу для нахождения значения переменной S по формуле: S=ln1+ln2+...+ln n

Написать программу для нахождения значения переменной S по формуле
Написать программу для нахождения значения переменной S по формуле: S=1+2+...+n

Составить программу для нахождения значения функции
Составить программу для нахождения значения функции: y=\frac{\operatorname{avg} (a,\,2b,\,c)}{\min...

Составить программу для нахождения наименьшего значения функции
не могу доделать вот эту прогу. Вот дано: Составить программу для нахождения наименьшего значения функции y=ax^3+bx^2+cx+d и ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru