Степенныe ряды представленные в виде бесконечных потоков

В разделе 2.5.3 мы увидели, как реализовать систему арифметики многочленов, используя представление многочленов в виде списка термов. Подобным же образом можно работать со степенными рядами (power series), например

3.59_1

представленными в виде бесконечных потоков. Будем представлять последовательность a₀ + a₁x + a₂x² + a₃x³ + ··· как поток, элементами которого являются коэффициенты a₀, a₁, a₂, a₃, ... .

а. Интеграл последовательности a₀ + a₁x + a₂x² + a₃x³ + ··· есть последовательность

3.59_2

где c — произвольная константа. Определите процедуру integrate-series , которая на входе принимает поток a₀, a₁, a₂, ... , представляющую степенной ряд, и возвращает поток a₀, (1/2)a₁, (1/3)a₂, ... коэффициентов при неконстантных членах интеграла последовательности. (Поскольку в результате отсутствует постоянный член, он не представляет собой степенной ряд; при использовании integrate-series мы через cons будем присоединять к началу соответствующую константу.)

б. Функция x → eˣ равна своей собственной производной. Отсюда следует, что и интеграл суть одна и та же последовательность, с точностью до постоянного члена, который равен e⁰ = 1 . Соответственно, можно породить последовательность для через

(define exp-series
  (cons-stream 1 (integrate-series exp-series)))

Покажите, как породить последовательности для синуса и косинуса, опираясь на то, что производная синуса равна косинусу, а производная косинуса равна минус синусу:

(define cosine-series
  (cons-stream 1 <??>))
(define sine-series
  (cons-stream 0 <??>))

Комментарии отсутствуют.

Необходима авторизация

Вы должны авторизоваться для создания комментария.

Вход