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

Рекурсивная функция вычисления суммы бесконечного ряда - C++

Восстановить пароль Регистрация
 
kryasan
-22 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 38
28.02.2012, 12:13     Рекурсивная функция вычисления суммы бесконечного ряда #1
Всем привет) Объясните кто нибудь как это можно сделать?)
Миниатюры
Рекурсивная функция вычисления суммы бесконечного ряда  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
28.02.2012, 14:17     Рекурсивная функция вычисления суммы бесконечного ряда #2
На сколько я понял требуется вычислить с помощью ряда значение cos( pi / 6 ).
Вот мое решение.
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
#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
 
#define EPS 5E-4
// Если компилятор не знает что такое M_PI, то раскомментировать следующую строку
//#define M_PI 3.14159265358979323846
 
unsigned factorial( unsigned n ) {
    if ( n <= 1 )
        return 1;
    return ( n * factorial( n - 1 ) );
}
 
double cos_series_pi_6( double eps ) {
    static unsigned n = 0;
    ++n;
 
    double curr = pow( -1, n ) * pow( ( M_PI / 6 ), 2 * n )
            / factorial( 2 * n );
 
    if ( abs( curr ) < eps )
        return 1;
 
    return curr + cos_series_pi_6( eps );
 
}
 
int main() {
    // вычисляем pi/6
    cout << cos( M_PI / 6 ) << endl; // с помощью библиотечной функции
    cout << cos_series_pi_6( EPS ) << endl; // с помощью нашей функции
 
    return 0;
}
Консоль
0.866025
0.866054
kryasan
-22 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 38
28.02.2012, 14:37  [ТС]     Рекурсивная функция вычисления суммы бесконечного ряда #3
пишет pow: неоднозначный вызов перегруженной функции
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
28.02.2012, 14:59     Рекурсивная функция вычисления суммы бесконечного ряда #4
А у меня ничего не пишет.
К тому же в cmath прототип есть функции pow(_Tp __x, _Up __y)

Не по теме:

компилятор gcc, среда eclipse.



Добавлено через 4 минуты
Попробуйте использовать так:
C++
1
pow( (double) value, power )
соответственно вместо value и power подставив переменные или значения, используемые в коде программы.
kryasan
-22 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 38
28.02.2012, 15:07  [ТС]     Рекурсивная функция вычисления суммы бесконечного ряда #5
в 20 строке придиралось к первому и второму pow, сейчас только ко второму
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
28.02.2012, 15:15     Рекурсивная функция вычисления суммы бесконечного ряда #6
Не знаю что у Вас за компилятор, для меня странно, что он выводит предупреждения на данную строку.
Пробуйте так:
C++
1
double curr = pow( -1.0, n ) * pow( ( double )( M_PI / 6 ), 2 * n )
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
28.02.2012, 15:17     Рекурсивная функция вычисления суммы бесконечного ряда #7
C++
1
double curr = pow( -1.0, (double)n ) * pow( ( M_PI / 6.0 ), 2.0 * n )
под MSVS
kryasan
-22 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 38
28.02.2012, 15:19  [ТС]     Рекурсивная функция вычисления суммы бесконечного ряда #8
все равно ругается

Добавлено через 1 минуту
Цитата Сообщение от MrCold Посмотреть сообщение
double curr = pow( -1.0, (double)n ) * pow( ( M_PI / 6.0 ), 2.0 * n )
спасибо, теперь все работает)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2012, 15:29     Рекурсивная функция вычисления суммы бесконечного ряда
Еще ссылки по теме:

Вычисление суммы бесконечного ряда C++
Составить программу для вычисления суммы бесконечного ряда с погрешностью C++
Составить программу для вычисления суммы бесконечного ряда с погрешностью C++

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

Или воспользуйтесь поиском по форуму:
Roof
28.02.2012, 15:29     Рекурсивная функция вычисления суммы бесконечного ряда
  #9

Не по теме:

Ух ты, показатель не может быть целым числом, очень интересно какой логикой руководствовались создатели?

Yandex
Объявления
28.02.2012, 15:29     Рекурсивная функция вычисления суммы бесконечного ряда
Ответ Создать тему
Опции темы

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