Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 44
1

Вычисление суммы ряда.

16.09.2009, 21:45. Показов 1934. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, пожалйста!!!
Вычислить сумму бесконечного ряда Y=(fabs)ak, где а=-0,1(аk-1+аk+1) при k=2,3,4... Вычисления окончить при |ak|<Eps.
a1=2, a2=5, Eps=0,001
Заранее ОГРОМНЕЙШЕЕ спасибо!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2009, 21:45
Ответы с готовыми решениями:

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

Вычисление суммы ряда
Вычисление суммы ряда Потрудитесь один раз нормально оформить свою тему, глядишь, и отвечать...

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

Вычисление суммы ряда
Народ, помогите пожалуйста. Всё это сделать нужно на обычном си Три программы: 1) Вычисление...

17
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
16.09.2009, 22:55 2
Запишите более понятно формулу.
Что за
Цитата Сообщение от Иринка Посмотреть сообщение
а=-0,1(аk-1+аk+1)
В данном случае в скобках единицы сокращаются и ак удваивается.

В общем случае делается так:
1) Вводится чесло Е - это точность, которую не должно превысить ак.
2) В цикле
C++
1
while (a*k < E) { ... }
вычесляется сумма, каждый раз прибавляя получкнные вычесления s += d
3) В конце цикла к k прибавляется единица.
0
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
17.09.2009, 13:17 3
Видимо так:
Y=сумма fabs(a[k]), до тех пока fabs(a[k])>=epsilon
a[1]=2
a[2]=5
epsilon=0.001
a[k]=-0.1*(a[k-1]+a[k+1])
0
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
17.09.2009, 19:15 4
Вот это более похоже на правду, но всё же по условию k=2,3,4..., а здесь
Цитата Сообщение от odip Посмотреть сообщение
Y=сумма fabs(a[k]), до тех пока fabs(a[k])>=epsilon
a[1]=2
a[2]=5
epsilon=0.001
a[k]=-0.1*(a[k-1]+a[k+1])
k участвует только как индекс и чему равно, например, a[15] неизвестно.
0
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
17.09.2009, 19:26 5
Если немного подумать головой, то можно понять, что a[k+1] вычисляется через a[k] & a[k-1]

Добавлено через 1 минуту
Хотя возможно я ошибся и неправильно интерпретировал запись: а=-0,1(аk-1+аk+1)
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
17.09.2009, 20:37 6
Иринка, может имеет смысл выложить скан или хотя бы фотографию оригинала задания? Просто в записи мало что понятно! Иначе вряд ли решение будет
0
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 44
17.09.2009, 20:47  [ТС] 7
Вот сама задача:
Миниатюры
Вычисление суммы ряда.  
0
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
17.09.2009, 21:07 8
Цитата Сообщение от odip Посмотреть сообщение
Если немного подумать головой, то можно понять, что a[k+1] вычисляется через a[k] & a[k-1]

Добавлено через 1 минуту
Хотя возможно я ошибся и неправильно интерпретировал запись: а=-0,1(аk-1+аk+1)
Да, я написал неподумав.
В любом случае задание выглядит странно.

Добавлено через 54 секунды
Цитата Сообщение от Иринка Посмотреть сообщение
Вот сама задача:
Другое дело.

Добавлено через 12 минут
Вот как -то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <math.h>
using namespace std;
int main ()
{
    double s = 0.0;
    double e = 0.0001;
    double ak, ak1, ak2;
    ak1 = 2.0;
    ak2 = 5.0;
    while (fabs(ak) < e)
    {
        ak = -0.1*(ak1 + ak2);
        s += ak;
        ak2 = ak1;
        ak1 = ak;
    }
    cout << s << endl;
    return 0;
}
0
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
17.09.2009, 21:33 9
2qwert: а ты уверен что там в задании пропущена буква k ?

Добавлено через 2 минуты
Код кстати неверный.
0
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
17.09.2009, 22:20 10
Цитата Сообщение от odip Посмотреть сообщение
а ты уверен что там в задании пропущена буква k ?
В смысле пропущена? k играет роль индекса. И всё. На соответствие ak1 с a[k-1] или a[k-2] внимания можно не обращать, т.к. в скобках сумма, а от перемены мест слагаемых сумма не меняется (должно быть известно из школы).
Если код неверный, по понятным только тебе причинам, напиши свой!
0
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
17.09.2009, 22:28 11
В картинке в посте #7 написано: "a=", а не "a[k]=".
То есть условие кривое даже на картинке (то есть в оригинале).

В строке 11 проверяется ak, которое не инициализировано выше.
Условие очевидно должно быть такое: while ( fabs(ak)>=e )
0
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
17.09.2009, 22:38 12
Всё-таки так (в предыдущем случае после компиляции убрал одну строчку)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <math.h>
using namespace std;
int main ()
{
        double s = 0.0;
        double e = 0.0001;
        double ak, ak1, ak2;
        ak = 0.0;
        ak1 = 2.0;
        ak2 = 5.0;
        while (fabs(ak) < e)
        {
                ak = -0.1*(ak1 + ak2);
                s += ak;
                ak1 = ak2;
                ak2 = ak;
        }
        cout << s << endl;
        return 0;
}
Добавлено через 5 минут
Не заметил сообщение odip.
Если придираться, то на картинке несоответствий больше, например:
1) a1 = 2 и a1 = 5 чего быть не может.
2) В первоначальной сумме k = 0 до бесконечности, потом же написано k = 2,3,4...
0
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
17.09.2009, 22:39 13
По условию нужно закончить, когда fabs(ak)<e.
А ты наоборот - продолжаешь при этом условии считать !
И у тебя цикл не выполняется ни разу !
(fabs(0)<0.0001) == true !!!

Добавлено через 1 минуту
a1 = 2 и a1 = 5 чего быть не может.
Точно - не разглядел.
Какой-то кривой учебник
0
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
17.09.2009, 22:48 14
Цитата Сообщение от odip Посмотреть сообщение
По условию нужно закончить, когда fabs(ak)<e.
А ты наоборот - продолжаешь при этом условии считать !
И у тебя цикл не выполняется ни разу !
При том условии, что на картинки, т.е. while (ak < e), условие выполняется ровно 1 раз.
Пусь всё же автор уточнит условие, а в соответствии с ним код переделать несложно.
0
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
17.09.2009, 22:55 15
В этом месте на картинке как раз все понятно.
Считать сумму до тех пор, пока не будет |ak|<e.
И потом - это совершенно стандартное условие
1
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
17.09.2009, 23:11 16
Может быть и так. В таком случае:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <math.h>
using namespace std;
int main ()
{
        double s = 0.0;
        double e = 0.0001;
        double ak, ak1, ak2;
        ak = 0.0001;
        ak1 = 2.0;
        ak2 = 5.0;
        while (fabs(ak) >= e)
        {
                ak = -0.1*(ak1 + ak2);
                s += ak;
                ak1 = ak2;
                ak2 = ak;
        }
        cout << s << endl;
        return 0;
}
2
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 44
22.09.2009, 15:50  [ТС] 17
Спасибо большое!!! В первом коде вообще почему то только ноль выводился, а во втором уже число . Да... учебник у нас действительно кривой
0
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
22.09.2009, 18:23 18
Цитата Сообщение от Иринка Посмотреть сообщение
Да... учебник у нас действительно кривой
Не те учебники читаете!
0
22.09.2009, 18:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.09.2009, 18:23
Помогаю со студенческими работами здесь

Вычисление суммы ряда
Привет всем) Задачу и формулы надо переписывать! Редактор формул внизу страницы. Дана такая...

Вычисление суммы ряда
Помогите пожалуйста написать программу, у меня не получается чего-то :( Напишите программу для...

Вычисление суммы ряда (2*i -1)^3
Написать программу для вычисления суммы слагаемых Si = 1^3 + 3^3 + 5^3 + ... + (2*i -1)^3 ...

Вычисление суммы ряда
Вечер добрый! помогите разобраться факториал не могу правильно сделать #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru