Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/32: Рейтинг темы: голосов - 32, средняя оценка - 4.63
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 158
1

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

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

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

Добавлено через 10 минут
Чуть не забыл,ограничиться не точностью,а 10ю членами ряда.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.07.2012, 00:36
Ответы с готовыми решениями:

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

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

Разложение косинуса в ряд Тейлора
Помогите найти ошибку. Написал код, но работает только с 1, где ошибка? class MyClass { ...

Разложение синуса и косинуса в ряд Тейлора
Есть следующая функция с разложением косинуса и синуса в ряд: void sincos (double a) { ...

8
827 / 349 / 64
Регистрация: 30.01.2009
Сообщений: 1,204
15.07.2012, 12:03 2
Коль память мне не изменяет, то косинус записываться, как сумма
https://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{n=0}^{\infty }{(-1)}^{n}\frac{1}{(2n)!}{x}^{2n}
Так что в цикле в 10 шагов сделайте и будет вам счастье
0
Модератор
Эксперт Python
26655 / 13901 / 2644
Регистрация: 12.02.2012
Сообщений: 22,783
Записей в блоге: 1
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
Миниатюры
Разложение косинуса в ряд тейлора  
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 158
15.07.2012, 18:47  [ТС] 4
Кажись понял,что спутал,спасибо!
0
Эксперт С++
4251 / 2225 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 15:27 5
insolent, а то, что это ряд обладает свойством Лейбница ничего нам не говорит? Остаточный член можете оценить? Ну да ладно, тема десятки раз всплывала, скучно уже с этими косинусами.
1
827 / 349 / 64
Регистрация: 30.01.2009
Сообщений: 1,204
20.07.2012, 17:00 6
Thinker, тогда к чему все эти разговоры
0
48 / 53 / 20
Регистрация: 17.10.2010
Сообщений: 816
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
Модератор
Эксперт Python
26655 / 13901 / 2644
Регистрация: 12.02.2012
Сообщений: 22,783
Записей в блоге: 1
23.07.2012, 17:07 8
Цитата Сообщение от isaak Посмотреть сообщение
n может быть только целочисленной переменной integer, а не double- двойной точности
- почему же? Я имею право использовать любые переменные. Если бы n была целой - все равно пришлось бы преобразовать ее в тип double.

О знаменателе формулы: Ваша и моя запись - в сущности - одно и то же (одна переходит в другую при замене n на n+1). То, что в моем коде получаются верные значения коминуса (можете проверить), свидетельствует о том, что я не ошибся.
0
48 / 53 / 20
Регистрация: 17.10.2010
Сообщений: 816
23.07.2012, 18:33 9
Спасибо за ответ, но я нашел наиболее мне понятное решение.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.07.2012, 18:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

Разложение в ряд Тейлора
Есть функция log(x); Нужно ее разложить в ряд и найти сумму для заданной точность е=0.0001 Считаю...


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

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

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