1.35
练习 1.35 请证明黄金分割率 (1.22节)是变换 的不动点。请利用这一事实,通过过程 fixed-point 计算出的值。
所谓不动点,是指在某一点上,某一函数的值不变。即数 x 称为函数 f 的不动点,如果 x 满足方程 f(x) = x。 而所谓黄金分割率 ,是指它满足如下方程:
即
令 ,要找出不动点,可以通过从某个初始猜测出发,反复地应用 f:
f(x), f(f(x)), f(f(f(x))), ...
直到值的变化不大时,就可以找到它的一个不动点。
(define tolerance 0.00001)
(define (fixed-point f x)
(define (close-enough? v1 v2)
(< (abs (- v1 v2)) tolerance))
(define (iteration f x)
(if (close-enough? x (f x))
x
(iteration f (f x))))
(iteration f x))
(fixed-point (lambda (x) (+ 1 (/ 1 x))) 0.5)