Паскаль. Основы программирования

       

Сходимость числовых и функциональных рядов


Пусть дан бесконечный ряд: 

 

Станем последовательно складывать члены ряда, составляя (в бесконечном количестве) суммы;

их называют частными суммами (или отрезками) ряда.

Конечный или бесконечный предел

 частичной суммы
 ряда при
:

 

называется суммой ряда и пишут

    

Если ряд имеет конечную сумму, его называют сходящимся, в противном случае (т.е. если сумма равна 

 или
 , либо же суммы вовсе нет - расходящимся.

Попробуем установить являются ли некоторые ряды сходящимися?

Пример 3. Является ли ряд

 сходящимся?

Для установления этого, надо определить имеет ли предел последовательность частичных сумм ряда, а это в свою очередь, означает будет ли разность между суммами по абсолютной величине меньше заданного положительного, даже очень малого числа eps, т.е. будет ли выполняться неравенство:

 

Отсюда вытекает алгоритм составления программы.



Надо находить сумму членов ряда и как только разность между текущей суммой и следующей будет меньше eps, то цикл закончить, значит ряд сходится и выдать его сумму, которая будет равна текущей сумме с заданной степенью точности.

Установить является ли следующий ряд сходящимся и найти то число с заданной точностью eps, к которому он сходится.

Для вычисления суммы ряда нам придётся находить его члены и прибавлять к текущей сумме, а для нахождения членов ряда воспользуемся подпрограммой - функцией для вычисления факториала числа.

Программа

Program Problem3;

    uses WinCrt;

    var

       n                 : integer;

       z, z1, e, eps : real;

{----------------------------------------------------------------------------------------}

    Function fakt(n : longint) : real;

         var

             i : longint;

             f : real;

         begin

            f := 1;

            if n = 0 then f := 1

                         else for i := 1 to n do

f := f*i;

            fakt := f

         end;

{----------------------------------------------------------------------------------------}

{ Функция вычисления порядка - кол-во знаков после запятой }


   Function t(eps : real) : integer;

         var

            k : integer;

         begin

            k := -1;

            repeat

                eps := eps*10;

                 k := k + 1

            until eps > 1;

            t := k

         end;

{----------------------------------------------------------------------------------------}

    begin

       write(' Задайте точность eps '); readln(eps);

       z := 0; n := 1;

       repeat

          z := z + sqr(fakt(n))/fakt(2*n);

          n := n + 1;

          z1 := z + sqr(fakt(n))/fakt(2*n)

       until abs(z1 - z) < eps;

       write('Сумма ряда равна ', z1:6:t(eps));

       writeln(' с точностью до ', eps:3:t(eps))

    end.

Задание 3

Установить, является ли ряд
 , при a > 1 сходящимся?


Содержание раздела