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

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

21.09.2015, 23:15. Просмотров 1338. Ответов 5
Метки нет (Все метки)


Помогите найти ошибку. Написал код, но работает только с 1, где ошибка?
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
class MyClass
{
 
public:
    int x = 3;
    double  s;
    double t = 0.5;
 
    void count()
    {
        for (int i = 1; i<4; i++)
        {
            s += t;
            t = (double)(-1*x*x)/(i*2+1)/(i*2+2)*t;
            
 
            cout << "I = " << i << " t = " << t << " Summ = " << 1-s << endl;
 
        }
 
        cout << "\n kosinus(x) = " << cos(-x);
 
    }
}a;
 
int main(int argc, const char * argv[]) {
 
    a.count();
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.09.2015, 23:15
Ответы с готовыми решениями:

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

Разложение косинуса в ряд тейлора
Сам в шоке, но у меня не получается сделать это полноценно(хромает мат часть си у меня...

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

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

5
2711 / 1878 / 556
Регистрация: 05.06.2014
Сообщений: 5,452
21.09.2015, 23:21 2
Цитата Сообщение от АРТЕ Посмотреть сообщение
s += t;
s не инициализировано и содержит мусор.
0
0 / 0 / 0
Регистрация: 09.11.2014
Сообщений: 134
21.09.2015, 23:26  [ТС] 3
значит double s=0;
?
0
2711 / 1878 / 556
Регистрация: 05.06.2014
Сообщений: 5,452
21.09.2015, 23:30 4
Также i++ i+=2. Ну и почему t у вас изначально 0.5 а не 1 я так и не понял.
0
0 / 0 / 0
Регистрация: 09.11.2014
Сообщений: 134
21.09.2015, 23:35  [ТС] 5
Потому что если T=1, то даже со значением х =1, выводит неправильно..
0
2711 / 1878 / 556
Регистрация: 05.06.2014
Сообщений: 5,452
21.09.2015, 23:39 6
И цикл надо с нуля начинать, иначе первый делитель оказывается сразу 3*4 ((i*2+1)*(i*2+2) где i=1) вместо 1*2. Короче:
C++
1
2
3
4
5
6
7
8
double mul=1,div=1,res=0,x=3;
for(int i=1;i<20;i+=2)
{
    res+=mul/div;
    mul*=-x*x;
    div*=i*(i+1);
    cout<<res<<endl;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.09.2015, 23:39

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

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

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

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

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


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

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

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