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

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

Войти
Регистрация
Восстановить пароль
 
MayaNash
1285 / 453 / 47
Регистрация: 24.08.2011
Сообщений: 2,214
#1

Вычисление ряда - C++

19.05.2014, 12:37. Просмотров 203. Ответов 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
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
 
float F(float tekSlagaemoe, int chisliteli, int znamenateli, float x, float E)
{
    tekSlagaemoe *= -chisliteli*x;
    tekSlagaemoe /= znamenateli;
 
    if (abs(tekSlagaemoe) < E)
        return tekSlagaemoe;
    else
        return tekSlagaemoe + F(tekSlagaemoe, chisliteli + 2, znamenateli + 2, x, E);
}
 
float Tsikl(float x, float E)
{
    float res = x*x, tekSlag = x*x;
    int chisl = 1, znam = 6;
 
    while (abs(tekSlag) >= E)
    {
        tekSlag *= -chisl*x;
        tekSlag /= znam;
        res += tekSlag;
        chisl += 2, znam += 2;
    }
    return res;
}
 
void main()
{
    float E, x;
    setlocale(LC_ALL,"rus");
 
    cout << "Введите точность: ";
    cin >> E;
    cout << "Введите х: ";
    cin >> x;
 
    cout << "С помощью разложения: " << x*x + F(x*x,1,6,x,E) << endl
        << "С помощью контрольной формулы: " << 8/3*(pow(1+x,1.5f) - 1) - 4*x << endl
        << Tsikl(x,E) << endl;
    system("pause");
}
Вопрос, в чем ошибка?
0
Миниатюры
Вычисление ряда  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2014, 12:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление ряда (C++):

Вычисление ряда - C++
Всем доброго время суток. Я новичок в C++ нужно написать программу для вычисления ряда: 1 + 2x + 3x2 + 4x3 +… = ∑(n + 1)xn = 1/(1-x)2 ...

Вычисление ряда - C++
Всем доброго время суток. Нужно написать программу для вычисления ряда: 1 + 2*x + 3*{x}^{2} + 4*{x}^{3} + ... = \sum_{n=0}^{infinity}(n +...

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

Вычисление суммы ряда - C++
Вычислить \sum_{i=1}^{\propto }i^2 пока S&lt;50 с помощью цикла while

Вычисление суммы ряда - C++
Помогите составить функцию для данного выражения. \sum_{n=1}^{20} \frac{ln n}{\sqrt{{n}^{7}}}

Вычисление суммы ряда - C++
Есть задание во вложении. Нужно найти значение суммы. Я прописываю библиотеки. Мне нужен весь код. Причем делал через if&amp;else....

6
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
19.05.2014, 12:56 #2
Цитата Сообщение от Керра Посмотреть сообщение
Вопрос, в чем ошибка?
1. в функции F() не корректная проверка на точность, есть мнение что точность считается либо количество иттераций, либо суммой двух слогаемых, но никак не одним
2. в функции Tsikl() я так понимаю должно быть просто вычисление по формуле, без каких-либо загонов с циклами и непонятными числителями и знаменателями, которые там используются на данный момент
0
zss
Модератор
Эксперт С++
6580 / 6142 / 2024
Регистрация: 18.12.2011
Сообщений: 16,010
Завершенные тесты: 1
19.05.2014, 13:48 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
float Tsikl(float x, float E)
{
    float res = x*x, tekSlag = x*x;
    int i=3;
    while (fabs(tekSlag) >= E)
    {
        tekSlag *= -x/(2.*i)*(2.*i-3.);
        res += tekSlag;
        i++;
    }
    return res;
}
0
MayaNash
1285 / 453 / 47
Регистрация: 24.08.2011
Сообщений: 2,214
19.05.2014, 14:56  [ТС] #4
Цитата Сообщение от EnzoMatrix Посмотреть сообщение
в функции Tsikl() я так понимаю должно быть просто вычисление по формуле, без каких-либо загонов с циклами и непонятными числителями и знаменателями, которые там используются на данный момент
почему непонятными? зачем вычислять эти дроби каждый раз по новой, если можно домножать на одно число и делить на одно число?
попробовала изменить точность как вы сказали, но это не помогло - точность стала больше, но все равно результат отличается от того что по формуле.
я спрашивала в разделе математики - там ответили, что ряд действительно является разложением данной формулы.

zss, не сработало
0
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
19.05.2014, 15:39 #5
Цитата Сообщение от Керра Посмотреть сообщение
почему непонятными? зачем вычислять эти дроби каждый раз по новой, если можно домножать на одно число и делить на одно число?
потому что судя по output'у функция Tsikl() используется для вычисления по формуле, а не по сумме ряда, что подразумевает прямое вычисление корня и возведения в степень без сложений и домножений
0
zss
Модератор
Эксперт С++
6580 / 6142 / 2024
Регистрация: 18.12.2011
Сообщений: 16,010
Завершенные тесты: 1
19.05.2014, 15:43 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Керра Посмотреть сообщение
не сработало
А как Вы думаете, чему равно 8/3?
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
#include<iostream>
#include <cmath>
using namespace std;
double Tsikl(double x, double E)
{
    double res = x*x, tekSlag = x*x;
    int i=2;
    while (fabs(tekSlag) >= E)
    {
        tekSlag *= -x/(2.*i+2.)*(2.*i-3.);
        res += tekSlag;
        i++;
    }
    return res;
}
int main()
{
    double E, x;
    setlocale(LC_ALL,"rus");
 
    cout << "Введите точность: ";
    cin >> E;
    cout << "Введите х: ";
    cin >> x;
 
    cout << 8./3.*(sqrt(pow(1.+x ,3.))-1.) - 4.*x << endl << Tsikl(x,E) << endl;
    system("pause");
    return 0;
}
1
MayaNash
1285 / 453 / 47
Регистрация: 24.08.2011
Сообщений: 2,214
19.05.2014, 16:22  [ТС] #7
zss, блиииииииииииин постоянно забываю про эти свойства деления... спасибо большое))

Добавлено через 59 секунд
EnzoMatrix, функция Цикл вычисляет не по формуле, а по ряду, но не рекурсивно. я пыталась ею проверить решение.
0
19.05.2014, 16:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2014, 16:22
Привет! Вот еще темы с ответами:

Вычисление суммы ряда - C++
1^2+3^2+5^2+...+(2n-1)^2

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

Вычисление суммы ряда - C++
Для заданных значений ε&gt;0 и x вычислить сумму ряда с точностью ε. Суммирование ряда завершить, если модуль очередного члена ряда не...

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


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

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

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