
C/C++
Составьте алгоритм и напишите программу вычисления суммы n членов ряда согласно условию задачи
РЕШИТЬ ЗАДАЧУ НА C++


Эта функция сходится (не обобщённо в среднем, а просто сходится !) только в промежутке (-1, 1), для которого заранее определённое количество слагаемых брать ни к чему, так как можно вычислить сумму всего ряда сразу:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x, p = 1., s = 0., n = s,
e = s, y = atan(1) * 4. / 3.;
cout.precision(17);
for (;;)
{
p = 1.;
s = 0.;
n = s;
e = p;
cout << "x » ";
cin >> x;
while (fabs(e) > 1e-18)
{
n++;
p *= x;
e = p * cos(n * y) / n;
s += e;
}
cout << s << endl;
}
}
Если интересно, то вот график этой функции на (-1; 1):

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x, p = 1., s = 0., n = s,
e = s, y = atan(1) * 4. / 3.;
cout.precision(17);
for (;;)
{
p = 1.;
s = 0.;
n = s;
e = p;
cout << "x » ";
cin >> x;
while (fabs(e) > 1e-18)
{
n++;
p *= x;
e = p * cos(n * y) / n;
s += e;
}
cout << s << endl;
}
}
Если интересно, то вот график этой функции на (-1; 1):

☝️Здесь никакие косинусы и модуль cmath точно не нужны - без них быстрее получается. Вот как это будет с задаваемым с экрана количеством членов ряда:
#include <iostream>
using namespace std; int main()
{ double x, p = 1., s = 0., e = s, r; int l, m, n;
cout.precision(16); while (true) { p = 1.;
s = 0.; e = p; cout << "x n : "; cin >> x >> n;
for (l = 1; l <= n; l++) { p *= x; m = l % 6;
switch (m) { case 0: r = 1.; break;
case 1: r = 0.5; break; case 2: r = -0.5; break;
case 3: r = -1.; break; case 4: r = -0.5; break;
case 5: r = 0.5; break; } e = p * r / l; s += e; }
cout << s << ' ' << n << endl; } }
А ряд сходится действительно только при -1≤x≤1 (вроде даже с крайними точками), но может быть как раз требуется проверять его расходимость при |x|>1 ?
#include <iostream>
using namespace std; int main()
{ double x, p = 1., s = 0., e = s, r; int l, m, n;
cout.precision(16); while (true) { p = 1.;
s = 0.; e = p; cout << "x n : "; cin >> x >> n;
for (l = 1; l <= n; l++) { p *= x; m = l % 6;
switch (m) { case 0: r = 1.; break;
case 1: r = 0.5; break; case 2: r = -0.5; break;
case 3: r = -1.; break; case 4: r = -0.5; break;
case 5: r = 0.5; break; } e = p * r / l; s += e; }
cout << s << ' ' << n << endl; } }
А ряд сходится действительно только при -1≤x≤1 (вроде даже с крайними точками), но может быть как раз требуется проверять его расходимость при |x|>1 ?
Леонид Куликов
(◔‿◔) Так я так сразу и подумала. Но в задании же косинусы, вот и у меня там косинусы, только это и правда чушь полная!. ʘ‿ʘ
Похожие вопросы
- Задача на с++. Нужно составить алгоритм и написать программу
- Написать программу, возвращающую значение N, если N - простое число
- Программирование на СИ "Написать программу подсчёта суммы нечётных элементов из 20 введенных"
- Помогите составить алгоритм вычисления функции:
- Писать код функции S(x) вычисления сумму ряда с заданной точностей
- В LINUX OS Написать программу, которая из командной строки получает целое число N и некоторый текст “Text”.
- Вычисление суммы знакопеременного ряда
- Написать программу на языке Си, которая решит эту задачу:
- Помогите, пожалуйста, написать программу по нижеописанной задаче!
- Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области. Написать программу на языке C++
cout << s << ' ' << n << endl;
(•‿•)