Потоки частичных сумм и приближений корня
Точные частичные суммы и приближения квадратного корня как отложенные последовательности, из которых берется лишь конечный префикс для сравнения.
Что меняется, когда численная итерация описывает каждое последовательное приближение вместо сокрытия всех промежуточных шагов ради итогового ответа?
- Представление последовательных численных состояний как элементов потока
- Накопление бесконечного потока членов в точные частичные суммы
- Генерация приближений квадратного корня по методу Ньютона без фиксированного цикла итерации
- Запрос конечного префикса с сохранением остального процесса отложенным
- Наблюдение за конечной последовательностью улучшений Ньютона
Процедура alternating-terms описывает 1, −1/2, 1/3, −1/4 и так далее. Процедура partial-sums передает накопленную сумму в отложенный хвост, поэтому каждый элемент потока является повторно используемым приближением к бесконечному знаковопеременному гармоническому ряду. Процедура stream-take вычисляет только пять пар, отображаемых в результате.
Поток sqrt-stream раскрывает каждое улучшение Ньютона для √2. Его точная рациональная последовательность начинается с 1, 3/2, 17/12, 577/408 и 665857/470832. Последующие потребители могут исследовать больше приближений без изменения производителя. Отображаемый префикс фиксирует последовательность улучшений для выбранного начального значения.
- Вывод
- —
- Значение
- —
- Диагностика
- —
Частичные суммы равны (1 1/2 5/6 7/12 47/60). Приближения квадратного корня равны (1 3/2 17/12 577/408 665857/470832).
Считайте операции force вместо представления уже материализованного бесконечного списка. В partial-sums проследите за передачей предыдущей суммы в следующий отложенный шаг. В sqrt-stream отделяйте текущее приближение от формулы, захваченной в promise для следующего приближения.
Измените программу и сравните результат.
Создайте поток частичных сумм обратных квадратов и возьмите шесть значений. Затем напишите потребитель stream-limit, который останавливается, когда два последовательных неточных приближения различаются менее чем на видимый допуск погрешности.
Показать подсказку
Сохраняйте независимость производителя от политики остановки. Потребитель может сравнивать соседние элементы, пока поток сохраняет каждое промежуточное состояние.