С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.70
SKILHUNT
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 14
#1

Вычислить сумму n членов ряда Тейлора для косинуса - C++

10.10.2012, 23:26. Просмотров 3170. Ответов 25
Метки cos (Все метки)

По заданию дано число X, надо вычислить сумму n членов рада тейлора для косинуса и сравнить с результатом библиотечного косинуса. Получается, что x и n задаются пользователем. Я сделал наброски, но при вычислении у меня n приходится подбирать чтобы результаты совпали.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
#include<math.h>
int main()
{
double x,n,c,mx2 = -x*x,part=1,sum=1;
int i;
    for(;;){
    printf("Vvedite x:\n");
    scanf("%lf", &x);
    printf("Vvedite n:\n");
    scanf("%lf",&n);
    if(n<=0)break;
    for (i = 2; i < n; i+=2) {
        part *= mx2/((i-1)*i);
        sum += part;
    }
    c=cos(x);
    printf("cos(%lf) = %lf\n", x, sum); 
    printf("cos(%lf) = %lf\n", x, c);
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2012, 23:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить сумму n членов ряда Тейлора для косинуса (C++):

Подсчитать сумму членов ряда с точностью до 0.000001 и сумму первых 10 членов ряда - C++
Добавлено через 10 часов 32 минуты Для ряда, члены которого вычисляются по формуле, соответствующей Вашему индивидуальному заданию,...

Вычислить сумму N членов ряда - C++
Вычислить сумму N членов ряда Вот мой код, но считает почему то не правильно=( Кто подскажет в чем проблема? Буду очень благодарен! ...

Вычислить сумму первых N членов ряда - C++
Помогите написать код: Вычислить сумму первых N членов ряда, значения N и x ввести с клавиатуры. {deleted} П.5.18.Правил ...

Вычислить сумму n первых членов ряда - C++
Не используя стандартные функции(за исключением abs),вычислить сумму n первых членов следующего ряда(n,x,a вводится с клавиатуры). ...

Вычислить сумму n членов заданного ряда - C++
Вычислить сумму n членов ряда согласно условию задачи: x+{x}^{2}/2!+{x}^{4}/4!+...

Вычислить сумму n первых членов ряда . - C++
Дано целое число n и вещественное число x. Вычислить сумму n первых членов ряда . Полученное число должно являться приближенным значением...

25
nullpointer
46 / 46 / 5
Регистрация: 30.03.2009
Сообщений: 523
10.10.2012, 23:47 #2
Я так думаю нужно что-то вроде этого

C
1
2
3
4
5
6
7
while (fabs(с - sum)>eps){
        
                      for (i = 2; i < n; i+=2) {
                           part *= mx2/((i-1)*i);
                           sum += part;
                      }
}
0
Dima249
10 / 10 / 0
Регистрация: 02.10.2011
Сообщений: 69
10.10.2012, 23:47 #3
Цитата Сообщение от SKILHUNT Посмотреть сообщение
C++
1
double x,n,c,mx2 = -x*x,part=1,sum=1;
что за -x*x? у меня как я стал запускать вашу программу выдало ошибку с ошибкой обращения к х
могу выложить похожую программу
0
SKILHUNT
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 14
10.10.2012, 23:50  [ТС] #4
У меня все запускается, но работает не совсем корректно
0
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
10.10.2012, 23:54 #5
Цитата Сообщение от SKILHUNT Посмотреть сообщение
double x,n,c,mx2 = -x*x,part=1,sum=1;
использование переменной х без инициализации
должна быть ошибка компиляции или предупреждение
1
Dima249
10 / 10 / 0
Регистрация: 02.10.2011
Сообщений: 69
10.10.2012, 23:59 #6
Цитата Сообщение от I.M. Посмотреть сообщение
использование переменной х без инициализации
должна быть ошибка компиляции или предупреждение
при запуски программы выдает ошибку
0
SKILHUNT
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 14
11.10.2012, 00:00  [ТС] #7
Однако Dev-c++ никаких предупреждений не делает, а программа запускается
0
Dima249
10 / 10 / 0
Регистрация: 02.10.2011
Сообщений: 69
11.10.2012, 00:02 #8
Цитата Сообщение от SKILHUNT Посмотреть сообщение
Однако Dev-c++ никаких предупреждений не делает, а программа запускается
Советую использовать Visual Studio 2010/2012 есть экспресс версии бесплатные на сайте microsoft
1
SKILHUNT
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 14
11.10.2012, 00:03  [ТС] #9
Цитата Сообщение от Dima249 Посмотреть сообщение
Советую использовать Visual Studio 2010/2012 есть экспресс версии бесплатные на сайте microsoft
Надо будет скачать, но всеже отелось бы довести до ума програмку
0
Dima249
10 / 10 / 0
Регистрация: 02.10.2011
Сообщений: 69
11.10.2012, 00:25 #10
Цитата Сообщение от SKILHUNT Посмотреть сообщение
Надо будет скачать, но всеже отелось бы довести до ума програмку
напишите формулу вашу пожалуйста
0
SKILHUNT
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 14
11.10.2012, 00:30  [ТС] #11
Приложил фото с заданием, там формула есть
0
Миниатюры
Вычислить сумму n членов ряда Тейлора для косинуса  
Dima249
10 / 10 / 0
Регистрация: 02.10.2011
Сообщений: 69
11.10.2012, 00:52 #12
Цитата Сообщение от SKILHUNT Посмотреть сообщение
Приложил фото с заданием, там формула есть
вы не так указали формулу
там у меня когда я пробовал сделать вашу программу возникла проблема с факториалом, а так вот формула
C++
1
 part *=(pow(-1.0,i))*(pow(x,2*n)/(/*факториал*/));
0
SKILHUNT
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 14
11.10.2012, 01:07  [ТС] #13
вообще с факториалом как я понял требуется его реализовать без factorial
0
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
11.10.2012, 01:19 #14
Цитата Сообщение от SKILHUNT Посмотреть сообщение
Однако Dev-c++ никаких предупреждений не делает, а программа запускается
Это не делает неправильный код правильным.
Использование переменной х должно быть после ее инициализации (после ввода значения с клавиатуры). Переносите вычисление
0
SKILHUNT
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 14
11.10.2012, 15:26  [ТС] #15
В общем еще пошаманив вот что я получил:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h>
#include<math.h>
int main()
{
    for(;;){
    double x,n,c,part=1,sum=1;
    int i;
    printf("Vvedite x:\n");
    scanf("%lf", &x);
    printf("Vvedite n:\n");
    scanf("%lf",&n);
    double mx2 = -x*x, fac;
    if(n<=0)break;
    for (i = 2; i < n; i+=2) {
        fac=i*(i-1);
        part *= mx2/fac;
        sum += part;
        }
    c=cos(x);
    printf("cos(%lf) = %lf\n", x, sum); 
    printf("cos(%lf) = %lf\n", x, c);
}
}
Ведь в моем случае от n зависит точность как я понял?

Добавлено через 1 час 15 минут
Кто может, покажите как надо, ато я чет вожусь, опыта нету, еще не до конца понимаю.

Добавлено через 11 часов 48 минут
В общем догнал я задание, надо в итоге чтобы выводилась сумма n членов ряда и косинус для сравнения, x и n задаются пользователем, но у меня всегда в итоге сумма выдает 1
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
#include<math.h>
    int main()
{
    double x,n,c,part=1,sum=1;
    int i;
    for(;;){
    printf("Vvedite x:\n");
    scanf("%lf", &x);
    printf("Vvedite n:\n");
    scanf("%d",&n);
    if(n<=0)break;
    for (i = 2; i < n; i+=2) {
        part *= ((pow(-1.0,i))*(pow(x,2*n)))/((2*i-1)*i);
        sum += part;
    }
    printf("S=%lf\ncos(%lf) = %lf\n", sum, x, cos(x));
}
}
0
11.10.2012, 15:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2012, 15:26
Привет! Вот еще темы с ответами:

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

Вычислить сумму первых N членов ряда, значения N и x ввести с клавиатуры - C++
помогите пожалуйста

Вычислить сумму первых N членов ряда, значения N и x ввести с клавиатуры - C++
y= sinx+1/1 + sinx+2/1+3 + sinx+3/1+3+1 + sinx+4/1+3+1+3 +... Контрольное значение: y = 6.0069 при x=1.38 и N=7 Контрольное...

определить число членов ряда, необходимых для расчета с заданной погрешностью суммы членов ряда: - C++
определить число членов ряда, необходимых для расчета с заданной погрешностью суммы членов ряда: 1-1/3+1/5-1/7+…..: (-1)^N/(2*N+1);...


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

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

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