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

Вычисление суммы ряда - C++

Восстановить пароль Регистрация
 
rostik123456789
0 / 0 / 0
Регистрация: 30.09.2012
Сообщений: 25
26.10.2012, 16:55     Вычисление суммы ряда #1
не могу написать функцию, просто не понимаю ряды, а времени для их изучения нет, дайте идею или кусок кода.
Миниатюры
Вычисление суммы ряда  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2012, 16:55     Вычисление суммы ряда
Посмотрите здесь:

Вычисление суммы ряда C++
вычисление суммы ряда C++
Вычисление суммы ряда C++
C++ Вычисление суммы ряда
C++ Вычисление суммы ряда
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,989
26.10.2012, 17:23     Вычисление суммы ряда #2
C
1
2
3
4
5
6
7
8
9
10
11
12
 Mycos(double x, double eps)
{ double s = 0, m=1.0; int i, f;
 for(i=0, f=1; ; i++) {
   f *= (i+1);
   if (i%2) continue;
   m *= x*x/f;
   if (m<eps) break;
   if (i%4) s -= m;
   else      s += m;
 }
 return s;
}
Как-то так
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
26.10.2012, 17:33     Вычисление суммы ряда #3
Что-то рядов в моей коллекции ещё не было
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
#include <iostream>
#include <math.h>
 
const double Precision = 0.0001;
 
bool IsEqual(const double X, const double Y)
{
    return (abs(X - Y) < Precision);
}
 
long factorial(const int N) { return ((N == 1) ? 1 : factorial(N - 1) * N); }
 
double OneElement(const double X, const int N)
{
    return ((N == 0) ? 1 : (pow(-1.0, N) * pow(X, 2.0 * N) / factorial(2 * N)));
}
 
double RowSum(const double X)
{
    double S = 0.0, Sp;
    int N = 0;
    do {
        Sp = S;
        S += OneElement(X, N++);
    } while (!IsEqual(S,Sp));
    return S;
}
 
int main(void)
{
    setlocale(0, "rus");
    double X;
    std::cout << "Введите: Х = ";
    std::cin >> X;
    std::cout << "cos(" << X << ") = " << RowSum(X * 3.142 / 180) << std::endl;
    system("pause");
}
snw
10 / 10 / 0
Регистрация: 11.10.2012
Сообщений: 93
26.10.2012, 17:41     Вычисление суммы ряда #4
Хех а мы решали через рекурретную формулу, ai делили ai-1 и находили a*=(выражение полученное при делении). потом суммировали. Препод говорила это для того чтобы избежать переполнения.
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,989
26.10.2012, 17:46     Вычисление суммы ряда #5
Цитата Сообщение от snw Посмотреть сообщение
Хех а мы решали через рекурретную формулу, ai делили ai-1 и находили a*=(выражение полученное при делении). потом суммировали. Препод говорила это для того чтобы избежать переполнения.
Это мудро. Факториал и впрямь растет быстровато. Но я не стал усложнять (хотя и незначительно) алгоритм, просто чтоб довести до ТС основную (да хоть какую!) идею работы с рядами.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.10.2012, 17:54     Вычисление суммы ряда #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double Cos(double x, double eps)
{
   int i;
   double p, rez; 
   i = 0;
   rez = p = 1;
   while(fabs(p) >= eps)
   {
       i += 2;
       p *= -(x*x)/((i-1)*i);
       rez += p;
   }
   return rez;
}
Yandex
Объявления
26.10.2012, 17:54     Вычисление суммы ряда
Ответ Создать тему
Опции темы

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