Алгоритм итерационного цикла
Пример 4 Вычислить корень k-й степени из аргумента х = 2 с точностью до третьего знака после запятой.
Корень любой степени можно вычислить по итерационной формуле
Погрешность вычислений определим как модуль разности текущего и следующего значений функции у и сравнения его с заданной точностью Е = 0,001
│y(n+1)-y(n)│<E
Для вычислений нужно задать начальное приближение результата, т.е. примерное значение корня k-й степени из аргумента х, например, единицу.
y(n)=h = 1
В программе приняты обозначения:
h – начальное значение функции у;
x – значение аргумента х;
k – показатель степени корня;
E – заданная точность вычисления функции у.
Y0 – текущее значение функции у
Y1 – следующее значение функции у
Программа:
CLS
INPUT h,x,k,E
Y0=h
L2: Y1=1/k*((k-1)*Y0+x/Y0^(k-1))
IF ABS(Y1-Y0)<E THEN L1
Y0=Y1
GOTO L2
L1: PRINT Y1
END
Путем последовательного приближения к заданному значению E по данной итерационной формуле получается искомый результат корня. Здесь в строке 6 результат предыдущей итерации y(0) заменяется результатом, полученным при последующей итерации (y(1)). После этого управление передается по метке L2, где по итерационной формуле получается очередное приближение значения корня (y(1)) к требуемой точности вычислений. Когда заданная точность достигнута (│y(1)-y(0)│<E), осуществляется выход из цикла путем передачи управления по метке L1.
Контрольные вопросы
1 Какие вычислительные процессы называются итерационными?
2 Какая переменная управляет итерационным циклом ?
3 Какой метод вычислений реализуется в итерационных вычислительных процессах.
4 Как организовать вычисление факториала?
5 Как вычислить сумму чётных факториалов, начиная с 4!?
6 Как вычислить сумму нечётных факториалов, начиная с 5!?
7 Как организовать вычисление произведения факториалов?
Как ввести вычисление знакопеременности членов ряда?