
- •Решение задач о нахождении суммы ряда
- •Var s:Real; {значение суммы}
- •Использование формулы общего члена ряда
- •Var a,s:Real; I:Integer;
- •Использование рекуррентного соотношения
- •Var I,n:integer;
- •X,a,s:real;
- •Одновременное использование формулы общего члена и рекуррентного соотношения
- •Var I:integer;
- •X,s,eps,a,d,e:Real;
- •Вложенные циклы
- •Var n,k,y,s,I,j:integer;
- •Var n,k,s:LongInt;
- •Var a,a1:Integer; b:Boolean; answer:Char;
- •Var a,b,c,d:Integer;
Решение задач о нахождении суммы ряда
Числовым рядом называется бесконечная сумма S некоторой последовательности.
S
= a1+a2+a3+…+ai+…
=
С помощью разложения в числовой ряд можно вычислить многие из элементарных функций, например
,
при
;
при
.
Поскольку ряд имеет бесконечное число членов, вычисления производят с определенной точностью, т.е. суммирование прекращают, когда очередной член ряда оказывается меньше допустимой погрешности вычислений. Допустимую погрешность вычислений называют иначе точностью вычислений. Она задается малым числом , где 0<<1, (=10-2, 10‑3,…), чем меньше , тем точнее решение. При =10‑i решение будет точным до i-го знака после запятой.
Основная схема вычисления бесконечной суммы с заданной точностью:
Var s:Real; {значение суммы}
a:Real; {очередной член суммы}
eps:Real; {требуемая точность вычислений}
. . .
Begin
. . .
S:=0; {Начальное значение суммы устанавливаем равным 0}
a:=a1; {Присваиваем а значение первого члена ряда}
While (abs(a)>eps) Do {сравниваем очередной член ряда}
Begin {c требуемой точностью}
S:=S+a; {добавляем очередной член в сумму}
a:=...; {вычисляем значение следующего члена ряда}
End;
End.
Основная проблема при вычислении суммы числового ряда состоит в вычислении очередного члена последовательности. Можно выделить три подхода к решению этой проблемы:
1) использование формулы общего члена ряда;
2) использование рекуррентного соотношения;
3) смешанный подход, основанный на двух предыдущих.
Использование формулы общего члена ряда
Формула общего члена ряда это соотношение, с помощью которого можно вычислить очередной член ряда, используя его номер.
Так для ряда S = 2+4+6+8+10+… a1=2=2∙1, a2=4=2∙2, a3=6=2∙3, … ,
и, соответственно, формула общего члена: ai=2∙i, где i=1, 2, 3,… .
Для ряда
,
формула общего члена
,
где
i=0, 1, 2, 3, … .
Для первого ряда формула общего члена получилась довольно простая и вычисление очередного члена ряда на основе этой формулы не составит труда. Для второго ряда проведение вычислений очередного члена ряда на основе выведенной формулы будет неэффективно, т.к. потребует использования вложенных циклов. Поэтому данный метод для вычисления очередного члена ряда используется лишь в том случае, если формула является легко вычислимой.
Пример 2.1. Найти сумму ряда с точностью =10-4.
Формула общего члена ряда:
ai=
,
i=1, 2, 3,…
Поскольку эта формула легко вычислима, используем ее при составлении алгоритма.
Const eps=1E-4; {константа eps задана в экспоненциальной
форме и равна 0.0001}
Var a,s:Real; I:Integer;
Begin
S:=0;
i:=1;
a:=1;
While (abs(a)>eps) Do
Begin
S:=S+a;
i:=i+1;
a:=1/i;
End
End.
Задание. Найти сумму ряда, заданного в примере Пример 2.1, с максимальной возможной точностью? Посчитать, сколько итераций для этого потребуется.
Использование рекуррентного соотношения
Понятие рекуррентной последовательности в курсе математики вводится так: пусть известно k чисел: а1, …, ak. Эти числа являются началом числовой последовательности. Следующие элементы этой последовательности вычисляются так:
ak+1 = F(a1, …, ak); ak+2 = F(a2, …, ak+1); ak+3 = F(a3, …, ak+2) …
Здесь F(…) – функция от k аргументов. Формула вида
ai = F(ai-k, …, ai-1)
называется рекуррентной формулой. Другими словами, рекуррентная последовательность – это бесконечный ряд чисел, каждое из которых, за исключением k начальных, вычисляется через предыдущие члены ряда.
Например, арифметическая и геометрическая прогрессии:
a1=1,
a2=3,
a3=5,…
Рекуррентная формула:
.
a1=1,
a2=2,
a3=4,
… Рекуррентная формула:
.
Глубина рекурсии в обоих случаях равна 1 (такую зависимость называют одношаговой рекурсией).
Числа Фибоначчи: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, … Начиная с третьего элемента, каждое число равно сумме двух предыдущих, т.е. это рекуррентная последовательность с глубиной, равной 2. Рекуррентная формула для чисел последовательности Фибоначчи:
.
Для вывода рекуррентной формулы часто можно воспользоваться соотношением вида:
.
Получив f(i), мы по сути найдем основную часть рекуррентного соотношения, так как
.
Правда, при этом нельзя забывать о начальном условии, без которого рекуррентная формула не будет полной.
Определим
рекуррентное соотношение для ряда:
.
Положим
.
Тогда
.
Получаем рекуррентное
соотношение:
.
Рекуррентное соотношение используется в тех случаях, когда следующий член ряда можно выразить через предыдущий (или предыдущие), а использование формулы общего члена приведет к появлению вложенных циклов, что сделает программу неэффективной.
Пример 2.2.
Написать
программу вычисления суммы N
первых членов ряда
.
Выпишем члены
ряда
.
Поскольку каждый член ряда может быть получен из предыдущего домножением на определенный множитель, а вычисление «в лоб» каждого члена ряда приведет к появлению вложенных циклов, эффективнее будет использовать рекуррентное соотношение. Выведем его
Полученное
рекуррентное соотношение
.