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

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

Войти
Регистрация
Восстановить пароль
 
_Evg1
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 5
#1

Построить рекурсию данного выражения 3x+xsinx и сравнить результаты - C++

11.03.2014, 14:35. Просмотров 260. Ответов 6
Метки нет (Все метки)

Доброго времени суток! Условие нужно построить рекурсию данного выражения 3x+xsinx и сравнить р-таты
с помощью библиотечных функций и ф-ии написаны в ручную разложенную в ряд. Вот что вышло, не могу понять в чем ошибка но ф-я не считает( За ранее спасибо!
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.h>
#include <conio.h>
#include <math.h>
#include <vcl.h>
#pragma hdrstop
double s(double y, int n, int k=1)
{
        int x;
        y=x*x;
        if(k==n)
        return(1+(pow((-1),k))*s(y,n,k+1));
}
int nn(double y,double e)
{
        int t;
        int x;
        int count=1;
        y=x*x;
        do
        {
 
                t = pow(1,count)*y/(2+count*(2*count+1));
                count++;
        }
        while (t>e);
        return count;
 
}
#pragma argsused
void main()
{
        double r;
        double x,y;
        double e;
        e=0,00001;
        double n;
        cout<<"Enter x: ";
        cin>>x;
        y=x*x;
        n=nn(y,e);
        cout<<" n= "<<n<<endl;
        cout<<3*x+x*sin(x)<<n<<endl;
        cout<<3*x+x*s(y,n)<<n<<endl;
        getch();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2014, 14:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Построить рекурсию данного выражения 3x+xsinx и сравнить результаты (C++):

построить рекурсию для вычисления элементов последовательности - C++
Помогите построить рекурсию для вычисления элементов последовательности на с++ : a(1) = 1 a(n) = n-a(a(n-1)) , n&gt;1 Заранее очень...

Регулярные выражения: почему результаты поиска не заносятся в массив? - C++
Всем привет. Подскажите, пожалуйста, что здесь не так? При запуске, на консоли только переходы на новую строку отображаются, а результаты...

Для данного N вычислить значение выражения, используя рекурсию - Pascal
Для данного N вычислить значение выражения, используя рекурсию:

Для данного N вычислить значение выражения, используя рекурсию - Turbo Pascal
Для данного N вычислить значение выражения, используя рекурсию s= sqrt(7+sqrt(14+sqrt(21+...+sqrt(7*N))))

Для данного N вычислить значение выражения, используя рекурсию - Turbo Pascal
Для данного N вычислить значение выражения, используя рекурсию: P =

Вывести рекурсию числа и сравнить первую и последнюю цифру - C (СИ)
рекурсию числа сделал, но когда пытаюсь сравнить нужные цифры введенного числа, при вводе двузначного (напр. 44) выводит zbc, но если...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
11.03.2014, 14:42 #2
Цитата Сообщение от _Evg1 Посмотреть сообщение
e=0,00001;
десятичный разделитель точка, а не запятая.
0
_Evg1
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 5
11.03.2014, 14:50  [ТС] #3
Нет, ни чего не изменилось по прежнему выводит "-nan2" не знаю что ето
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
11.03.2014, 15:01 #4
Смысл возводить 1 в степень?
C++
1
                t = pow(1,count)*y/(2+count*(2*count+1));
Да и вообще это выражение написанно не верно. Разложите синус в ряд заново так как у вас закралась ошибка.
0
_Evg1
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 5
11.03.2014, 21:33  [ТС] #5
Разложенная функция будет выглядеть вот так f(x) = 3x+x(x(1+((-1)^n*x^2)/(2n(2n+1))) ну и дальше пытаюсь подсчитать (1+((-1)^n*x^2)/(2n(2n+1)) и как то дальше етим пользоваться, не знаю ну вроде верно.

Добавлено через 6 часов 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
37
38
39
40
41
42
43
44
45
46
47
48
//---------------------------------------------------------------------------
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <vcl.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
double s(double y, int n, int k=1)
{
 
        if(k==n)
        return(1.0+(pow((-1.0),k))*(y/(2*k*(2*k+1))));
        else return(1.0+pow((-1.0),k)*(y/(2*k*(2*k+1)))*s(y,n,k+1));
}
int nn(double y,double e)
{
        int t=1;
        int count=1;
        do
        {
 
                t = t*(y/count);
                count++;
        }
        while (fabs(t)>e);
        return count;
 
}
#pragma argsused
void main()
{
        double r;
        int x,y;
        double e;
        e=0.00001;
        int n;
        cout<<"Enter x: ";
        cin>>x;
        y=x*x;
       // n=nn(x,e);
       n=22;
        cout<<" n= "<<n<<endl;
        cout<<3*x+x*sin(x)<<endl;
        cout<<3*x+x*s(y,n)<<endl;
        getch();
}
//---------------------------------------------------------------------------
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
12.03.2014, 13:23 #6
Точность нужно оценивать по формуле Тейлора с остаточным членом в форме Лагранжа. Другими словами нужно оценить значение первого из отброшенных членов.
0
_Evg1
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 5
13.03.2014, 00:35  [ТС] #7
Проблема в том что подсчет итераций неверен скорее всего но я не могу написать функцию для подсчета n как не пытался, вроде как все перепробовал, а толку 0. Помогите если не составит труда
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2014, 00:35
Привет! Вот еще темы с ответами:

[T-SQL] Сравнить результаты запроса - SQL Server
Всем привет! При написании T-SQL запросов столкнулся вот с такой проблемой: Нужно сравнить результаты запроса, после выполнения...

Найти корни полинома численными и графическим способом, сравнить результаты - MathCAD
Всем здрасте :) Начал изучать маткад, и столкнулся со следующей проблемой. Следуя по действиям инет-учебника(Символьные...

Составить 3 варианта программ циклической структуры типа for и while, сравнить полученные результаты - C (СИ)
помогите разобраться с задачей :cry: Составить 3 варианта программ циклической структуры типа for и while, сравнить полученные...

Сравнить результаты от программы и готовой функции на одном графике!как сделать? - Matlab
Решение дифференцального уравнения 1-ого порядка по методу Эйлера. function sad=eiler % %diff(y)=x.^3-2.*y./x -заданная функция ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.03.2014, 00:35
Ответ Создать тему
Опции темы

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