牛顿法求平方根及习题1.6-1.8

本文详细介绍了牛顿法求平方根的方法,包括定义了改进猜测值、平均值计算、好足够判断等关键步骤,并通过具体示例进行了解释。此外,文章还分析了习题1.6和1.7中应用序求值和判断精度的问题,并提供了改进思路。
  • 牛顿法求平方根:用需要求平方根的数x与猜测值做商,得到的商值与x相加取平均值。用x再次与该平均值做商,商值与x相加求平均值。重复上面步骤。

(define (sqrt-iter guess x)
  (if (good-enough? guess x)
    guess
    (sqrt-iter (improve guess x)
      x)))

;Value: sqrt-iter

(define (improve guess x)
  (average guess (/ x guess)))

;Value: improve

(define (average x y)
  (/ (+ x y) 2))

;Value: average

(define (good-enough? guess x)
  (< (abs (- (square guess) x)) 0.001))

;Value: good-enough?

(define (abs x)
  (if (< x 0) (- x) x))

;Value: abs

  (define (square x) (* x x))

;Value: square

  (define (sqrt x) (sqrt-iter 1.0 x))

;Value: sqrt

(sqrt 9)

;Value: 3.00009155413138

(sqrt (+ 100 37))

;Value: 11.704699917758145

(define (tri-iter guess x)
(if (good-enough? guess x)
guess
(tri-iter (improve guess x)
x)))


(define (improve guess x)
(/ (+ (/ x (square guess)) (* 2 guess)) 3))

(define (good-enough? guess x)
(< (abs (- (tripple guess) x)) 0.001))


(define (abs x)
(if (< x 0) (- x) x))

(define (tripple x) (* x x x))
(define (square x) (* x x))


(define (tri x) (tri-iter 1.0 x))

转载于:https://www.cnblogs.com/Godsake/archive/2013/01/06/2848258.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值