5. Суммирование по Кахану.
Алгоритм Кахана — метод компенсации ошибок округления при суммировании последовательности чисел с плавающей точкой. Он использует дополнительную переменную для отслеживания потерянных младших разрядов.
Алгоритм:
- Инициализация:
sum = 0.0 (текущая сумма),
c = 0.0 (компенсация — накопленная ошибка). - Для каждого элемента x:
y = x - c (включаем предыдущую ошибку),
t = sum + y (новая промежуточная сумма),
c = (t - sum) - y (вычисляем ошибку округления),
sum = t.
Принцип работы:
- Переменная c захватывает погрешность округления на каждом шаге: c ≈ (sum + y) - sum - y (разница между фактически добавленным значением и идеальным y).
- На следующей итерации эта погрешность вычитается из нового x, компенсируя предыдущую ошибку.