|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.11.2020, 20:01 | #1 |
Новичок
Джуниор
Регистрация: 15.11.2020
Сообщений: 2
|
Решение задачи на рекуррентную зависимость
Не могу понять,как решаются задачи такого типа.
На конкретном примере сможет кто-то объяснить,что от меня требуется и как добиться результата. Язык Си. |
15.11.2020, 20:38 | #2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,567
|
Могу пояснить.
Для решения этой супер-элементарнейшей задачи пишется программа в 5 строк. Когда i-й член суммы станет меньше епсилона, говорим: "Хана!" и сравниваем вычисленное значение с точным. Работы минут на 5 с перекурами. У меня на компе нет Си. Да Делфи хочешь ? |
15.11.2020, 20:50 | #3 |
Новичок
Джуниор
Регистрация: 15.11.2020
Сообщений: 2
|
Да,буду не против
|
16.11.2020, 12:32 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,567
|
Код:
2,0 -0,125000 6,0 -0,020833 = 0,479167 4,0 0,031250 120,0 0,000260 = 0,479427 6,0 -0,007813 5040,0 -0,000002 = 0,479426 8,0 0,001953 362880,0 0,000000 = 0,479426 0,479426 Последний раз редактировалось digitalis; 16.11.2020 в 13:25. |
16.11.2020, 15:04 | #5 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,312
|
Моё предложение:
Найди в Сети Т.А. Павловская, ЯВУ Паскаль. Там хорошо изложен алгоритм решения подобных задач. Да, это Паскаль, но алгоритм от языка не зависит. В данном случае an+1 = k*an, где k = -x*x/(2*n+2)*(2*n+3)). В этом случае точность вычисления будет повыше. Т.е., в цикле по x (от xbeg до xfin - если это тоже есть в задании) организуешь вложенный цикл типа Код:
В цикле do: <вычисляем k>; a = a*k; sum = sum + a; n = n + 1; если abs(a) < eps то break. PS: Выражение dwn := dwn * n * (n+1); - это прямой счёт факториала, но факториал растёт очень быстро и получить достаточную точность будет сложно из-за переполнения значения переменной dwn.
Как-то так, ...
|
16.11.2020, 17:34 | #6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,567
|
Вот именно - факт. (он же и знаменатель) растёт очень быстро, поэтому слагаемые тоже очень быстро стремятся к нулю а сумма - к сходимости. Потому моего варианта для ТС более чем достаточно, если сумеет перепереть его в Си. Тем более что up,dwn я взял для наглядности - как что изменяется. А так i+1е слагаемое получаем из i-го путём доумножения на -х^2 и деления на n,n+1, не беспокоя при этом по таким пустякам г-жу Павловскую, которой мне читать не довелось.
----------------------------- Или это совет был не мне, а ТСу ? Последний раз редактировалось digitalis; 16.11.2020 в 17:43. |
17.11.2020, 08:57 | #7 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,312
|
digitalis
Цитата:
"А, и так сойдёт!" - из мультика про зайчишку, который помогал строить и ещё чего-то там ... Это не катит. Не катет, а именно не катИт. Ваш вариант быстро "заткнётся", если поднять точность. На эту тему тут уже был разговор с newerow1989, который давал решения в аналогичном стиле. Просто сделайте вычисления в двух вариантах и сравните результат. PS: А Т.А. Павловскую я рекомендую всем начинающим изучать Паскаль, поскольку там изложен материал от А до я: от основ Паскаля, до уровня динамического программирования и ООП. И там много примеров.
Как-то так, ...
|
|
17.11.2020, 11:20 | #8 | |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,567
|
Цитата:
Повторю ещё раз: предлагаемый Вами вариант был (и есть) у меня изначально, а разделил для up - dwn я для наглядности - как одно стремительно растёт, слагаемоё - так же стремительно падает. Пожалуй, не сто'ит меня убеждать, что не надо делать "и так сойдёт", потому что это - не мой стиль. И закончим на этом обсуждение этой сверх-элементарнейшей мини-задачи. ТС , надеюсь, её уже переварил. Или нашёл на другом форуме готовое сишное решение. Последний раз редактировалось digitalis; 17.11.2020 в 12:03. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Решение задачи на C# | PiterParkur | Помощь студентам | 0 | 26.01.2020 16:00 |
Решение задачи на c# | Vestet | Помощь студентам | 1 | 24.01.2020 12:11 |
Решение задачи. C++ | alucard115 | Помощь студентам | 24 | 16.02.2013 12:34 |
Решение задачи | zheka21 | Помощь студентам | 13 | 08.11.2012 12:06 |
решение задачи (C#) | Uimbldon | Помощь студентам | 0 | 02.10.2012 13:02 |