SICP 习题1.39沿着习题1.37, 1.38的方向继续前行,要求我们依据德国数学家J.H.Lambert的公式定义tan-cf过程,用于计算正切函数的近似值。
J.H.Lambert的公式例如以下:
能够发现,这个和之前的无穷连分式是一样一样的。所不同的就是N是一个变量,不是固定数值。
只是这个已经难不倒我们啦,能够从公式中发现,除了第一个N是x,其他的N都是x平方。
D相应的数值是1,3,5。就是全部奇数,以数字n为下标的话能够通过((n * 2)-1) 得到。
最后直接定义下面过程搞定:
(define (tan-cf x k)
(cont-frac
(lambda (i)
(if (= i 1)
x
(* x x)))
(lambda (i)
(- (* i 2.0) 1))
k))