Глава 7. Технология программирования итерационных циклов

Итерационный – циклический процесс, число повторений в котором зависит от результатов счёта в теле цикла и до окончания вычислений не может быть определено.

Принципиальное отличие итерационных циклов от арифметических – величина, используемая в качестве параметра. В арифметических циклах параметрами являются аргументы искомых функций (хi), а в итерационных – сами функции (yi).

Это отличие формулирует возможные варианты итерационных циклов:

искомая функция достижима (решение точное);

искомая функция недостижима (приближенное решение).

Схема возможных вариантов представлена на рис. 7.1:

Глава 7. Технология программирования итерационных циклов - student2.ru

Рис. 7.1. Классификация по точности решения

Итерационный цикл с точным решением – вычислительный процесс, позволяющий достигнуть (превысить) искомое значение функции.

Итерационный цикл с приближенным решением – вычислительный процесс, в котором достигнуть искомое значение функции невозможно, можно лишь приблизиться к нему.

Пути вычисления значений функции итерационного цикла:

· с использованием аргумента;

· рекуррентно.

Графическая интерпретация представлена на рис. 7.2:

Глава 7. Технология программирования итерационных циклов - student2.ru

Рис. 7.2. Организация вычисления функции

Вычисления с использованием аргумента – расчет текущих значений функции по математической зависимости аналогичной используемой в арифметических циклах

yi = f(xi).

Принципиальное отличие – диапазон изменения аргумента (xi) до начала счета задан только одним значением – начальным xi = xн (i = 1). Стандартный закон изменения xi = f(xi-1) (i = i + 1) сохраняется, но не имеет заданного конечного значения xk (N). Прекращение наращивания аргумента (xi) определяется не им самим, а рассчитываемым значением функции (yi) в момент достижения граничного значения (yгр). Следовательно, условие выхода из цикла есть зависимость:

Глава 7. Технология программирования итерационных циклов - student2.ru .

Рекуррентные вычисления – расчёт текущих значений функции методом последовательного приближения. Математическое представление:

yi = f(yi-1),

предписывает нахождение последующих значений функции через предыдущие значения.

В принципе процесс возможен в двух вариантах

диапазон изменения i конечен;

диапазон изменения i бесконечен.

В первом варианте решение стремится к достижимому (заранее известному) конечному значению функции (yгр), определяя диапазон изменения параметра цикла i зависимостью 1 £ i £ N. В этом варианте рекуррентный вычислительный процесс есть процесс точных вычислений.

Во втором – решение стремится к недостижимому точному значению функции ( Глава 7. Технология программирования итерационных циклов - student2.ru ) и процесс требует изменения i в диапазоне от единицы до бесконечности Глава 7. Технология программирования итерационных циклов - student2.ru . Математически сформулированное условие изменения параметра цикла i технически выполнить невозможно. Завершать решение приходится при некотором значении i, обеспечивающем приближёние текущего значения функции к истинному (недостижимому) в соответствии с заданной степенью точности (e).

Глава 7. Технология программирования итерационных циклов - student2.ru .

В этом варианте рекуррентный вычислительный процесс есть процесс приближённых вычислений.

Ввиду того, что на самом деле точное значение искомой функции yист неизвестно, возникает необходимость замены его на реально возможное.

В качестве реально возможного (истинного) предлагается использовать последнее текущее значение yi. Тогда, сравнивая его с предыдущим, можно получить реальную оценочную зависимость прекращения (продолжения) вычислений

Глава 7. Технология программирования итерационных циклов - student2.ru

Дополнительно к рассмотренной классификации итерационные циклы по критерию характер результатов можно разделить на сходящиеся и расходящиеся (рис. 7.3).

Глава 7. Технология программирования итерационных циклов - student2.ru

Рис. 7.3. Классификация по характеру изменения результатов

Сходящийся – итерационный циклический процесс, в котором значения формирующих функцию текущих элементов уменьшаются по модулю.

Расходящийся – итерационный циклический процесс, в котором значения формирующих функцию текущих элементов увеличиваются по модулю.

Графическая интерпретация представлена на рис. 7.4, 7.5.

Глава 7. Технология программирования итерационных циклов - student2.ru

Внимание! Расходящиеся вычислительные процессы допустимы только в итерационных циклах с точным решением.

Сходящиеся вычислительные процессы – обязательное условие итерационных циклов с приближенным решением.

Число повторений итерационного цикла определяется зависимостью

N = f(yi),

где N – количество повторений;

yi – результат вычислений в теле цикла (искомая функция).

Рассмотренные методики позволяют выполнить предмашинную подготовку различных видов задач, реализуемых в виде итерационных циклов. Например, вычисление чисел Фибоначчи, корней нелинейных алгебраических уравнений методом последовательных приближений, расчёт тригонометрических и других трансцендентных функций с помощью численных методов и т. п.

Рассмотрим программирование итерационных процессов на конкретных примерах.

Наши рекомендации