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

Разложение косинуса в ряд тейлора - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 5.00
niceonehere
 Аватар для niceonehere
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 147
15.07.2012, 00:36     Разложение косинуса в ряд тейлора #1
Сам в шоке, но у меня не получается сделать это полноценно(хромает мат часть си у меня ).
Пробовал по разному:то получается NAN, то ересь,то адская неточность.
Пожалуйста дайте код нормальный,комментарии не нужны, всё-понятно...
Результат печать столбиком х и наш cos x,от 0 до 2, с шагом 0.1.
Спасибки!

Добавлено через 10 минут
Чуть не забыл,ограничиться не точностью,а 10ю членами ряда.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2012, 00:36     Разложение косинуса в ряд тейлора
Посмотрите здесь:

Разложение в ряд Тейлора C++
C++ Вычисление функции через разложение в ряд (Ряд Тейлора)
разложение в ряд Тейлора C++
Разложение косинуса в ряд Тейлора C++
Разложение функции в ряд Тейлора C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
15.07.2012, 12:03     Разложение косинуса в ряд тейлора #2
Коль память мне не изменяет, то косинус записываться, как сумма
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{n=0}^{\infty }{(-1)}^{n}\frac{1}{(2n)!}{x}^{2n}
Так что в цикле в 10 шагов сделайте и будет вам счастье
Catstail
Модератор
 Аватар для Catstail
21428 / 10213 / 1664
Регистрация: 12.02.2012
Сообщений: 17,082
15.07.2012, 14:38     Разложение косинуса в ряд тейлора #3
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
#include <iostream.h>
 
double Cos(double x)
{
    int i;
    double s=1,n=0,a=1;
 
    for (i=1; i<=10; i++)
    {
        a=-(a*x*x)/((2*n+2)*(2*n+1));
        s=s+a;
        n++;
    }
 
    return s;
}
 
int main(int argc, char* argv[])
{
    double xx=0,hh=0.1;
 
    for (int i=1; i<=10; i++)
    {
        cout << xx << " " << Cos(xx) << endl;
        xx=xx+hh;
    }
 
    return 0;
}
Миниатюры
Разложение косинуса в ряд тейлора  
niceonehere
 Аватар для niceonehere
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 147
15.07.2012, 18:47  [ТС]     Разложение косинуса в ряд тейлора #4
Кажись понял,что спутал,спасибо!
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 15:27     Разложение косинуса в ряд тейлора #5
insolent, а то, что это ряд обладает свойством Лейбница ничего нам не говорит? Остаточный член можете оценить? Ну да ладно, тема десятки раз всплывала, скучно уже с этими косинусами.
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
20.07.2012, 17:00     Разложение косинуса в ряд тейлора #6
Thinker, тогда к чему все эти разговоры
isaak
101 / 38 / 9
Регистрация: 17.10.2010
Сообщений: 634
23.07.2012, 14:46     Разложение косинуса в ряд тейлора #7
У меня возник вопрос насчет формулы: a=-(a*x*x)/((2*n+2)*(2*n+1)), точнее, то по поводу ее знаменателя (2*n+2)*(2*n+1)
cos(x) = Ʃ(-1)^n * x^(2*n)/(2*n)!;
так как n!= 1*2 *...(n-1)*n, то (2*n)! = 1 * 2 *4 *6*8*...*(2*n-1)*(2*n)
тогда формула для вычисления cos(x) примет вид:
a=(-1)*x*x/((2*n-1)*(2*n));
и n может быть только целочисленной переменной integer, а не double- двойной точности??????
Catstail
Модератор
 Аватар для Catstail
21428 / 10213 / 1664
Регистрация: 12.02.2012
Сообщений: 17,082
23.07.2012, 17:07     Разложение косинуса в ряд тейлора #8
Цитата Сообщение от isaak Посмотреть сообщение
n может быть только целочисленной переменной integer, а не double- двойной точности
- почему же? Я имею право использовать любые переменные. Если бы n была целой - все равно пришлось бы преобразовать ее в тип double.

О знаменателе формулы: Ваша и моя запись - в сущности - одно и то же (одна переходит в другую при замене n на n+1). То, что в моем коде получаются верные значения коминуса (можете проверить), свидетельствует о том, что я не ошибся.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2012, 18:33     Разложение косинуса в ряд тейлора
Еще ссылки по теме:

C++ Разложение в ряд Тейлора lg(x)
Разложение в ряд тейлора C++
C++ Разложение функции в ряд Тейлора

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

Или воспользуйтесь поиском по форуму:
isaak
101 / 38 / 9
Регистрация: 17.10.2010
Сообщений: 634
23.07.2012, 18:33     Разложение косинуса в ряд тейлора #9
Спасибо за ответ, но я нашел наиболее мне понятное решение.
Yandex
Объявления
23.07.2012, 18:33     Разложение косинуса в ряд тейлора
Ответ Создать тему
Опции темы

Текущее время: 11:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru