Текущий архив: 2006.12.24;
Скачать: CL | DM;
Вниз
Формула реккурентной последовательности. Найти похожие ветки
← →
Bew (2006-11-30 23:11) [0]Как всегда, самое сложное в контре по программированию не кодинг, а математическая часть. Короче, кто знает, подскажите формулу реккурентной последовательности (т.е. на что нужно умножать каждый шаг цикла) для такой вот гадости:
http://img127.imageshack.us/img127/4342/dsc00310rs7.gif
Заранее благодарен
← →
Юрий Зотов © (2006-11-30 23:31) [1]Ни на что умножать не надо. Зачем? Там же сумма, а не факториал. Просто вычисляем следующий член и суммируем с аккумулятором.
Там основная проблема не в этом, а в способе суммирования и в том, когда останавливать цикл. Арифметика с плавающей точкой, однако, да еще накопление погрешности, да еще знакопеременный ряд. Если делать "в лоб", то можно полную ерунду получить.
← →
Romkin © (2006-12-01 00:26) [2]Да, вся фишка здесь в том, чтобы получать каждый следующий член из предыдущего. Просто тупо умножая на (-x^2)/...
← →
vasIzmax © (2006-12-01 01:04) [3]uses math;
summa:=summa+intpower(-1,n)*(intpower(x,2*n+1))/(2*n+1);
← →
Юрий Зотов © (2006-12-01 01:56) [4]> Romkin © (01.12.06 00:26) [2]
1. Не получится. Знаменатель не пущает.
2. Основная фишка в знакопеременном ряде. Если делать "в лоб", можем получить слишком высокую погрешность.
← →
Думкин © (2006-12-01 05:55) [5]> Юрий Зотов © (01.12.06 01:56) [4]
почему можем получить большую погрешность? Чем так плохи ряды Лейбница?
← →
Alx2 © (2006-12-01 06:29) [6]uses Math;
function Sum_Infinity( x : double):double;
begin
result := 1/2*arctan2(2*x,1-x*x);
end;
← →
Alx2 © (2006-12-01 06:30) [7]к Alx2 © (01.12.06 06:29) [6]
Забыл: |x|<=1
← →
Alx2 © (2006-12-01 06:35) [8]Блин... сорри. Еще проще получается
uses Math;
function Sum_Infinity( x : double):double;
begin
result := arctan(x);
end;
← →
MBo © (2006-12-01 07:24) [9]>Alx2
Ты же понимаешь, что цель задачи - научиться писать несложные циклы, а не получить значение ;)
← →
Romkin © (2006-12-01 09:31) [10]Юрий Зотов © (01.12.06 01:56) [4]
> 1. Не получится. Знаменатель не пущает.
Получится. Для получения следующего члена предыдущий умножается на -1*(x^2)*(2n-1)/(2n+1) :)
А вот из-за знака лучше объединить два члена... Впрочем, и этого не надо, ряд сходится, похоже, только при (Alx2 © (01.12.06 06:30) [7]), поэтому и не надо.
← →
Bew (2006-12-01 09:37) [11]2
Romkin предложил тот метод решения, который описан в методичке. Мне как раз и нужно узнать, на что "тупо умножать".
2alx
В задаче arctan(x) тоже упоминается. Типа выполнить 60 раз, при этом сумма должна быть каждый раз такой же, как и при вычислении arctan(x) .
> Ты же понимаешь, что цель задачи - научиться писать несложные
> циклы, а не получить значение ;)
Блин, я 3 года программистом работаю. Умею я писать циклы!!! Ненавижу, мля, отечественное образование! Если кому-нить нужно учить циклы - пусть массивы, например, сортируют. Но вот нахера матехой грузить то?!
← →
wal © (2006-12-01 10:15) [12]
> [11] Bew (01.12.06 09:37)
> Блин ....
А нужна ли программисту математика?
ЗЫ. :)
← →
jack128 © (2006-12-01 10:39) [13]Bew (01.12.06 9:37) [11]
Но вот нахера матехой грузить то?!
Чего грузить то? Математика уровня 7 класса, вообще то.
← →
Romkin © (2006-12-01 10:40) [14]Bew (01.12.06 09:37) [11] Такие задачи и их решение надо знать. Почему - читай, что написал Зотов :)
Кстати, достаточно один раз показать, дальше это запоминается. Мог бы и сам сделать, если в методичке написано.
И математика программисту нужна, без нее это программист-недоучка. Точнее, вообще не программист, а кодер.
← →
jack128 © (2006-12-01 10:42) [15]Romkin © (01.12.06 9:31) [10]
Получится. Для получения следующего члена предыдущий умножается на -1*(x^2)*(2n-1)/(2n+1) :)
не член, а слагаемое, кстати говоря ;-)
← →
BiN © (2006-12-01 10:44) [16]Я дико извиняюсь, а результат разве не будет равен просто X.
← →
pasha_golub © (2006-12-01 10:45) [17]
> jack128 © (01.12.06 10:42) [15]
Кому что на слух приятней. :)) Можно, на украинском еще: доданок.
← →
Думкин © (2006-12-01 11:12) [18]
> BiN © (01.12.06 10:44) [16]
Не будет. Это разложение арктангенса в нуле.
> Romkin © (01.12.06 09:31) [10]
Если у знакопеременного стремится к нулю общий член, то и ряд сходится. А к нулю тут - если по модулю меньше 1.
← →
Alx2 © (2006-12-01 12:23) [19]>MBo © (01.12.06 07:24)
Увы, с сильным запозданием :)
← →
Bew (2006-12-01 17:01) [20]Спасибо всем! Вопрос решён.
Страницы: 1 вся ветка
Текущий архив: 2006.12.24;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.063 c