Влияние ошибок округления на итерационный процесс
68. В действительности мы не можем точно осуществить итерационный процесс, и на первый взгляд кажется, что влияние ошибок округления может быть гибельным. Если итерация выполняется, используя -раз-рядную арифметику любого вида, то точность не может неограниченно увеличиваться с ростом к, так как мы используем лишь разрядов для представления компонент.
Это, конечно, верно, но когда мы обращаемся к невязкам, то находим довольно странную ситуацию. Мы показали в § 63, что если, например, использовать плавающую арифметику с накоплением, то невязка, соответствующая первому приближению, почти наверняка должна быть того же порядка, что и невязка, соответствующая правильно округленному решению. Поэтому мы едва ли сможем ожидать, что невязка будет уменьшаться в раз с каждой итерацией, и априори кажется невероятно, что точность последовательных приближений будет устойчиво улучшаться, если невязки остаются приблизительно постоянными. Тем не менее это именно так, и чтобы практический процесс был близок к точному процессу, необходимо при вычислении невязок накапливать скалярные произведения.
Уилкинсон (1963b, стр. 121—126) дал подробный анализ ошибок итерационного процесса в арифметике с фиксированной запятой, используя накопления на всех соответствующих этапах и вычисляя каждый и как блочно-плавающие векторы. Не будем повторять здесь анализа, но так как сам метод важен для последующих глав, опишем его подробно. Соответствующие изменения при использовании плавающего накопления очевидны, но этот процесс в действительности несколько проще.