Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lec4.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
200 Кб
Скачать
☆

Var I,n:integer;

X,a,s:real;

Begin

Write(’Введите число членов ряда ’);ReadLn(N);

Write(’Введите x ’);ReadLn(x);

a:=1;

S:=0;

For i:=1 To N Do

Begin

S:=S+a;

a:=-a*x*x/(2*i-1)/2/i;

End;

WriteLn(‘S=’,S)

End.

Одновременное использование формулы общего члена и рекуррентного соотношения

Оба рассмотренных выше способа: использование формулы общего члена и построение рекуррентного соотношения не исчерпывают всего многообразия числовых рядов. Может возникать ситуация, когда формула общего члена не является эффективно вычислимой и при этом невозможно построить рекуррентное соотношение. Часто такая ситуация находит свое разрешение, если каждый член ряда представить в виде произведения ai=bi∙ci и отдельно рассмотреть последовательности из bi и ci. При этом одна из последовательностей будет эффективно вычислима через общий член ряда, а другая через рекуррентное соотношение. Рассмотрим ряд . Формула общего члена . Представим ai=bi∙ci , bi=xi, . Последовательность из bi выражается рекуррентным соотношением , а последовательность из ci эффективно вычислима через формулу общего члена.

Пример 2.3. Найти сумму ряда c точностью ε. Определить сколько членов ряда требовалось просуммировать для достижения заданной точности.

Определим общий вид слагаемого ряда: , , , .

Выведем рекуррентное соотношение для bi :

b1= –x2, b2=x4, b3= –x8, , .

Получаем . Однако, полученное рекуррентное соотношение так же породит вложенные циклы, т.е. не является эффективно вычислимым. Попробуем bi так же представить в виде произведения. Пусть bi=di∙ei , , . Рекуррентные соотношения для новых последовательностей:

,  .

Var I:integer;

X,s,eps,a,d,e:Real;

Begin

Write(’Введите x ’);ReadLn(x);

Write(’Введите точность вычислений ’);ReadLn(eps);

S:=0; a:=1; i:=0; d:=1;

While abs(a)>eps do begin

S:=S+a; {Добавляем очередной член в сумму}

i:=i+1; {Учитываем сколько членов просуммировали}

d:=-d; {Вычисляем знак очередного члена}

if i=1 then e:=x*x {Вычисляем}

else e:=e*e; {очередной}

a:=d*e/(i+1); {член ряда}

end;

WriteLn(’Сумма ряда ’,S);

writeLn(’Для достижения точности ’,eps,’требовалоcь’);

WriteLn(’просуммировать ’,i,’ членов ряда.’);

End.

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

  1. Вложенные циклы

Для решения задач часто приходится использовать две и более циклические конструкции, одна из которых располагается внутри другой. Такие конструкции называются вложенными циклами. При этом сочетание циклов For, While, Repeat могут быть любыми. Цикл, который содержит в себе другой – называется внешним. Цикл, находящийся в теле первого – внутренним (вложенным). Правила организации как внешнего, так и внутреннего циклов такие же, как и для простого цикла каждого из этих видов. Использовать вложенные циклы рекомендуется только в тех случаях, когда более эффективной (приводящей к выполнению меньшего числа действий) программу сделать не удается. Например, пусть некоторую задачу можно решить, используя два вложенных цикла, каждый из которых делает n действий, общее число действий будет равно n2. Если, решая эту же задачу, удастся обойтись одним циклом с числом действий равным даже 2n, это все равно будут эффективнее использования вложенных циклов.

При вложении циклов для каждой итерации внешнего цикла внутренний цикл выполняется полностью. Например, для вложенных циклов For:

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

  • После этого значение параметра внешнего цикла изменяется (например, увеличивается на 1), и опять от начала до конца выполняется вложенный цикл.

  • И так повторяется до тех пор, пока значение параметра внешнего цикла не станет больше конечного значения, определяемого во внешнем цикле.

Пример 3.4. Даны натуральные числа n и k. Составить программу вычисления выражения 1k+2k+3k+…+nk.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]