博主头像
zzh

ワクワク

1.1.7实例:采用牛顿法求平方根

牛顿法:如果对x的平方根的值有了一个猜测y,我们可以通过求y与x/y的平均值得到一个更接近真实值的猜测值。通过这个方法可以逐步逼近真实值

(define bias 0.0001);;初始设置的允许误差
(define startup-item 1.0);;启动项,作为第一个猜测值(初始值)
(define (sqrt-iter guess x);;一个用来迭代产生更好的猜测值的过程
  (if (good-enough? guess x)
      guess
      (sqrt-iter (improve guess x) x)))
(define (good-enough? guess x);;一个判断猜测值是否足够好的过程
  (< (abs (- (square guess) x)) bias))
(define (improve guess x);;用来改进猜测值的过程
  (average guess (/ x guess)))
(define (square x);;用来取平方的过程
  (* x x))
(define (average x y);;用来求平均的过程
  (/ (+ x y) 2))
(define (sqrt x);;求平方根的过程,启动迭代器
  (sqrt-iter startup-item x))
(sqrt 3);;测试实例
(sqrt 9);;测试实例
;;上述代码可在Racket上运行
1.1.7实例:采用牛顿法求平方根
https://zzhygs.cn/index.php/archives/29/
本文作者 zzh
发布时间 2024-09-15
许可协议 CC BY-NC-SA 4.0
发表新评论