Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сумма ряда.

52K
22 ноября 2009 года
yTko
8 / / 22.11.2009
Всем доброй ночи:)
Есть такая задачка - надо проссумировать ряд с точностью E=0.001
A[SIZE="1"]n[/SIZE]=2^n / (n-1)! и вывести на экран значение суммы.
Проблем с описанием 2 в степени n и факториала n-1 не существует.
Проблема если я правильно все сделал - проблема в типе числа. real и extended писал про переполнение. int64 - целое, а я более чем уверен, что конечный ответ - число не целое.
Чего хочется получить на форуме? Ответ и желательно объяснение :rolleyes:
274
22 ноября 2009 года
Lone Wolf
1.3K / / 26.11.2006
Подскажу еще один метод, для решения подобных задач.
Берем k-ый и k+1 ый-елементы и считаем во сколько раз они отличаются. И потом в цикле каждый следуйший елемент при суммировании увеличивать на это значение. Тогда не прийдется считать факториалы и степени
247
22 ноября 2009 года
wanja
1.2K / / 03.02.2003
 
Код:
memb:=2;
sum:=0;
n:=0;
repeat
sum:=sum+memb;
imc(n);
memb:=memb*2/n;
until memb<=0.001;

Примерно так...
274
22 ноября 2009 года
Lone Wolf
1.3K / / 26.11.2006
только начинаем не с 0, а с 1
52K
22 ноября 2009 года
yTko
8 / / 22.11.2009
Спасибо всем ответившим.
Lone Wolf, ну была такая мысль, упростить и просуммировать до точности, но что-то подсказывало, что все равно будет фигня. Но, так как это рекуррентные задачи и препод по алгебре почти также раскинул все - попробую сделать так.
wanja, что-то не нравится мне этот код. Но все равно спасибо :)
52K
22 ноября 2009 года
yTko
8 / / 22.11.2009
begin // A1
a:=2;
b:=1;
n:=1;
x:=a/b;
repeat // суммирование A n-ых
n:=n+1; - я забыл про увеличение n :)
a:=a*2;
b:=fact(n-1);
x:=x+a/b;
until 1/n<=0.001;
label1.Caption:= floattostrf(x,ffgeneral,20,18); // вывод суммы ряда
end;

В итоге - сумма ряда с точностью E=0.001 равна 14,7781121978613005
7
22 ноября 2009 года
@pixo $oft
3.4K / / 20.09.2006
[OFFTOP]
Ну вообще-то в исходном коде увеличение как раз было.Делалось это с помощью Inc(n).Гораздо более удобный способ увеличить на 1;)
[/OFFTOP]
6
22 ноября 2009 года
George
4.1K / / 05.01.2007
Цитата: @pixo $oft
[OFFTOP]
Ну вообще-то в исходном коде увеличение как раз было.Делалось это с помощью Inc(n).Гораздо более удобный способ увеличить на 1;)
[/OFFTOP]


оффтоперы отакуэ. ну где ты видел исходный код???

52K
22 ноября 2009 года
yTko
8 / / 22.11.2009
он про код wanja.
274
22 ноября 2009 года
Lone Wolf
1.3K / / 26.11.2006
хм.. мне кажется что 1/n уж очень не хорошая оценка.... за сколько шагов сходится?
Например у меня, мой вариант, при использывании в качестве погрешности текущий елемент сошелся за 12 шагов, при изменении погрешности на 1/n за 1000....

UPDATE

вот исправленный код предложеный wanja
[highlight=pascal]

var memb,sum,n:extended;
begin
memb:=2;
sum:=2;
n:=2;
repeat

memb:=memb*2/(n-1);
sum:=sum+memb;
n:=n+1;
until memb<=0.001;
writeln('S(',n,')=',sum)
end.
[/highlight]

сравни со своим.
52K
23 ноября 2009 года
yTko
8 / / 22.11.2009
Нам на информатике говорили, что надо именно 1/n, поэтому за 1000 и должен считать.
Если вывести все значения An - то после первых 24 у меня идут ничтожно малые значения, которые на ответ даже не вляют, поэтому и ответ после них не меняется.
Lone Wolf, с твоим кодом (исправленный код warja) какой ответ получается?
274
23 ноября 2009 года
Lone Wolf
1.3K / / 26.11.2006
С какой оценкой погрешности? Если 1/n, то точно такой как у тебя. Если же предложенуйю мной оценку - 14.7779894179894

интересно чем препод руководствовался, когда такую оценку погрешности давал... но это так мысли в слух.. Меня бы в мое студенчество, за такое наверно отчислили )))
52K
23 ноября 2009 года
yTko
8 / / 22.11.2009
принес на сдачу. из двух заданий правильных ни одного )
фишка в том, что ряд нужно было с каким-то рекуррентным коэффициентом. спасает только то, что я все сдал и эти еще не объясняли на лекции.
взял щас другую лабу - вроде легче :)
вопрос: что за рекуррентный коэффициент? :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог