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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 5.00
niceonehere
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 148
#1

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

15.07.2012, 00:36. Просмотров 2357. Ответов 8
Метки нет (Все метки)

Сам в шоке, но у меня не получается сделать это полноценно(хромает мат часть си у меня ).
Пробовал по разному:то получается NAN, то ересь,то адская неточность.
Пожалуйста дайте код нормальный,комментарии не нужны, всё-понятно...
Результат печать столбиком х и наш cos x,от 0 до 2, с шагом 0.1.
Спасибки!

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

Разложение косинуса в ряд Тейлора - C++
Помогите найти ошибку. Написал код, но работает только с 1, где ошибка? class MyClass { public: int x = 3; double s; ...

Разложение косинуса в ряд тейлора - C++
Результат вычисления cos(x) сравнить со значением, вычисленным для заданных x с помощью стандартных соответствующих функций. Для устранения...

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

Вычисление функции через разложение в ряд (Ряд Тейлора) - C++
Привет всем. Задание такого плана: Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора,...

Разложение ряд в ряд Тейлора.Переделать программу - C++
Написать программу вычисления и вывода на экран в виде таблицы значений функции, заданной с помощью ряда Тейлора, на интервале от Хзнач до...

Разложение в ряд Тейлора - C++
Есть функция log(x); Нужно ее разложить в ряд и найти сумму для заданной точность е=0.0001 Считаю х от 0 до 6.0, для того чтобы...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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 шагов сделайте и будет вам счастье
0
Catstail
Модератор
22615 / 10976 / 1779
Регистрация: 12.02.2012
Сообщений: 18,114
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;
}
1
Миниатюры
Разложение косинуса в ряд тейлора  
niceonehere
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 148
15.07.2012, 18:47  [ТС] #4
Кажись понял,что спутал,спасибо!
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 15:27 #5
insolent, а то, что это ряд обладает свойством Лейбница ничего нам не говорит? Остаточный член можете оценить? Ну да ладно, тема десятки раз всплывала, скучно уже с этими косинусами.
1
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
20.07.2012, 17:00 #6
Thinker, тогда к чему все эти разговоры
0
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 658
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- двойной точности??????
0
Catstail
Модератор
22615 / 10976 / 1779
Регистрация: 12.02.2012
Сообщений: 18,114
23.07.2012, 17:07 #8
Цитата Сообщение от isaak Посмотреть сообщение
n может быть только целочисленной переменной integer, а не double- двойной точности
- почему же? Я имею право использовать любые переменные. Если бы n была целой - все равно пришлось бы преобразовать ее в тип double.

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

Разложение ln(1-x) в ряд Тейлора - C++
Здравствуйте! помогите написать функцию разложения в ряд Тейлора ln(1-x)

Разложение в ряд тейлора - C++
У меня есть программа разложения в ряд тейлора и блок схема к ней какие параметры нужно задать чтобы получилось для log(x) и что...

разложение в ряд Тейлора - C++
нужна ваша помощь!!! используя разложение в ряд тейлора, найти значение sin(x) с заданной точностью eps.

Разложение в ряд Тейлора - C++
Доброго времени суток.Подскажите, пожалуйста разложение в ряд Тейлора функции exp(x). И хотелось бы узнать правильность предыдущей...


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

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

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