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

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

Войти
Регистрация
Восстановить пароль
 
kryasan
-22 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 38
#1

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

28.02.2012, 12:13. Просмотров 1119. Ответов 8
Метки нет (Все метки)

Всем привет) Объясните кто нибудь как это можно сделать?)
0
Миниатюры
Рекурсивная функция вычисления суммы бесконечного ряда  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2012, 12:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсивная функция вычисления суммы бесконечного ряда (C++):

Рекурсивная функция суммы ряда - C++
Написать рекурсивную программу, которая считала бы сумму элементов следующего ряда: 2^0 + 2^1 + ... + 2^(n-1) + 2^n. Число n задается...

Рекурсивная функция для нахождения суммы ряда - C++
Создайте рекурсивную функцию для нахождения суммы s=Σ(x^n/n) выдает ошибку, объясните, что не так( #include "stdafx.h" ...

Программа вычисления суммы членов бесконечного числового ряда - C++
Здравствуйте. Нужна помощь в такой задаче. Не могу разобраться в ней. Составить программу вычисления суммы членов бесконечного числового...

Составить программу для вычисления суммы бесконечного ряда с погрешностью - C++
Составить программу для вычисления суммы бесконечного ряда \sum_{k=1}^{\infty}u_k= \sum_{k=1}^{\infty}\frac{cos\,\frac{2\pi k}{3}}{k^2+1} с...

Составить программу для вычисления суммы бесконечного ряда с погрешностью - C++
Составить программу для вычисления суммы бесконечного ряда с погрешностью ε = 10-3 Задания надо переписывать. Редактор формул внизу...

Рекурсивная функция для вычисления суммы элементов арифметической прогрессии - C++
#include <stdio.h> #include <conio.h> int pr(int n, int a1, int d,int sum) { if(n==1) return a1; sum=a1+(n-1)*d+pr(n-1,a1,d); ...

8
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
1
kryasan
-22 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 38
28.02.2012, 14:37  [ТС] #3
пишет pow: неоднозначный вызов перегруженной функции
0
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 подставив переменные или значения, используемые в коде программы.
1
kryasan
-22 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 38
28.02.2012, 15:07  [ТС] #5
в 20 строке придиралось к первому и второму pow, сейчас только ко второму
0
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 )
1
MrCold
855 / 753 / 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
1
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 )
спасибо, теперь все работает)
0
Roof
28.02.2012, 15:29     Рекурсивная функция вычисления суммы бесконечного ряда
  #9

Не по теме:

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2012, 15:29
Привет! Вот еще темы с ответами:

Написать программу и рекурсивную функцию для вычисления значения суммы бесконечного ряда с заданной точностью - C++
Написать программу и рекурсивную функцию для вычисления значения суммы бесконечного ряда с заданной точностью. на печать вывести значение...

Функция вычисления суммы ряда ln(x) - C++
Здравствуйте поставили задачу написать программу на вычисление суммы ряда вида ...

Функция для вычисления суммы члена ряда. Не могу найти ошибку - C++
Условие: Разработать функцию для вычисления члена ряда: (-1)^n/(n+1)! Используя разработанную функцию вычислить сумму ряда с позиции N...

Вычисления бесконечного ряда - C++
Вот само задание http://cs310727.vk.me/v310727546/ae4f/W-C2A0gLQls.jpg Извините за ссылку, не понимаю как вставить картинку


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

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

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