2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Вычисление суммы ряда с заданной точностью
Сообщение08.03.2012, 01:01 
Аватара пользователя
На стр. 40 книги «С/С++.Структурное программирование: Практикум» / Т. А. Павловская, Ю. А. Щупак. — СПб.: Питер, 2003 есть такая задачка:
Изображение
Доцент УРАО Н. М. Мусин, рассматривая этот пример в своей статье «Преподавание программирования и математика», пишет:
«С математической точки зрения изложение совершенно неприемлемо. Предлагается прекращать вычисления при достижении неравенства $\lvert C_n\rvert < \epsilon$. Это работает, когда ряд знакочередующийся, а члены ряда по модулю монотонно убывают. Но математику ясно, что в общем случае уже на следующем слагаемом это неравенство может нарушиться. Пусть, к примеру, ряд с положительными членами. Остаточный член имеет вид $C_n+C_{n+1}+C_{n+2}+...$ Именно эта величина должна быть меньше ε, но если мы ограничимся только величиной $C_n$, то даже читающему эти строки далекому от математики человеку очевидно, что требуемой точности мы не достигаем...»
Дальше Н. М. Мусин сообщает, что «...работа с остаточным членом ряда требует неплохого знания математики ... конечно, совсем вне педагогики был бы случай, когда преподаватель неправильно суммировал бы ряды, заставляя студентов следовать приведенной выше схеме из учебника Павловской...»
Казалось бы, остаточный член ряда меньше последнего выписанного члена ...
Что мне, программисту, делать, когда надо вычислить функцию с помощью разложения в ряд?

 
 
 
 Re: Вычисление суммы ряда с заданной точностью
Сообщение08.03.2012, 02:04 
Аватара пользователя
Применить неплохое знание математики и оценить остаточный член с его помощью.

-- Чт, 2012-03-08, 03:06 --

Это я к тому, что общего ответа нет, а надо смотреть, что за функция. Иногда оценить легко. Иногда нет.

 
 
 
 Re: Вычисление суммы ряда с заданной точностью
Сообщение08.03.2012, 11:13 
Если бы это была геометрическая прогрессия с $q_n\equiv\dfrac{a_{n}}{a_{n-1}}=q=\mathrm{const}$, то погрешность оценивалась бы сверху (просто была бы равна) через последний добавленный член как $\dfrac{q}{1-q}\,a_n$. В общем же случае $q_n$ не постоянно, но на практике, как правило, ведёт себя монотонно, начиная с некоторого номера, и в данном случае этот номер очевиден. Тогда для достижения требуемой точности надо дождаться монотонности и оценивать погрешность через $\dfrac{p_n}{1-p_n}\,a_n$, где $p_n$ -- это максимальное из чисел $q_n$ и $q_{\infty}=\lim\limits_{k\to\infty}q_k$ (которое надо вычислить вручную заранее). Конечно, имелись в виду ряды знакоположительные и сходящиеся достаточно быстро -- не медленнее некоторой геометрической прогрессии.

 
 
 
 Re: Вычисление суммы ряда с заданной точностью
Сообщение08.03.2012, 13:56 
Аватара пользователя
Цитата:
Казалось бы, остаточный член ряда меньше последнего выписанного члена ...

Суммируем гармонический ряд. И обнаруживаем, что как бы ни было мало последнее слагаемое суммы - остаточный член бесконечен.
В общем, исследовать надо.

 
 
 
 Re: Вычисление суммы ряда с заданной точностью
Сообщение08.03.2012, 14:46 
Евгений Машеров в сообщении #546277 писал(а):
В общем, исследовать надо.

Если требуется достаточно высокая точность, то исследовать практически не надо. Во всяком случае, если ряд сходится быстрее геометрической прогрессии; а если это так, то это обычно (как в данном примере) известно заранее. Просто потому, что это -- разложение целой функции.

 
 
 
 Re: Вычисление суммы ряда с заданной точностью
Сообщение08.03.2012, 14:49 
Аватара пользователя
о каком гармоническом ряде вы толкуете?
гиперболический косинус разложен в ряд и надо вычислить его значение с заданной точностью. все.

 
 
 
 Re: Вычисление суммы ряда с заданной точностью
Сообщение08.03.2012, 15:03 
Используется синтаксис Pascal
ch:=1;
y:=1;
q:=1;
i:=1;
while (y*q>1-q) or (x*x>i*(i+1)-1) do begin
    y0:=y;
    y:=y*x*x/(i(i+1));
    ch:=ch+y;
    q:=y/y0;
    i:=i+2;
end;

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group