Слайд 5
Для решения этой задачи надо суммировать члены ряда
до тех пор, пока абсолютная величина прибавляемого члена не
станет меньше значения требуемой точности. Полученная при этом сумма есть сумма ряда с заданной точностью. Алгоритм решения этой задачи состоит из цикла, для которого заранее не известно число повторений.
Слайд 6
Легко заметить, что, имея значение (i - 1)
- го члена ряда, можно получить i - ый
член, используя рекуррентную формулу:
В этой формуле i – номер члена, ui – i-ый член ряда. Эта рекуррентная формула получена делением в общем виде следующего члена ряда на предыдущий.
Слайд 7
Индексы в этой формуле указывают на то, что
в правой части стоит предыдущий член, а в левой
получаемый из него следующий. Т.к. после получения нового значения члена ряда - старое значение больше не нужно, новое значение можно записать на место старого, т.е. использовать для них одну и ту же переменную. В программе это выразится в том, что в рекуррентной формуле в левой и правой частях будет присутствовать одна и та же переменная, содержащая значение члена ряда. Естественно перед началом вычислений в цикле эта переменная должна получить значение первого члена ряда.
Begin Write(‘x=‘); Readln(x); {Ввод значения x}; Write(‘eps=‘); Readln(eps); {Ввод значения eps}; u := x; i := 1; sum := u; z := x*x; {цикл с предусловием для нахождения суммы ряда} While abs( u ) > eps Do Begin u := -u * z / ( 2* i * (2* i + 1 )); sum := sum + u; i := i + 1; End; Writeln(‘sum = ‘, sum) end.