Если в ячейку Excel введена формула, содержащая ссылку на эту же самую ячейку (может быть и не напрямую, а опосредованно – через цепочку других ссылок), то говорят, что имеет место циклическая ссылка (цикл). На практике к циклическим ссылкам прибегают, когда речь идет о реализации итерационного процесса, вычислениях по рекуррентным соотношениям и т.п. В обычном режиме Excel обнаруживает цикл и выдает сообщение о возникшей ситуации, требуя ее устранения. Excel не может провести вычисления, так как циклические ссылки порождают бесконечное количество вычислений. Есть два выхода из этой ситуации: устранить циклические ссылки или допустить вычисления по формулам с циклическими ссылками (в последнем случае число повторений цикла должно быть конечным).
Рассмотрим задачу нахождения корня уравнения методом Ньютона с использованием циклических ссылок. Возьмем для примера квадратное уравнение: х2 – 5х + 6 = 0, графическое представление которого приведено на рис. 4. Найти корень этого (и любого другого) уравнения можно, используя всего одну ячейку Excel.
Для включения режима циклических вычислений в меню «Сервис» -> «Параметры» -> «Вычисления» включаем флажок «Итерации», при необходимости изменяем число повторений цикла в поле «Предельное число итераций» и точность вычислений в поле «Относительная погрешность» (по умолчанию их значения равны 100 и 0,0001 соответственно). Кроме этих установок выбираем вариант ведения вычислений: «автоматически» или «вручную». При автоматическом вычислении Excel выдает сразу конечный результат, при вычислениях, производимых вручную, можно наблюдать результат каждой итерации.
![]() |
Выберем произвольную ячейку, присвоим ей новое имя, скажем – Х, и введем в нее рекуррентную формулу, задающую вычисления по методу Ньютона:
= X − F(X)/ F1(X),
где F и F1 задают соответственно выражения для вычисления значений функции и ее производной.
Например, для ячейки F3 выражение будет следующим
=F3-((F3*F3-5*F3+6)/(2*F3-5)).
Для нашего квадратного уравнения после ввода формулы в ячейке появится значение 2, соответствующее одному из корней уравнения (рис. 4). В нашем случае начальное приближение не задавалось, итерационный вычислительный процесс начинался со значения, по умолчанию хранимого в ячейке Х и равного нулю.
Как получить второй корень? Обычно это можно сделать изменением начального приближения. Решать проблему задания начальных установок в каждом случае можно по-разному. Продемонстрируем один прием, основанный на использовании функции ЕСЛИ. С целью повышения наглядности вычислений ячейкам были присвоены содержательные имена (рис. 5).
![]() |
• В ячейку Хнач (В4) записываем начальное приближение – 5;
• В ячейку Хтекущ (С4) записываем формулу:
=ЕСЛИ(Хтекущ=0;Хнач; Хтекущ-(Хтекущ^2-5*Хтекущ+6)/(2*Хтекущ-5)).
• В ячейку D4 помещаем формулу, задающую вычисление значения функции в точке Хтекущ, что позволит следить за процессом решения.
• Заметьте, что на первом шаге вычислений в ячейку Хтекущ будет помещено начальное значение, а затем уже начнется счет по формуле на последующих шагах.
• Чтобы сменить начальное приближение, недостаточно изменить содержимое ячейки Хнач и запустить процесс вычислений. В этом случае вычисления будут продолжены, начиная с последнего вычисленного значения. Чтобы обнулить значение, хранящееся в ячейке Хтекущ, нужно заново записать туда формулу. Для этого достаточно выбрать ячейку Хтекущ, содержащую формулу, и нажать сначала «F2», а затем «Enter».