1.35

练习 1.35 请证明黄金分割率 ϕ\phi (1.22节)是变换x1+1/xx \mapsto 1 + 1/x 的不动点。请利用这一事实,通过过程 fixed-point 计算出ϕ\phi的值。

所谓不动点,是指在某一点上,某一函数的值不变。即数 x 称为函数 f 的不动点,如果 x 满足方程 f(x) = x。 而所谓黄金分割率 ϕ\phi,是指它满足如下方程:

ϕ2=ϕ+1 \phi^2 = \phi + 1

ϕ=1+1/ϕ \phi = 1 + 1 / \phi

f=1+1/xf = 1 + 1/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)

results matching ""

    No results matching ""