Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2015, 21:07   #1
dada95
Новичок
Джуниор
 
Регистрация: 02.04.2015
Сообщений: 2
По умолчанию Подсчёт arctg(x) рядом Тейлора через рекурсию

Господа, прошу помощи, вот уже 2 неделю не могу доделать программу.
Собственно имеется
arctg(x) = E x-(x^3/3)+(x^5/5)+...+(-1^n)*(x^(2n+1))/(2n+1).
Нужно: написать программу в которой:
1) Каждый след.член будет браться из предыдущего;
2) Без использования "pow";
3) Двумя способами: Через цикл и рекурсией
Проблема с рекурсией, через цикл сделал

вот код:

Код:
#include <iostream>
#include <iomanip>
#include <math.h>
#include <stdio.h>

using namespace std;

double eps=0.00001, sum=0, x=0, s=0,a=0, s1=0;

double arctg(double x)
{
    
    for(int z=1;fabs(x)>=eps;z++)
 
    return (x+arctg((x*a*(-a)*(2*z-1))/(2*z+1)));

    return 0;

}


int main()
{



    /*cout<<"Vvedite eps\n";
    cin>>eps;*/
    cout<<"---------------------------------------------------\n";
    cout<<"|  X  |      F      |    Math F    |  Recursiya F |\n";
    cout<<"---------------------------------------------------\n";

    for (a = -0.2; a < 0.9; a += 0.1)
    {
        int n=0;
        s1=a;
        sum=s1;

        while(fabs(s1)>= eps)
            {
                n++;
                s1*=a*(-a)*(2*n-1)/(2*n+1);
                sum+=s1;
            }

    cout << "|" << setw(5)  << setprecision(3) << a << "|";
    cout << setw(13) << setprecision(5) << sum << "|";
    cout << setw(14) << setprecision(5) << atan(a) << "|";
    cout << setw(14) << setprecision(5) << arctg(a) << "|" << endl;

    }

    cout<<"---------------------------------------------------\n";
}

Последний раз редактировалось Stilet; 03.04.2015 в 06:46.
dada95 вне форума Ответить с цитированием
Старый 02.04.2015, 22:48   #2
dada95
Новичок
Джуниор
 
Регистрация: 02.04.2015
Сообщений: 2
По умолчанию

Проблема по прежнему актуальна!!
dada95 вне форума Ответить с цитированием
Старый 03.04.2015, 06:51   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
arctg(x) = E x-(x^3/3)+(x^5/5)+...+(-1^n)*(x^(2n+1))/(2n+1).
Проблема с рекурсией
Код:
double foo(double x,int n,int sign){
 if(n==1) return x; else  return sign*(exp(x*log(n))/n)+foo(x,n-2,-sign);
}
Вызов: foo(x,n,1);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить и вывести на экран в виде таблицы значения функции, заданной рядом Тейлора NickNickSin Помощь студентам 1 30.11.2014 07:52
Вычислить и вывести на экран в виде таблицы значения функции, заданной рядом Тейлора dima2308 Помощь студентам 1 13.10.2014 22:23
Вычисление арккосинуса рядом тейлора isla Помощь студентам 11 27.12.2010 06:31
Разложить ф-цию рядом Тейлора (С++) Дезик Помощь студентам 7 15.11.2010 09:19
поиск через рекурсию AIst Общие вопросы Delphi 2 29.08.2009 16:12