Бесконечные произведения
Напомним основные понятия, относящиеся к бесконечным произведениям.
Определение. Если
есть некоторая заданная последовательность чисел, то составленный из них символназывают бесконечным произведением.
Станем последовательно перемножать числа (1), составляя частичные произведения
Эту последовательность частичных произведений
мы всегда будем сопоставлять символу (2).Предел P частичного произведения
при (конечный или бесконечный)называют значением
произведения (2) и пишут:
Если бесконечное произведение имеет конечное значение P и притом отличное от 0, то само произведение называют сходящимся, в противном случае - расходящимся.
Достаточно одному из сомножителей произведения быть нулем, чтобы и значение всего произведения также было равно нулю. В дальнейшем этот случай будет исключен из рассмотрения, так что для нас всегда
4.1. Примеры некоторых замечательных бесконечных произведений
Пример 1.
Так как частичное произведение
то бесконечное произведение сходится, и его значением будет
Проверим этот факт, для чего составим программу вычисления произведения:
Составим процедуру, которая с заданной точностью вычисляет это произведение и включим ее в программу. Зачем нам нужна процедура, если можно сразу составить программу?
Ответ понятен. Нам придется составлять еще много программ, в которых не только вычисляются произведения, но и выполняется ряд других задач. Изменив только одну процедуру, мы сможем использовать новое произведение для поставленных в программе задач.
Процедура
Procedure
Multiplication(eps : real; var Mult : real);
var
n : longint;
Mult1 : real;
begin
n := 2; Mult1 := 1;
repeat
Mult1 := Mult1*(1 - 1/sqr(n));
n := n + 1;
Mult := Mult1*(1 - 1/sqr(n))
until abs(Mult - Mult1) < eps
end;
Программа
Program Multiply1;
uses WinCrt;
var
Mult, eps : real;
{----------------------------------------------------------------------------------------}
{ Функция вычисления порядка - кол-во знаков после запятой }
Function
t(eps : real) : integer;
var
k : integer;
begin
k := -1;
repeat
eps := eps*10;
k := k + 1
until eps > 1;
t := k
end;
{----------------------------------------------------------------------------------------}
Procedure Multiplication(eps : real; var Mult : real);
var
n : longint;
Mult1 : real;
begin
n := 2; Mult1 := 1;
repeat
Mult1 := Mult1*(1 - 1/sqr(n));
n := n + 1;
Mult := Mult1*(1 - 1/sqr(n))
until abs(Mult - Mult1) < eps
end;
{----------------------------------------------------------------------------------------}
begin
write('Введите точность вычисления '); readln(eps);
Multiplication(eps, Mult);
writeln('Значение произведения равно ', Mult:6:t(eps));
writeln('С точностью до ', eps:1:t(eps))
end.
Пример 2.
4.2. Формула Валлиса (J. Wallis)
Формула Валлиса имеет для нас не только исторический интерес, но она поможет применять методику, которая будет использоваться при вычислении числа с помощью этой формулы.
Итак, формула Валлиса имеет вид:
или
Этот предел равносилен разложению числа в бесконечное произведение
Она же приводит к формулам
или .
Но надо заметить, что для вычисления числа существуют методы, гораздо быстрее ведущие к цели.
Составим процедуру, а затем и программу вычисления числа по последней формуле.
Процедура
Procedure
Wallis(eps : real; var Mult : real);
var
n : longint;
Mult1 : real;
begin
n := 1; Mult := 1;
repeat
Mult := Mult*(4*sqr(n)/(4*sqr(n)-1));
n := n + 1;
Mult1 := 4*sqr(n)/(4*sqr(n)-1)
until Mult1 < eps
end;
Следует заметить, что оценка погрешности в этой процедуре отличается от оценки погрешности в процедуре примера 1. Такая оценка вытекает из математических соображений, n-й множитель в произведении Валлиса "быстрее" стремится к нулю, чем разность между n - 1-м произведением и n-м.
Программа
Program Problem2;
uses WinCrt;
var
Mult, eps : real;
{----------------------------------------------------------------------------------------}
{ Функция вычисления порядка - кол-во знаков после запятой }
Function
t(eps : real) : integer;
var
k : integer;
begin
k := -1;
repeat
eps := eps*10;
k := k + 1
until eps > 1;
t := k
end;
{----------------------------------------------------------------------------------------}
Procedure Wallis(eps : real; var
Mult : real);
var
n : longint;
Mult1 : real;
begin
n := 1; Mult := 1;
repeat
Mult := Mult*(4*sqr(n)/(4*sqr(n)-1));
n := n + 1;
Mult1 := 4*sqr(n)/(4*sqr(n)-1)
until Mult1 < eps
end;
{----------------------------------------------------------------------------------------}
begin
write('Введите точность вычисления '); readln(eps);
Wallis(eps, Mult);
writeln('Значение числа Пи равно ', 2*Mult:6:t(eps));
writeln('С точностью до ', eps:1:t(eps))
end.
4.3. Полный эллиптический интеграл 1-го рода
Для полного эллиптического интеграла 1-го рода установлена формула
где переменная определяется рекуррентным соотношением:
, (0 < k < 1).
Эта формула дает разложение K(k) в бесконечное произведение
Процедура
Procedure
Elliptic(k, eps : real; var Kk : real);
var
Kk1 : real;
begin
Kk1 := k;
repeat
k := (1 - sqrt(1 - sqr(k)))/(1 + sqrt(1 - sqr(k)));
Kk1 := Kk1*(1 + k);
k := (1 - sqrt(1 - sqr(k)))/(1 + sqrt(1 - sqr(k)));
Kk := Kk1*(1 + k);
until abs(Kk1 - Kk) < eps;
Kk := Kk*Pi/2
end;
Программа
Program Problem3;
uses WinCrt;
var
Kk, k, eps : real;
{----------------------------------------------------------------------------------------}
{ Функция вычисления порядка - кол-во знаков после запятой }
Function
t(eps : real) : integer;
var
k : integer;
begin
k := -1;
repeat
eps := eps*10;
k := k + 1
until eps > 1;
t := k
end;
{----------------------------------------------------------------------------------------}
Procedure Elliptic(k, eps : real; var
Kk : real);
var
Kk1 : real;
begin
Kk1 := k;
repeat
k := (1 - sqrt(1 - sqr(k)))/(1 + sqrt(1 - sqr(k)));
Kk1 := Kk1*(1 + k);
k := (1 - sqrt(1 - sqr(k)))/(1 + sqrt(1 - sqr(k)));
Kk := Kk1*(1 + k);
until abs(Kk1 - Kk) < eps;
Kk := Kk*Pi/2
end;
{----------------------------------------------------------------------------------------}
begin
write('Введите значение k (0 < k < 1) '); readln(k);
write('Введите точность вычисления '); readln(eps);
Elliptic(k, eps, Kk);
writeln('Значение интеграла равно ', Kk:6:t(eps));
writeln('С точностью до ', eps:1:t(eps))
end.
Задание 5
Известен предел:
Теперь мы можем записать это так:
В частности, при придем к разложению:
Если вспомнить, что то это разложение можно переписать в виде
Эта формула впервые была предложена Ф. Виетом (F. Viet) и является вместе с формулой Валлиса примерами первых бесконечных произведений.
Используя формулу (1) составьте программу вычисления числа .