Use the results of exercises 3.60 and 3.61 to define a procedure div-series that divides two power series. Div-series should work for any two series, provided that the denominator series begins with a nonzero constant term. (If the denominator has a zero constant term, then div-series should signal an error.) Show how to use div-series together with the result of exercise 3.59 to generate the power series for tangent.
There are no comments yet.
You must log in to post a comment.Login
(define (stream-car stream) (car stream)) (define (stream-cdr stream) (force (cdr stream))) (define (stream-ref s n) (if (= n 0) (stream-car s) (stream-ref (stream-cdr s) (- n 1)))) (define (stream-map proc . list-of-stream) (if (null? (car list-of-stream)) '() (cons-stream (apply proc (map (lambda (s) (stream-car s)) list-of-stream)) (apply stream-map (cons proc (map (lambda (s) (stream-cdr s)) list-of-stream)))))) (define (scale-stream stream factor) (stream-map (lambda (x) (* x factor)) stream)) (define (add-streams s1 s2) (stream-map + s1 s2)) (define (mul-streams s1 s2) (stream-map * s1 s2)) (define (div-streams s1 s2) (stream-map / s1 s2)) (define ones (cons-stream 1 ones)) (define integers (cons-stream 1 (add-streams ones integers))) (define tan-series (div-series sine-series cosine-series)) (check-equal? (stream-ref tan-series 0) 0) (check-equal? (stream-ref tan-series 1) 1) (check-equal? (stream-ref tan-series 2) 0) (check-equal? (stream-ref tan-series 3) 1/3)