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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 4.95
Nekit_by
0 / 0 / 0
Регистрация: 07.10.2008
Сообщений: 8
#1

Вычисление суммы ряда с заданной погрешностью - C++

23.10.2008, 17:11. Просмотров 5119. Ответов 13
Метки нет (Все метки)

народ помогите решить задачку:
arctanx=x-x^3/3+x^5/5-...+(-1^n)*(x^(2n+1)/(2n+1))...

Численно убедиться в справедливости равенства, для чего для
заданного значения х вычислить его левую часть и разложение,
стоящее в правой части. При каком n исследуемое выражение
отличается от arctan x менее, чем на заданную погрешность ε?
Испытать разложение на сходимость при разных значениях х.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2008, 17:11     Вычисление суммы ряда с заданной погрешностью
Посмотрите здесь:
C++ определить число членов ряда, необходимых для расчета с заданной погрешностью суммы членов ряда:
Вычисление суммы ряда с заданной точностью C++
Вычисление суммы ряда с заданной точностью C++
Вычисление суммы ряда с заданной точностью C++
C++ Вычисление суммы ряда с заданной точностью
Вычисление суммы числового ряда с заданной точностью C++
C++ Вычислить сумму ряда с заданной погрешностью
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
23.10.2008, 17:57     Вычисление суммы ряда с заданной погрешностью #2
Задача решается с помощью цикла. Задается погрешность эпсилон, после чего запускается цикл while ( abs( Si - S(i-1)) > eps ), на каждом шаге которого вычисляется следующая частичная сумма ряда.(Si, S(i-1 ) - обозначения для частичных сумм).
В общем,ответ в использовании цикла while.
Nekit_by
0 / 0 / 0
Регистрация: 07.10.2008
Сообщений: 8
24.10.2008, 01:04  [ТС]     Вычисление суммы ряда с заданной погрешностью #3
млин, напишите плз код с рекурсией, очень надо...горю...
ABTOP
36 / 36 / 2
Регистрация: 09.06.2008
Сообщений: 324
24.10.2008, 18:02     Вычисление суммы ряда с заданной погрешностью #4
Цитата Сообщение от Nekit_by Посмотреть сообщение
млин, напишите плз код с рекурсией, очень надо...горю...
любой пример с рекурсией?
Жестянка
сцуко киборг
102 / 29 / 2
Регистрация: 11.09.2008
Сообщений: 193
24.10.2008, 20:22     Вычисление суммы ряда с заданной погрешностью #5
на сколько я знаю в С++ нет возведения в степень... Вы функции ещё не проходили?

Добавлено через 18 минут 48 секунд
вот рекурсия:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
...
double Eps;
cout<<"Input Eps:";
cin>>Eps;
double ArcTan=0, S=1; int n=0;
while(abs(S-S_pred)>Eps)
      {
      n++;
      S_pred=S;
      S=(-1^n)*(x^(2n+1)/(2n+1));
      ArcTan+=S
      }
...
Добавлено через 1 минуту 40 секунд
... и abs, кстати тоже нет, по крайней мере без подключения дополнительных библиотек.

Добавлено через 1 минуту 43 секунды
поэтому "^" и "abs" придется написать ручками... или чевонить подключить...
ABTOP
36 / 36 / 2
Регистрация: 09.06.2008
Сообщений: 324
24.10.2008, 21:29     Вычисление суммы ряда с заданной погрешностью #6
Цитата Сообщение от Жестянка Посмотреть сообщение
на сколько я знаю в С++ нет возведения в степень... Вы функции ещё не проходили?
в math.h есть
функция pow(число, степень);
и тоже самое для abs(число);
Жестянка
сцуко киборг
102 / 29 / 2
Регистрация: 11.09.2008
Сообщений: 193
24.10.2008, 22:03     Вычисление суммы ряда с заданной погрешностью #7
в math.h есть
о! точно! А я никак вспомнить не могла. Помню, что чево-то очевидное, а что именно - не помню.
Спасибо.
Ensase
Флудер
191 / 29 / 5
Регистрация: 23.03.2007
Сообщений: 335
26.10.2008, 23:04     Вычисление суммы ряда с заданной погрешностью #8
2Жестянка, никакая там у вас не рекурсия - это итерация
Жестянка
сцуко киборг
102 / 29 / 2
Регистрация: 11.09.2008
Сообщений: 193
26.10.2008, 23:39     Вычисление суммы ряда с заданной погрешностью #9
Ensase,
C++
1
2
3
4
5
6
7
8
9
10
11
...
double Eps;
cout<<"Input Eps:";
cin>>Eps;
double S=1; int n=0;
while(abs(atan(x)-S)>Eps)
      {
      n++;
      S+=pow(-1,n)*(pow(x,(2n+1))/(2n+1));
      }
...
а так рекурсия?
qwone
8 / 8 / 1
Регистрация: 18.08.2008
Сообщений: 129
26.10.2008, 23:54     Вычисление суммы ряда с заданной погрешностью #10
это тоже не рекурсия
http://ru.wikipedia.org/wiki/%D0%A0%...81%D0%B8%D1%8F
и честно я не знаю как ее применить здесь
Жестянка
сцуко киборг
102 / 29 / 2
Регистрация: 11.09.2008
Сообщений: 193
27.10.2008, 00:35     Вычисление суммы ряда с заданной погрешностью #11
А никакую другую "рекурсию" для данной задачки не применишь.
Nekit_by
0 / 0 / 0
Регистрация: 07.10.2008
Сообщений: 8
03.11.2008, 23:48  [ТС]     Вычисление суммы ряда с заданной погрешностью #12
Народ, напишите плз код полностью, оч надо...
Sergey J.A.
Сообщений: n/a
13.11.2008, 12:29     Вычисление суммы ряда с заданной погрешностью #13
Если точно рекурсия, то будет что-то вроде этого.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double arctanx_(double x, double eps, int n, double f_prev, double chislit)
{
    double cur_item = chislit / (2*n + 1);
    double f = f_prev + cur_item;
 
    if(n > 0 && fabs(f - f_prev) < eps)
        return f;
 
    return arctanx_(x, eps, n + 1, f, chislit * (-1) * x * x);
}
 
double arctanx(double x, double eps)
{
    return arctanx_(x, eps, 0, 0, x);
}
Небольшие пояснения...
2 ф-ии. arctanx - основная, её нужно вызывать.
arctanx_ вспомогательная.

Возводить в степень не надо. Нужно на каждой итерации домножать числитель на -x^2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2008, 23:48     Вычисление суммы ряда с заданной погрешностью
Еще ссылки по теме:
C++ Вычислить сумму ряда с заданной погрешностью
C++ Вычислить сумму ряда с заданной погрешностью
Составить программу для вычисления суммы бесконечного ряда с погрешностью C++
Составить программу для вычисления суммы бесконечного ряда с погрешностью C++
C++ Вычисление суммы ряда

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

Или воспользуйтесь поиском по форуму:
Nekit_by
0 / 0 / 0
Регистрация: 07.10.2008
Сообщений: 8
25.11.2008, 23:48  [ТС]     Вычисление суммы ряда с заданной погрешностью #14
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
float ArcTang(float x1, int n1);
float ArcTangRek(float xn, int n1, int n2);
int GetN(float x1, float eps);
 
int main(void)
{
const int N = 100;
float x, y, eps;
int n, menu;
while (1)
{
clrscr();
puts("Choose the action: \n1. Input x and calculate y=arctg(x) on a recurrent parity\n (Iteratonal functon)\n2. Input x and calculate y=arctg(x) on a recurrent parity\n (Recurrent functon)\n3. Input x, e and find out, how many iterations are necessary to execute,\n that the parity was carried out: IY(n)-Y(n+1)I<e\n4. Exit programm");
scanf("%d",&menu);
switch (menu)
{
case 1:
{
puts("Enter x.");
scanf("%f", &x);
y = ArcTang(x, N);
printf("Result:\ny=%f", y);
getch();
break;
}
case 2:
{
puts("Enter x.");
scanf("%f %f", &x);
y = ArcTangRek(x, 0, N);
printf("Result:\ny=%f", y);
getch();
break;
}
case 3:
{
puts("Enter x, e through the gap.");
scanf("%f %f", &x, &eps);
n = GetN(x, eps);
printf("Result:\nn=%f", n);
getch();
break;
}
case 4:
{
puts("Thanks for using my programm!");
getch();
return 1;
}
default:
{
puts("Incorrect input!");
getch();
break;
}
}
}
}
 
float ArcTang(float x1, int n1)
{
int i = 0;
float s = 0, xn = x1;
while (i < n1)
{
s += xn;
xn *= xn*xn*(-1)/(2*i+3);
i++;
}
}
 
float ArcTangRek(float xn, int n1, int n2)
{
if (n1 == n2)
{
return xn;
}
else
{
return xn+ArcTangRek(xn, n1+1, n2);
xn *= xn*xn*(-1)/(2*n1+3);
}
}
 
 
int GetN(float x1, float eps1)
{
float y1, y2;
int n1 = 0;
y1 = ArcTang(x1, 0);
y2 = ArcTang(x1, 1);
while (fabs(y1-y2)>eps1)
{
y1 = y2;
n1++;
y2 = ArcTang(x1, n1+1);
}
return n1;
}
Народ, помогите доделать лабу, не работают первый и третий пункты...
Yandex
Объявления
25.11.2008, 23:48     Вычисление суммы ряда с заданной погрешностью
Ответ Создать тему
Опции темы

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