From aab9d1bec3f02b2b6fb4be0e3618b9e3f82c7c7f Mon Sep 17 00:00:00 2001 From: Felix Martin Date: Mon, 4 Jan 2021 16:07:00 -0500 Subject: [PATCH] Implement till 3.62 --- ex-3_50-62.scm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/ex-3_50-62.scm b/ex-3_50-62.scm index 0bbf4ae..3bee6df 100644 --- a/ex-3_50-62.scm +++ b/ex-3_50-62.scm @@ -258,8 +258,25 @@ (display "\nex-3.61 - invert-unit-series\n") -(define (invert-unit-series s) 0) +(define (invert-unit-series s) + (cons-stream 1 (mul-series (stream-map - (stream-cdr s)) + (invert-unit-series s)))) +(define X (invert-unit-series cosine-series)) -(display "\nex-3.62\n") +(assert (sum (take 10 (mul-series cosine-series X))) + 1) + +(display "\nex-3.62 - tan\n") + +(define (div-series ns ds) + (if (= (stream-car ds) 0) + (error "denominator is zero -- DIV-SERIES" ds) + (mul-series ns (invert-unit-series ds)))) + +(define tan-series (div-series sine-series cosine-series)) + +(assert (< (abs (- (exact->inexact (sum (take 20 + (div-series sine-series cosine-series)))) + 1.5574)) 0.001) #t)