Удаление вычисленных корней
48. После того как корень
уже получен, нужно избежать того, чтобы в следующих итерациях получать сходимость к этому корню. Если мы работаем с явным полиномом, то после получения корня а можно точно вычислить полином
. Аналогично, если был получен квадратичный множитель
мы можем вычислить
Этот процесс обычно называется процессом исчерпывания. Заметим из (2.10), что
где
величины из схемы Горнера при
а в обозначениях § 31
На практике полученные корень или квадратичный множитель обычно имеют ошибки, и в процессе исчерпывания возникают дополнительные ошибки. Следовательно, есть опасность, что точность последовательно вычисленных корней будет постоянно уменьшаться, и естественно, что процесс исчерпывания обычно признается чрезвычайно опасным в этом отношении.
В главе 2 работы Уилкинсона (1963b) дан очень детальный анализ этой проблемы, и здесь мы ограничимся изложением главных результатов.
Если перед каждым исчерпыванием итерации продолжались до получения предельной точности для данной точности вычислений, то при условии, что корни вычисляются примерно в порядке увеличения абсолютной величины, происходит только малое последовательное ухудшение. Вообще говоря, точность вычисления корня при итерациях полинома после исчерпывания очень мало уменьшается по сравнению с точностью вычисления корня исходного полинома. С другой стороны, если корни полинома сильно отличаются по абсолютной величине и найдены приближения для одного из больших корней, то проведение исчерпывания перед нахождением значительно меньших нулей может привести к катастрофической потере точности. Это, вероятно, верно, даже если все корни исходного полинома очень хорошо обусловлены, в том смысле, что они не чувствительны к малым изменениям коэффициентов.
Хотя опасность исчерпывания часто преувеличивают, кажется, нет надежных методов, которые обеспечивают в общем случае нахождение корней примерно в порядке возрастания абсолютной величины, и в § 55 мы опишем методы для удаления вычисленных нулей без проведения явного исчерпывания.