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

Функция бесконечного ряда Тейлора с заданной точностью на С

17.04.2015, 01:01. Показов 1199. Ответов 1
Метки нет (Все метки)

Помогите написать программу. Находил примеры, но не могу понять как сделать с бесконечностью.

Вычисляющую некоторую функцию с помощью бесконечного ряда Тейлора с заданной точностью. Заданная точность вычислений DELTA вводится пользователем с клавиатуры и должна лежать в диапазоне 10-9…10-20.
Под погрешностью вычислений ряда (Fi) в данном случае следует понимать значение, равное абсолютному значению последнего рассчитанного члена ряда Fi. Вычисления прекращаются, как только полученная погрешность Fi станет меньше заданной точности DELTA:
Fi < DELTA
Кроме того, необходимо подсчитать количество членов ряда CNT, понадобившееся для до снижения заданной точности.
https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
cos x = \sum_{n=0}^{\infty }\frac{{(-1)}^{n}{x}^{2n}}{(2n)!}=1-\frac{{x}^{2}}{2!}+\frac{{x}^{4}}{4!}-\frac{{x}^{6}}{6!}+...\left|x \right|<\infty<br />
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2015, 01:01
Ответы с готовыми решениями:

Сумма бесконечного ряда с заданной точностью
Здравствуйте. Задавал вопрос по похожей задаче (из другого варианта), Условие: Вычислить сумму...

Вычисление бесконечного ряда с заданной точностью
var x,y,n,f: real; begin x:=StrToFloat(Edit1.Text); y:=0; n:=1; f:=1; while...

Сумма бесконечного ряда с заданной точностью
как реализовать сумму бесконечного ряда? посмотрел пару примеров не понял \sum_{n=0}^{\propto...

Сумма бесконечного ряда с заданной точностью
Написать программу вычисления суммы бесконечного ряда с точностью eps=0.001: ...

1
Pure Free Digital Ghost
4216 / 1676 / 323
Регистрация: 06.01.2013
Сообщений: 4,287
17.04.2015, 18:17 2
Лучший ответ Сообщение было отмечено wallaby как решение

Решение

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
#include <iostream>
#include <cmath>
#include <windows.h>
 
long long int fact(int x) {
    if (x < 2) return 1;
    
    long long int prod = 1;
    while (x) {
        prod *= x--;
    }
    return prod;
}
 
int sign(int x){
    return x % 2 ? -1 : 1;
}
 
int main ( ) {
    setlocale(LC_ALL, "Russian");
    
    double precision, summ = 0, x;
    int abs_precision, count = 0;
    
    std::cout << "Введите X: ";
    std::cin >> x;
    
    std::cout << "Введите показатель погрешности (показатель степени числа 10): ";
    std::cin >> abs_precision;
    
    abs_precision = -abs(abs_precision);
    precision = pow(10, abs_precision);
    
    
    double last = 0;
    do {
        last = (double) sign(count) / fact(2 * count) * pow(x, 2 * count);
        summ += last;
        count++;
    } while (fabs(last) >= precision);
    
    
    std::cout << "cos(x) = " << summ << "; Количество итераций = " << count;
    return 0;
}
Добавлено через 8 минут
Даже так, скорее:
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
#include <iostream>
#include <cmath>
#include <windows.h>
 
long long int fact(int x) {
    if (x < 2) return 1;
    
    long long int prod = 1;
    while (x) {
        prod *= x--;
    }
    if (prod <= 0) errno = ERANGE;
    return prod;
}
 
int sign(int x){
    return x % 2 ? -1 : 1;
}
 
int main ( ) {
    setlocale(LC_ALL, "Russian");
    
    double precision, summ = 0, x;
    int abs_precision, count = 0;
    
    std::cout << "Введите X: ";
    std::cin >> x;
    
    std::cout << "Введите показатель погрешности (показатель степени числа 10): ";
    std::cin >> abs_precision;
    
    abs_precision = -abs(abs_precision);
    precision = pow(10, abs_precision);
    
    
    double last = 0;
    do {
        last = (double) sign(count) / fact(2 * count) * pow(x, 2 * count);
        summ += last;
        count++;
    } while (fabs(last) >= precision && errno != ERANGE);
    
    
    std::cout << "cos(x) = " << summ << "; Количество итераций = " << count;
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2015, 18:17

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Вычисление бесконечного ряда с заданной точностью
Доброй ночи. Сейчас столкнулся с неприятной ситуацией, в задаче, которая казалось бы полностью...

Найти сумму бесконечного ряда с заданной точностью
помогите пожалуйста найти ошибку: program aaa; var r,s,i,f:real; begin r:=3.14/3; s:=0; i:=0;...

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

Вычисление суммы бесконечного ряда с заданной точностью
Вычислить сумму бесконечного ряда с заданной точностью ε = 0,5 * 10-4 ∞ Σ...

Вычисление суммы бесконечного ряда с заданной точностью
Выдает 205 ошибку все время + не знаю, как с заданной точностью это сделать помогите пожалуйста ...

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


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

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

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