sicp 1.15

利用三角恒等式:sin x = 3sin(x/3) - 4sin(x/3)^3,求值sin x,当x足够小时,sin x = x。

过程如下

 

(define (sine angle)
  (if (<= (abs angle) 0.1)
	  angle
	  (p (sine (/ angle 3.0)))))

(define (p x)
  (- (* 3 x) (* 4 (cube x))))

(define (cube x)
  (* x x x))

 

求值(sine 12.15),p将使用多少次?

12.15 * (1/3)^n <=0.1,解得n>=4.369,所以p将被使用5次

 

求值(sine a),使用的空间是1,步数是log(1/3)(0.1/a)(以1/3为底的对数)

你可能感兴趣的:(SICP)