Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2013, 19:42   #1
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию Сумма беск. ряда

Задание:
Даны действительные числа x, ε (x≠0, 0<ε<1). Вычислить с точностью ε сумму бесконечного ряда и указать количество учтенных слагаемых (вариант задания выбирается по номеру в журнале).



Объясните, что такое ε и какой принцип работы программы. Не понимаю, как это вычислять.

Идет ввод x, где х!=0, а потом в цикле делать k++ и высчитывать формулу? Раз ряд бесконечный, то и цикл бесконечный. Тогда как выйти из цикла? Каждый раз спрашивать у пользователя "Продолжить ли"?
И еще, как считать факториал?

Прошу только код за меня не писать. Просто надо понять, как это делать .

Заранее спасибо
Praud вне форума Ответить с цитированием
Старый 14.09.2013, 19:52   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Например, Вы считаете сумму ряда 1/k, т.е. 1 + 1/2 + 1/3 + 1/4 ... В конце концов, очередное слагаемое оказывается меньше некоторого ε, т.е. оказывает крайне малое влияние на сумму ряда. Далее складывать нет смысла. k! = 1 * 2 * 3 * ... * k. Раз Вы считаете сумму ряда, то сам процесс получения текущего слагаемого можно оптимизировать (не считать на каждом шаге факториал полностью).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 16.09.2013, 19:59   #3
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

То есть k я при каждой итерации прибавляю, а что делать с x? Я так и не понял. Его вводить надо?
Praud вне форума Ответить с цитированием
Старый 16.09.2013, 20:05   #4
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Например, Вы считаете сумму ряда 1/k, т.е. 1 + 1/2 + 1/3 + 1/4 ... В конце концов, очередное слагаемое оказывается меньше некоторого ε, т.е. оказывает крайне малое влияние на сумму ряда. Далее складывать нет смысла. k! = 1 * 2 * 3 * ... * k. Раз Вы считаете сумму ряда, то сам процесс получения текущего слагаемого можно оптимизировать (не считать на каждом шаге факториал полностью).
То есть k я при каждой итерации прибавляю прибавляю ( k=k+1 )? , а что делать с x? Я так и не понял. Его вводить надо?
Praud вне форума Ответить с цитированием
Старый 16.09.2013, 22:26   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Запрашиваете x и ε. k увеличиваете.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 16.09.2013, 23:04   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Например, Вы считаете сумму ряда 1/k, т.е. 1 + 1/2 + 1/3 + 1/4 ... В конце концов, очередное слагаемое оказывается меньше некоторого ε, т.е. оказывает крайне малое влияние на сумму ряда. Далее складывать нет смысла. ...
Не все так просто. Вот как раз в этот пример (сумма Σ1/k)- гармонический ряд , он расходится. То есть его Σ = ∞
Поэтому, в этом случае любой остаток, хоть с 1/1000, хоть с 1/1000000... будет равен ∞ .
type_Oleg вне форума Ответить с цитированием
Старый 16.09.2013, 23:13   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

type_Oleg, Вы правы - плохое знание матана меня погубит
Просто пытался привести пример, когда нужно остановиться в расчетах.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 18.09.2013, 01:25   #8
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

Код:
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "fact.h"
#include <locale.h>



int main()
{
	setlocale(LC_ALL, "Russian");

	int k;
	float x, eps, res;
	float n;

	do
	{
	printf("Введите  значение x:\n");
	scanf_s("%f", &x);
	} while(x==0);

	do
	{
	printf("Введите значение эпсилон от 0 до 1:\n");
	scanf_s("%f", &eps);
	} while (eps<=0||eps>=1);

	res=0;
	k=0;

	for(k=0;;k++)
	{
		res=pow(-1.0,k)*pow(x,2*k+1)/fact(k)*(2*k+1);
	}

	printf("%f", &res);
	_getch();

	return 0;

}
Вот наработочка. Помогите с точностью эпсилон, а то все эти задачи с мат.аном для меня сущий ад.
Praud вне форума Ответить с цитированием
Старый 18.09.2013, 16:13   #9
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

Никто не может объяснить?
Praud вне форума Ответить с цитированием
Старый 18.09.2013, 17:21   #10
8Observer8
Старожил
 
Регистрация: 02.01.2011
Сообщений: 3,328
По умолчанию

Вот этот пример вроде в тему: http://pers.narod.ru/algorithms/cpp_seriescount.html

P.S. Я помню, что нужно диапазон сходимости знать. x нужно будет потом брать из этого диапазона.

Последний раз редактировалось 8Observer8; 18.09.2013 в 17:27.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сумма ряда Vika_24 Visual C++ 0 20.05.2013 18:19
Сумма ряда Veina Помощь студентам 0 06.04.2011 19:48
Сумма ряда JustImba Общие вопросы C/C++ 4 26.12.2010 14:29
сумма ряда gector_sm Помощь студентам 0 30.05.2010 22:01