Maria ->∞
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,335
Записей в блоге: 1
1

Вычислить значение функции в точке используя сумму ряда

27.09.2017, 21:08. Показов 2773. Ответов 5
Метки нет (Все метки)

Задание: Вычислить значение функции y=x/2 в точке x=2 с точностью Eps, пользуясь представлением функции суммой ряда https://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{n=1}^{inf}\frac{{(-1)}^{n-1}*sin(n*x)}{n}

Почему то в точке x=5 к примеру значение вообще иное, чем должно быть.
Ведь 5/2=2.5 а в результате работы программы вообще минус что то там.


Код:
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
29
30
31
32
33
34
#include <iostream>
 
using namespace std;
 
 
int main() {
    setlocale(LC_ALL, "Russian");
    double x, Eps=0.001, S, tmp; // объявления переменных и инициализация
    int n = 1;
 
    //ввод
    cout << "Введите значение x="; 
    cin >> x;
    tmp = pow(-1.0, n - 1)*sin(n*x) / n;// вычисление первого элемента ряда
    S = tmp;
    n++;
    while (abs(tmp) > Eps){ // пока текущий член ряда больше eps, то выполняем вычисления
        tmp = pow(-1.0, n - 1)*sin(n*x) / n;
        S += tmp;// производим суммирование
        n++;
    }
 
    // вывод
    cout << "Значение функции y=x/2, в точке x=" << x << " , равно " << S << endl;
    cout<< "Количество итераций n= " << n << endl;
 
    //в точке x=2:
    //при eps=10^-3, S=0.929806   , n=12
    //при eps=10^-4, S=1.00238    , n=323
 
 
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2017, 21:08
Ответы с готовыми решениями:

Используя указатели на функцию вычислить значение функции в точке х в соответствии с выбором функции
Используя указатели на функцию вычислить значение функции в точке х в соответствии с выбором...

Используя указатели на функцию вычислить значение функции в точке х в соответствии с выбором функции
Используя указатели на функцию вычислить значение функции в точке х в соответствии с выбором...

Используя указатели на функцию вычислить значение функции в точке X в соответствии с выбором функции пользователем
Решил выложить свои лабораторные работы 1-10 за первый курс, первого семестра...

Вычислить значение функции в произвольной точке интервала, используя линейную аппроксимацию
Сразу по делу задача: Дана функция {y}_{i}= f ({x}_{i}), определенная в . (a,b числа можно дать...

5
1270 / 1027 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
28.09.2017, 12:17 2
Программа вроде верная. Возможно неверный ответ связан с тем, что точка x=5 не попадает в область сходимости ряда.
1
Диссидент
Эксперт C
27197 / 16952 / 3747
Регистрация: 24.12.2010
Сообщений: 38,134
28.09.2017, 15:14 3
Цитата Сообщение от likehood Посмотреть сообщение
точка x=5 не попадает в область сходимости ряда.
Вообще-то ряд, кажется, должен сходиться, и даже абсолютно. Хотя он не удовлетворяет условиям теоремы Лейбница. И ошибка может оказаться не меньше отброшенного члена. Наверное, следует либо изучить остаточный член, либо суммировать до 1.0/n < Eps
DmitryM5, но pow(-1.0,... в любом случае выглядит ужасно...
1
Maria ->∞
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,335
Записей в блоге: 1
28.09.2017, 15:16  [ТС] 4
А как стоит это написать?
0
Диссидент
Эксперт C
27197 / 16952 / 3747
Регистрация: 24.12.2010
Сообщений: 38,134
28.09.2017, 15:26 5
Цитата Сообщение от DmitryM5 Посмотреть сообщение
А как стоит это написать?
Типа такого
C++
1
2
3
4
5
6
int z = 1;
while(...) {
  z *= -1;
  tmp = z*sin(n*x)/n;
  s += tmp;
}
1
1270 / 1027 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
28.09.2017, 15:44 6
Лучший ответ Сообщение было отмечено DmitryM5 как решение

Решение

Цитата Сообщение от Байт Посмотреть сообщение
Вообще-то ряд, кажется, должен сходиться
Да, похоже на то. Только вот формула из первого сообщения работает, судя по всему, при |x| <= 3. А по условию x=2, так что всё должно сходиться.

А то, что формула будет работать при x=5, никто и не обещал.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2017, 15:44
Помогаю со студенческими работами здесь

Вычислить значение функции, используя ряда Тейлора
\ln \left(\frac{1+x}{1-x} \right)=2\sum_{k=1}^\infty \frac 1{2k+1}\,x^{2k-1}=2\left\,;\qquad |x|&lt;1...

Вычислить приближённое значение функции, используя представление ее в виде ряда Тейлора
Помогите пожалуйста вычислить приближённое значение функции, используя представление ее в виде ряда...

Вычислить приближенное значение функции, используя представление ее в виде ряда Тейлора
!!!Вычислить приближенное значение функции, используя представление ее в виде ряда Тейлора. ...

Вычислить приближенное значение функции, используя представление ее в виде ряда Тейлора
Помогите решить задачу. Я только начинаю программировать на С++ и мне нужна ваша помощь . Спасибо !...

Вычислить сумму ряда и значение функции
Попалось мне такое задание: Сделал что смог, а дальше? И куда мне, извиняюсь за выражение,...

Используя рекурсивный вызов функции вычислить сумму заданного числа элементов ряда
В программировании я просто дуб дубом, но нужно срочно сделать одну задачу в Qt. Сама задача: ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru