理系学生日記

おまえはいつまで学生気分なのか

問題 3-61 (3.5.2 Infinite Streams)

べき級数にも逆数のような概念がある.べき級数 S の逆元は,SX=1 となるようなべき級数 X である,みたいな感じです.
今,S=1+S_R,つまり S を定数項とそれ以外に分けると,以下のような展開ができます.詳しくは SICP 3.5.2 へ.
X=1-S_R\cdot X
てわけで,これに従えば X を求めることができます.

(define (invert-unit-series S)
  (cons-stream 1 
               (stream-map - (mul-series (stream-cdr S) 
                                         (invert-unit-series S)))))

テスト.

(define exp-series
  (cons-stream 1 (integrate-series exp-series)))
(define X (invert-unit-series exp-series))
(dump-stream (mul-series X exp-series) 10); 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, done