IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> вычисление суммы членов ряда..., с++
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Женский

Репутация: -  0  +


1) 1-1/2+1/4-1/8+...+(-1/2)^(n-1)+...

2) 1-3*x+5*x^2-7*x^3+...+((-1)^(n-1))*(2*n-1)*x^(n-1)...


помогите, пожалуйста unsure.gif если можно с комментариями
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Все просто... Первое задание может решаться вот так:
#include <iostream>
#include <cmath>

int main()
{
const double eps = 0.0001; // Точность вычисления
double s = 0.0, X = 1.0; // s - сумма, X - член ряда (первый - равен 1)
do
{
s += X; // увеличиваем сумму
X /= -2; // получаем очередной член ряда, путем деления предыдущего на -2
}
while(fabs(X) > eps); // Продолжать до тех пор, пока не достигнута точность
std::cout << s << std::endl; // печатаем результат
return 0;
}


Второе - по аналогии. Главное - понять сам принцип: на очередной итерации получаем из i-го члена ряда (i+1)-ый, и увеличиваем сумму. А для того, чтобы из предыдущего получить следующий - надо знать, на что нужно домножить предыдущий... Посмотри внимательно на задание, и попробуй выяснить, что надо сделать с Xן, чтобы получить из него Xi+1. Кстати, я уже несколько раз объяснял на этом форуме, как именно это делается, воспользуйся поиском...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Женский

Репутация: -  0  +


хоть убейте не представляю как это делать 2) 1-3*x+5*x^2-7*x^3+...+((-1)^(n-1))*(2*n-1)*x^(n-1)... unsure.gif sad.gif

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Тут задача решается в 2 этапа. Для начала тебе надо определить, при каких значениях X ряд сходится (чтобы найти его сумму, она должна быть, а для этого знакопеременный ряд должен быть сходящимся). Когда найдешь - добавь такой же цикл, чтобы ввод продолжался до тех пор, пока не будет введено подходящее значение X.

А потом уже - собственно алгоритм суммирования:
    int n = 0;
double s = 0.0, power_of_x = 1.0, curr;
do
{
curr = (2 * n + 1) * power_of_x;

s += (n % 2 ? -1 : 1) * curr;
// если остаток от деления n на 2 = 1 (т.е., n нечетное),
// то n-ый член ряда - со знаком "минус". Иначе - со знаком "плюс"...

power_of_x *= x; n += 1;
}
while(fabs(curr) > eps); // Продолжать до тех пор, пока не достигнута точность
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 16.04.2024 13:59
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name