计算机程序的构造和解释 练习题1.35

题目的变换可以理解为求解方程,证明过程如下:
x = 1 + 1 / x x 2 = x + 1 x 2 − x − 1 = 0 x=1+1/x\\x^2=x+1\\x^2-x-1=0\\ x=1+1/xx2=x+1x2x1=0
根据求根公式
a x 2 + b x + c = 0 x = − b ± b 2 − 4 a c 2 a ax^2+bx+c=0\\x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} ax2+bx+c=0x=2ab±b24ac
求得x等于
x = 1 ± 5 2 ≈ 1.618 x=\frac{1\pm\sqrt{5}}{2}\approx1.618 x=21±5 1.618
然后程序实现过程

#lang racket
(define (fixed-point f first-guess)
  (define (close-enough? v1 v2)
    (< (abs (- v1 v2)) 0.000001))
  (define (try guess)
    (let ((next (f guess)))
      (if (close-enough? guess next)
          next
          (try next))))
  (try first-guess))

(define (golden-section x)
  (fixed-point(lambda (y) (+ 1 (/ 1 y))) x))

(golden-section 1.5)

运行结果

1.618033813400125
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值