Программирование итерационных циклов
Пример 6.3.1. Составить описание П-Ф, вычисляющей факториал числа


Описание П-Ф с использованием оператора произведения приведено на рис. 6.3.1.

Рис. 6.3.1. Вычисление факториала числа

Описание П-Ф с использованием итерационного цикла и оператора break приведено на рис. 6.3.2. Обратите внимание на запись условия в операторе while, а именно while 1, что обеспечивает повторение тела цикла до тех пор, пока не выполнится условие n = 1, что приведет к выполнению оператора break и выходу из цикла. ¨


Рис. 6.3.2. Вычисление факториала числа

Пример 3.6.2. Дан вектор v, состоящий из n элементов. Составить П-Ф, определяющую первый элемент этого массива, который удовлетворяет условию


Описание П-Ф приведено на рис. 6.3.3. Эту же задачу можно реализовать с помощью оператора цикла for, что предотвратит «зацикливание», которое может иметь место в П-Ф search при неправильном задании исходных данных (например, при задании



Рис. 6.3.3. Реализация алгоритма примера 6.3.2


Рис. 6.3.4. Реализация алгоритма примера 6.3.2
В двух предыдущих примерах была показана возможность замены оператора while (используемого при программной реализации итерационного цикла) другими конструкциями. Это обусловлено тем, что в этих примерах параметры цикла изменялись по закону арифметической прогрессии. Однако встречаются циклы, параметры которых изменяются по более сложным соотношениям. Особенно это характерно для алгоритмов решения нелинейных уравнений. В примере 6.3.3 рассматривается один из таких алгоритмов – метод последовательных предложений.
Пример 6.3.3. Дано нелинейное уравнение

Необходимо вычислить с точностью


Первоначально исходное уравнение


Затем выбираем начальное значение







Повторяя этот процесс, получаем последовательность чисел

(это оправдывает название – метод последовательных приближений). Возможны два случая.
Случай 1. Последовательность



Случай 2. Последовательность

т.е. не имеет предела, и в этом случае метод не применим.
Приведем условие, являющееся достаточным для сходимости метода последовательных приближений.
Пусть на отрезке



Если при этом выполняется и условие

то итерационный процесс (6.3.3) сходится, а за нулевое приближение можно брать любое

Заметим, что чем меньше величина q в (6.3.4), тем быстрее сходится последовательность




где



Вернемся к уравнению нашего примера и преобразуем его к виду (6.3.2). Получаем




Рис. 6.3.5. Проверка условия (6.3.4)
Из графика видно, что в качестве величины

Для проверки условия (6.3.5) построим график функции





Вывод: метод последовательных приближений для любого

Определим величину


Описание П-Ф, реализующей метод последовательных приближений приведено на рис. 6.3.7. Здесь же показаны вычисленное приближенное значение корня и его проверка. Имя функции




Рис. 6.3.6. Проверка условия (6.3.5)



Рис. 6.3.7. Программная реализация метода
последовательных приближений
Задание 6.3.1. Дано нелинейное уравнение

Составьте П-Ф для вычисления корня уравнения, лежащего в интервале

Задание 6.3.2. Дано нелинейное уравнение

Составьте П-Ф для вычисления двух корней уравнения, лежащих в интервалах [–7, –1] и [2, 12], методом последовательных приближений с точностью 0.001. Для организации итерационного цикла используйте оператор цикла while (см. пример 5.3.3). ?