Итерационный цикл — это цикл, количество повторов в котором определяется результатами вычислений в теле цикла, и оно заранее неизвестно.
Введение
Итерационным циклом является циклическая процедура, количество повторов в которой определяется результатами расчётов в теле цикла, и до конца расчётов его нельзя определить.
Основным и главным отличием итерационного цикла от арифметического цикла считается величина, которая служит параметром. Для арифметического цикла параметрами могут быть аргументы искомой функции ($х_i$), а для итерационного цикла параметрами выступают сами эти функции $(y_i)$. Данное обстоятельство определяет набор возможных вариантов итерационного цикла:
- Вариант, когда возможно достижение искомой функции, то есть точное решение задачи.
- Вариант, когда достижение искомой функции невозможно, то есть определяется некоторое приближение к точному итогу.
Итерационным циклом с точным решением является процесс вычислений, который позволяет достичь (или превысить) значение функции, подлежащее определению.
Итерационным циклом, дающим приближённое решение, является процесс вычислений, при котором достижение искомого значения функции не представляется возможным, а возможно лишь приближение с некоторой погрешностью.
Программирование итерационного цикла
Существуют следующие методы определения значения функции итерационного цикла:
- При помощи аргумента.
- При посредстве рекуррентных вычислений.
При вычислении значения функции с применением аргумента, осуществляется вычисление текущего значения функции по формуле, равнозначной применяемой в арифметических циклах:
$y_i = f(x_i)$.
Принципиальным отличием является интервал значений, в котором меняется аргумент ($x_i$). Перед началом вычислений задаётся только его начальное значение:
$x_i = x_н (i = 1)$.
Стандартное правило, по которому изменяется аргумент, остаётся прежним, то есть
$x_i = f(x_i -1 ) (i = i + 1)$,
но не задаётся его конечное значение $x_k (N)$. Остановку увеличения значения аргумента ($x_i$) определяет не сам аргумент, а вычисленная величина функции ($y_i$), когда она становится равной (yгр). Таким образом, условием окончания выполнения цикла является выражение:
$y_i$ ≤ yгр или $y_i $ ≥ yгр.
При рекуррентных вычислениях выполняется определение текущей величины функции способом последовательных приближений. В математическом формате: $y_i = f(y_i-1)$,
следует предписание, требующее определять последующие величины функции через предыдущие.
Возможны следующие варианты выполнения этого процесса вычислений:
- Интервал изменения значения i является конечным.
- Интервал изменения значения i является бесконечным.
Для первого варианта процесс движется к известной заранее (то есть достижимой) итоговой величине функции (yгр). То есть интервал изменений циклического параметра i определяется зависимостью:
$1 £ i £ N$.
Это означает, что процесс рекуррентных вычисления является точным.
При втором варианте процесс устремляется к точной величине функции, достичь которое невозможно $y_i$ → yист. В этом процессе необходимо, чтобы параметр $i$ менялся в интервале от одного до бесконечности. Указанное условие изменений циклического параметра i является технически невозможным к исполнению. Поэтому завершение процесса решения осуществляется при определённой величине $i$, которая обеспечивает требуемый уровень точности (e) приближения к недостижимому значению функции. То есть процесс рекуррентных вычислений, в данном случае, является приближённым. Но поскольку в реальности точная искомая величина функции yист неизвестна, то требуется его замена на фактически допустимое. В качестве такого условно истинного значения можно применять последнюю текущую величину yi. В этом случае имеется возможность получения реальной оценочной зависимости остановки вычислительного процесса путём сравнения значения функции с предыдущей величиной:
$│ y_i – y_i - 1│≤ ɛ$ или $│ y_i – y_i -1│≥ ɛ$.
В дополнение к приведённой классификации, возможно деление итерационных циклов по характеру результатов на:
- Циклы со сходящимися параметрами.
- Циклы с расходящимися параметрами.
Сходящимся итерационным циклом является процесс, в котором величины текущих компонентов, формирующих функцию, становятся меньше по модулю.
Расходящимся итерационным циклом является процесс, в котором величины текущих компонентов, формирующих функцию, возрастают по модулю. Следует заметить, что такие процессы считаются допустимыми только для итерационных циклов, имеющих точное решение.
Обязательным условием итерационных циклов, имеющих приближённое решение, является сходящийся вычислительный процесс.
Количество повторных выполнений итерационного цикла подчиняется выражению:
$N = f(y_i)$,
Здесь $N$ является количеством повторений, а $y_i$ является результатом вычислений, выполненных в теле цикла.
Рассмотрим пример формирования алгоритма, позволяющего вычислить бесконечную сумму:
Рисунок 1. Пример формирования алгоритма, позволяющего вычислить бесконечную сумму. Автор24 — интернет-биржа студенческих работ
при заданной точности $ɛ$, то есть для этой бесконечной последовательности с чередованием операционных знаков необходимая точность будет считаться достигнутой, если после выполнения очередного суммирования результат будет по абсолютной величине меньше $ɛ$.
Определение суммы является стандартной циклической задачей. Но данная задача отличается тем, что количество сложений, то есть количество повторных выполнений тела цикла, заранее не определено. По этой причине циклический процесс должен быть завершён при достижении необходимой точности. При формировании алгоритма следует учитывать чередование знаков слагаемых, и что степень символа x в числителе слагаемого непрерывно растёт.
Оптимальной является организация вычислений таким образом. Обозначим числитель слагаемого символом $p$, тогда очевидно, что следующее слагаемое будет иметь числитель $-р • х$ (знак минус подразумевает чередование $у$ слагаемых знаков), а непосредственно слагаемое $m$ равняется $p / i$, где $i$ является номером слагаемого. Блок-схема алгоритма выполнения данного цикла представлена на рисунке ниже:
Рисунок 2. Блок-схема алгоритма. Автор24 — интернет-биржа студенческих работ