Цель работы
1. Составление алгоритма вычисления суммы бесконечного ряда с заданной относительной точностью на основе суммы конечного числа членов.
2. Вычисление очередного элемента ряда с использованием
рекурентного соотношения.
Содержание и выполнение.
Студенту предлагается вычислить одну из известных спецфункций по ее разложению в бесконечный ряд. Задается относительная точность на ограничение ряда.
Рассмотрим простой пример:
Вычислить Cos(x) по разложению в бесконечный ряд, с точностью eps.
; |x|<=1; eps=10-6.
Для составления алгоритма вычисления суммы Вы должны четко представлять себе как вычисляется каждый элемент суммы.
(1)
= a0+a1+a2+a3+...+an+an+1+...a¥.
Анализ каждого члена ряда (a1,a2,a3,...an,an+1 ..) и сравнение его с предыдущим показывает , что всегда ½an+1½<½an½ , т.е. последующий член меньше предыдущего - такие ряды в математике называются сходящимися. Сумма только сходящегося бесконечного ряда равна конечной величине. Сходимость ряда позволяет определить значение его бесконечной суммы с заданной относительной точностью, вычислив сумму конечного числа членов.
Итак, Cos(x) представлен суммой бесконечного числа элементов:
Вы понимаете, что составлять алгоритм для вычисления бесконечного числа элементов не имеет смысла: ресурсы ЭВМ не оперируют с понятием бесконечность. С другой стороны, и вычисление бесконечно удаленного члена также не имеет смысла, так как он стремится к нулю. Действительно, если Вы попытаетесь вычислить сотый элемент:
то получите очень маленькую величину, прибавление которой к предыдущим 99 членам практически не изменит суммы, т.е. вычисление элементов с большими индексами и прибавление их к сумме теряет смысл, так как они очень малы по сравнению с суммой всех предыдущих элементов.
Что значит очень малы? Это понятие должно иметь строгий математический смысл, т.е. должно быть выражено определенной величиной, которая и ограничит число элементов при вычислении суммы.
Мы будем вычислять сумму не бесконечного числа членов, а конечного, это конечное число m определяется относительной точностью согласно соотношению:
(2).
Предположим, eps=10-6 . Отношение (2) говорит о том, что мы должны прекратить вычисление элементов и прибавление их к сумме, как только очередной элемент an=am будет меньше суммы из m элементов ряда в 106 (1/eps) раза. Прибавление следующего m+1 элемента не изменит величину суммы более чем на миллионную её часть.
В нашей задаче:
с точностью eps, где m определено согласно (2 ).
Вычисление очередного (текущего) члена.
Внимательно посмотрите разложение (1), ещё раз сравните последующий член с предыдущим и Вы убедитесь , что между соседними элементами существует рекуррентная связь: последующий член всегда можно выразить через предыдущий с помощью множителя постоянного вида (рекуррентного множителя). Действительно:
- рекуррентное соотношение.
Это рекуррентное соотношение и необходимо положить в основу вычисления текущего члена. Не вычислять x2n и (2n)! для каждого элемента, а использовать значение предыдущего и рекуррентное соотношение.
Итак, словесный алгоритм:
1. Начало.
2. Полагаем n=0, вычисляем нулевой член an=0 , вычисляем сумму S.
( n=0; a=1; S=a ).
3.Увеличиваем n на 1 (n=n+1).
4.Вычисляем рекуррентный множитель R=-1*x2/((2*n-1)*2*n) .
5.Вычисляем следующий член: a=a*R.
6. Прибавляем его к сумме: S=S+a .
7. Проверяем соотношение:
|a| / |S| <=eps
Если соотношение ложь,т.е. очередной член по сравнению с суммой еще велик , то необходимо вернуться к пункту 3 и продолжить накопление суммы.
Если соотношение истина , т.е. очередной вычисленный член меньше накопленной суммы в 1 /eps раз , то вычисление заканчивается, а накопленная сумма и есть результат – переход к пункту 8.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.