SICP問題3.79
問題3.78のsolve-2ndを一般化し、一般的な二階微分方程式を解くのに使えるようにする
元のsolve-2nd()を解く手続き
(define (solve-2nd a b dt y0 dy0) (define y (integral (delay dy) y0 dt)) (define dy (integral (delay ddy) dy0 dt)) (define ddy (add-streams (scale-stream dy a) (scale-stream y b))) y)
一般化したsolve-2nd手続き
(define (solve-2nd f dy0 y0 dt) (define y (integral (delay dy) y0 dt)) (define dy (integral (delay ddy) dy0 dt)) (define ddy (stream-map f dy y)) y)