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

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

Войти
Регистрация
Восстановить пароль
 
koektoshka
0 / 0 / 0
Регистрация: 24.10.2013
Сообщений: 8
#1

синус и косинус Ряда Тейлора - C++

24.10.2013, 10:23. Просмотров 498. Ответов 4
Метки нет (Все метки)

нужно задать диапазон до pi/4 что бы в ряде тейлора было меньше сумм
помогите оптимизировать
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#define _USE_MATH_DEFINES
#include <math.h>
using namespace std;
int main()
{
    int i,s;
    double z,n,x0,x,n2,y1,y2;
    cout.precision(18);
    cout<<"vvedite 4islo  ";
    cin>>x;
    x0=x;y2=0;y1=0;n=x;n2=1;s=0;z=0;
    if ((x<M_PI_2)&&(x>M_PI_4))
      {
          x=fmod(x,M_PI_4);
           n=1;n2=x;
    }
    else 
        {
            if ((x>M_PI_2)&&(x<M_PI))
            {
                x=fmod(x,M_PI_4);
                n=-x;n2=1;
            }
            else if((x>M_PI)&&(x<3*M_PI_2))
                {
                    x=fmod(x,M_PI_4);
                n=1;n2=x; 
            }
            else x=fmod(x,M_PI);
    }
    cout<<"\nzna4enie M_PI="<<M_PI;
    cout<<"\nzna4enie x="<<x;
    for (i=1;;i++)
    {
        y1+=n;
        y2+=n2;
        n*=-x*x/((2*i)*(2*i+1));
        n2*=-x*x/((2*i)*(2*i-1));
        s++;
        if ((y1==y1+n)&&(y2==y2+n2))
        break;
    }
    if ((x0>M_PI_2)&&(x0<M_PI))
        {
        z=y1;y1=y2;y2=z;
    }
       cout<<"     summ bilo  "<<s;
       cout<<"\nsin 4erez funkjiu="<<sin(x0);
       cout<<"\nsin 4erez pi formulu="<<y1;
       cout<<"\ncos 4erez funkjiu="<<cos(x0);
       cout<<"\ncos 4erez pi formulu="<<y2;
    cin.get();
    cin.get();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2013, 10:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос синус и косинус Ряда Тейлора (C++):

Вычислить значения функции ch x (гиперболический косинус) с помощью бесконечного ряда Тейлора - C++
не могу решить никак 10. Написать программу вычисления значения функции ch x (гиперболический косинус) с помощью бесконечного ряда...

синус и косинус? - C++
нужна программа которая будет считать синус, косинус, тангенс и катангенс! на язике С

Как менять синус на косинус и наоборот в цикле - C++
Как менять синус на косинус и наоборот в цикле

Как реализовать функции что бы найти синус, косинус, корень квадратный, степень от числа - C++
Добрый вечер,разрабатываю калькулятор на winapi хотелось бы узнать как реализовать функции что бы найти синус,косинус,корень...

Ряд Тейлора, синус - C++
ТеЙлора* Уважаемые, не могу найти в чём ошибка, помогите. Алгоритм составлен (вроде) правильно. Пересчитывал значения по шагам в ручную...

Косинус от экспоненты в степени х через ряды Тейлора - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #define eps 0.000000000000000000000000000000001 #define PI 3.141592654 using namespace...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
24.10.2013, 11:03 #2
Если ввожу число, большее единицы, например, 13, он x переводит в 0.433629.... но n и x0 остаются по прежнему 13, поэтому он синус считает неправильно. Если же изначально вводить 0.433629, то n и x0 становятся 0.433629 и синус считается правильно.
koektoshka
0 / 0 / 0
Регистрация: 24.10.2013
Сообщений: 8
24.10.2013, 11:11  [ТС] #3
Программа сравнивает значения синуса Который по формуле Тейлора и синуса который считается функцией и разницы между приведенным значением и значением не приведенным быть по сути не должно т.к функция синуса сама выполняет все приведения
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
24.10.2013, 11:24 #4
Ну дак оно и понятно. Только вот не работает.

Лечится следующей строкой, сразу после cin<<x;
C++
1
while(x>2*M_PI) x-=2*M_PI;
Миниатюры
синус и косинус Ряда Тейлора  
koektoshka
0 / 0 / 0
Регистрация: 24.10.2013
Сообщений: 8
24.10.2013, 11:48  [ТС] #5
Это решило часть проблем

Допустил для 7 и 8 радиан подсчет нормальный а вот 6 и 9 допустим криво
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2013, 11:48
Привет! Вот еще темы с ответами:

Сумма ряда тейлора C++ - C++
e^(^-^x)^^^2 =\sum{} ((-1)^n*x^2^n)/n! (Е в степени X в степени 2) Пытался найти сумму ряда с заданной точностью eps. Новичок,...

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

Табуляция ряда Тейлора - C++
Есть такой вот простенький ряд. Но все же я не могу с ним справиться. Нужно реализовать табуляцию этой функции на отрезке от А до В, как я...

Найти сумму ряда Тейлора - C++
всем здравствуйте. как сделать сей ряд?)


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

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

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