Exercise 3.61. - 3.62

Excercie 3.61

Exercise 3.61.

べき級数ストリームの逆数を表すストリームを求める問題。

これは本に出てくる数式をそのまま scheme に直せばおk。

(define (invert-unit-series s)
  (stream-cons 1 (scale-streams (mul-series (stream-cdr s)
                                            (invert-unit-series s))
                                -1)))


求める数をぶったぎって

Excercie 3.62

Exercise 3.62.

べき級数ストリームの割り算を求める問題。

逆数を掛ければいいので、

(define (div-series s1 s2)
  (if (= (stream-car s2) 0)
    (error "zero division occured.")
    (mul-series s1 (invert-unit-series s2))))

でいいはず。

tan を作って確かめてみる。
(define tan (div-series sine-series cosine-series))
(define i 0)
(until (= i 10)
        (format #t "~s " (stream-ref tan i ))
        (inc! i))
(format #t "\n")
; => 0 1 0 1/3 0 2/15 0 17/315 0 62/2835

http://homepage3.nifty.com/y_sugi/cf/cf27.htm」 に出ているものと同じ係数になったのでおk。