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

Разложить sin(x) в ряд Тейлора - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 492
27.11.2012, 16:33     Разложить sin(x) в ряд Тейлора #1
Разложить sin(x) в ряд Тейлора.На экран должно выводиться n первых слагаемых разложения (x-0.16667x3+…). Значение n определяет пользователь.

Не могу сообразить,само задание.
Разложить в ряд из википедии это sin(x) = x - (x3/3!) + (x5/5!) - (x7/7!) + ..... это раз.
И зачем число в задание (x-0.16667x3+…) не понял.
Мож кто разъеснит?

И если n=1 что должно вывести и n=2 для примера.

Начал писать такую вещь.

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
ostream& operator << (ostream& out, const Teilor& t)
{
    double gh = 0.0;
    int i = 3,k = 1,ss = 0;
 
    for(int st=1;st<=t.n;st++)
    {
        for(int i=3; i>=1; i--)
        {
            k*=i;
        }
        if(st>1)
        {
            gh = ((pow(t.x,i))/k);
            i+=2;//Степень и факториал
            k=1;//сброс на дефолт,для факториала
            ss++;
        }
        else
        {
            gh = t.x;
            ss++;
        }
        out<<"("<<gh<<")";
        if(st<t.n && ss%2==0)
        {
            out<<"+";
        }
        else if(st<t.n && ss%2!=0)
        {
            out<<"-";
        }
    }
    return out;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
27.11.2012, 17:07     Разложить sin(x) в ряд Тейлора #2
ну так а чему равно x^3 * 1/3!
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 492
27.11.2012, 17:23  [ТС]     Разложить sin(x) в ряд Тейлора #3
дак x и n вводим в самом начале
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
27.11.2012, 17:44     Разложить sin(x) в ряд Тейлора #4
просто может вы в курсе, но я на всякий случай скажу
x^3 * 1/3! = x^3 * 0.16667

поэтому эта одна и та же формула, в этом случае не стоит отвлекаться на формулировку задания. делайте по вики.

Добавлено через 2 минуты
думаю при n = 1 мы получим x
при n = 2 мы получим (x-0.16667x^3)
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 492
27.11.2012, 17:48  [ТС]     Разложить sin(x) в ряд Тейлора #5
Вот в данный момент как работает, это верно вообще?и какие ограничение поставить на ввод икса?и нужны ли(если да,то какие) ограничения на n?
Миниатюры
Разложить sin(x) в ряд Тейлора  
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
27.11.2012, 18:02     Разложить sin(x) в ряд Тейлора #6
думаю, что обработку ряда Тейлора нужно делать не в перезагрузке оператора << а где нить в другом месте. (сами будете путаться)
результат обычно сравнивается с sin(x) из библиотеки math.h
или результат вычислений синуса вообще не надо выводить?

Добавлено через 8 минут
n как бы > 0 и естественно, как то ограничено сверху, комп не будет считать до бесконечности.
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 492
27.11.2012, 18:02  [ТС]     Разложить sin(x) в ряд Тейлора #7
C++
1
        out<<"("<<gh<<")"<<"("<<sin(gh)<<")";
Для интереса сделал так. Результат таков (число по циклам моим)(синус числа)
Они различаются чуток,такого не должно быть так?

И скажите про ограничения x.Как ограничить x и n я хз,подскажите?Сравнивать в задание с синусом нету.
Миниатюры
Разложить sin(x) в ряд Тейлора  
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
27.11.2012, 18:22     Разложить sin(x) в ряд Тейлора #8
да всё правильно, при увеличении n точность вычислений ряда тейлора растёт. в вики написано x принадлежит C . C это комплексные числа
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 492
27.11.2012, 18:37  [ТС]     Разложить sin(x) в ряд Тейлора #9
а x от скольки до скольки может быть?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2012, 19:23     Разложить sin(x) в ряд Тейлора
Еще ссылки по теме:

Ряд Тейлора С++ C++
Разложить функцию sin(nx) в ряд Тейлора C++
C++ Написать функцию вычисления sin(x)/x разложением в ряд Тейлора

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

Или воспользуйтесь поиском по форуму:
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
27.11.2012, 19:23     Разложить sin(x) в ряд Тейлора #10
вот как посмотрите как красиво сделано вычисление факториала
Вычисление функции через разложение в ряд (Ряд Тейлора)
это во первых
во вторых если мы вводим double x; то подумайте, что будет на выходе вычислений, когда x будет в максимумах в положит и отриц сторону. x ограничено возможностями компилятора и компьютера.
в третьих я не знаю как у вас по заданию, но n я бы ограничил размерами экрана, при этом n - целое
в четвертых в идеале ввод пользователя проверяется регулярными выражениями

Добавлено через 34 минуты
Типы данных
Yandex
Объявления
27.11.2012, 19:23     Разложить sin(x) в ряд Тейлора
Ответ Создать тему
Опции темы

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