Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.67
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 658
#1

Вычисление Sinx/x разложением в ряд - C++

03.11.2010, 14:33. Просмотров 3604. Ответов 12
Метки нет (Все метки)

Всем доброго время суток. Вторые сутки бьюсь, задали написать на C++ программу вычисление Sinx/x разложением в ряд:
Sinx/x = 1 – (x^2)/3! + (x^4)/5! + … = ∑((-1)^n * x^2n)/(2n+1)!

Я сделал по аналогии с разложением с Sinx в ряд: q *= (-1) * x* x /(2 * n)/(2 * n + 1),
для Sinx/x я написал: q *= (-1) * x /(2 * n)/(2 * n + 1), подскажите это правильно????
Вот сама программа, которая у меня получилась:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
const int N = 100;
int main() {
    double x, q, s = 0;
    int n;
    cout << "Enter x = ";
    cin >> x;
    q = x;
    for (n = 1; n <= N; n++) {
        s += q;
        q *= (-1) * x /(2 * n)/(2 * n + 1);}
    cout << "sin(" << x << ") = " << s << endl;
    return 0;
}
Заранее огромное спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2010, 14:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление Sinx/x разложением в ряд (C++):

Вычисление ln(1 + x) разложением в ряд - C++
Всем доброго время суток бьюсь никак не могу въехать как написать программу вычисления ln(1 + x) разложением в ряд в книге дана формула: ...

Вычисление ch(x) разложением в ряд - C++
Ребят, не получается решить задание, помогите, пожалуйста. Задачу и формулы надо переписывать! Редактор формул внизу страницы. В...

Вычисление функции разложением в ряд - C++
Доброго времени суток,народ...Помогите найти ошибку:help: #include &lt;iostream&gt; #include &lt;clocale&gt; #include &lt;cmath&gt; using...

Вычисление функции разложением её в ряд - C++
Привет,народ) Помогите пожалуйста написать код для данной задачи:help: Заранее спасибо:) П.5.18 и 5.19 Правил 18. Запрещено размещать...

Вычисление arcsin разложением в ряд - C++
здравствуйте,помогите пожалуйста с темой Вычислить с заданной точностью значение функции , используя ее разложение в ряд:

Вычисление функции,разложением ее в ряд - C++
Помогите, пожалуйста, в решении задачи. НИЧЕГО НЕ ПОЛУЧАЕТСЯ Написать программу нахождения суммы ряда с заданной точностью ε. ...

12
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.11.2010, 14:40 #2
А что, посчитать на калькуляторе и сравнить результаты религия не позволяет?
1
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 658
03.11.2010, 14:50  [ТС] #3
А при чем здесь религия

Добавлено через 1 минуту
Национальные признаки здесь не уместны
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.11.2010, 14:55 #4
Это такое выражение. Означает, что прежде, чем бежать за помощью во все доступные места, не мешало бы самому додуматься сделать то, что указывается перед "... религия не позволяет?"

Добавлено через 56 секунд
Ещё вариант:
"А что, X уже не модно?"

Добавлено через 3 минуты
Используется это всё в тех случаях, когда спрашиваются очевидные вещи. В вашем случае: вы загрузили браузер, подождали, пока прогрузится форум, долго печатали сообщение и копировали код. Да ещё и теряли время, ожидая ответа. А могли бы запустить калькулятор, ввести желаемый икс, нажать кнопочку "sin", затем "/", а затем снова ввести желаемый икс. Посмотреть на результат в калькуляторе и результат работы программы. И вопрос, правильно вы сделали или нет, отпал бы сам собой.
0
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 658
03.11.2010, 14:56  [ТС] #5
Что подразумевается под Х

Добавлено через 1 минуту
Не приличное слово из трех букв????
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.11.2010, 15:10 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
int main()
{
    std::string X = "самостоятельно пользоваться калькулятором";
 
    setlocale(LC_ALL, "Rus");
 
    std::cout << "А что, " << X << " уже не модно?";
 
    std::cin.get();
    return 0;
}
0
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 658
03.11.2010, 15:20  [ТС] #7
silent_1991 если такой крутой программист, что тогда делаешь в разделе для начинающих, или вся твоя крутость и заключается в осмеивании новичков, задевая их национальную принадлежность, на большее у тебя мозгов не хватает
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.11.2010, 15:27 #8
Во-первых - это шутка, во-вторых, подобная реакция обычно означает, что "рыльце-то в пушку", а в-третьих, я предложил вам самый простой вариант решения - проверить результат самостоятельно. Новичок - понятие растяжимое. Ваш вопрос к программированию никакого отношения не имеет, к языку - тем более.
Чтобы у вас не возникло иллюзий по поводу моей причастности к расистам, антисемитам и прочей лабуде - http://www.google.ru/search?hl=ru&so...=&oq=&gs_rfai= - скажем, вторая ссылка.
0
KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
03.11.2010, 16:17 #9
Это кстати неверный подход, ряд Тейлора для функции будет другой.

Добавлено через 13 минут
Нет, наврал, ряд правильный.
1
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.11.2010, 16:19 #10
Точно? Разве sin(x) / x не равно ряд_для_синуса / x?

Добавлено через 19 секунд
Чёрт подери, вы меня на пару секунд опередили)))
0
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 658
03.11.2010, 16:20  [ТС] #11
KpeHDeJIb а какой как правильно будет вычисление:

Sinx/x = 1 – (x^2)/3! + (x^4)/5! + … = ∑((-1)^n * x^2n)/(2n+1)!

Я просто взял по аналогии с Sinx, как правильно вторые сутки бьюсь
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.11.2010, 16:31 #12
У вас общий член не правильный, должен быть такой:
q *= (-1) * x * x/((2 * n) * (2 * n + 1));

Добавлено через 36 секунд
А, и начинать надо с 1, а не с x (до цикла присвоить q 1)
1
KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
03.11.2010, 16:58 #13
Цитата Сообщение от isaak Посмотреть сообщение
KpeHDeJIb а какой как правильно будет вычисление:

Sinx/x = 1 – (x^2)/3! + (x^4)/5! + … = ∑((-1)^n * x^2n)/(2n+1)!

Я просто взял по аналогии с Sinx, как правильно вторые сутки бьюсь
Нет нет, все правильно, это я ошибся, посмотрел на ваш ряд sin(x) и подумал что это уже для sin(x)/x.

В любом случае по этому ряду вычисление будет такое:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
double factorial(unsigned n)
{
    double result = 1.0;
 
    while (n > 1)
        result *= (double)n--;
 
    return result;
}
 
double calc_sinx_x(double x, unsigned iterations)
{
    double result = 0.0f;
 
    for (unsigned n = 0; n < iterations; ++n)
        result += pow(x, 2.0 * n) * (-(n % 2)) / factorial(2 * n + 1);
 
    return result;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2010, 16:58
Привет! Вот еще темы с ответами:

Вычисление функции разложением в ряд - C++
Здравствуйте, помогите написать программу пожалуйста. лекцию прослушал и не понимаю как. мой вариант на 1й фотографии нужно сделать по...

Вычисление функций разложением в ряд - C++
Помогите решить, пожалуйста. Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x), используя ее...

1.5 Вычисление функции разложением её в ряд - C++
Составить алгоритм и программу нахождения суммы ряда с заданной точностью Е. Использовать рекуррентные соотношения при вычислении...

Вычисление функции разложением в ряд - C++
1. Составить алгоритм и написать программу вычисления следующих сумм. 2. Составить программу вычисления суммы первых n=10; 20; 30 членов...


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
03.11.2010, 16:58
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru