博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛顿法求平方根及习题1.6-1.8
阅读量:5062 次
发布时间:2019-06-12

本文共 1201 字,大约阅读时间需要 4 分钟。

  • 牛顿法求平方根:用需要求平方根的数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

  • 习题1.6与1.7在与得到了很好的解释。习题1.6中的问题出在应用序求值时,将表达式带入new-if中时,已经对所有分支进行了求值,而不像if中,只有条件表达式为真时,才求分支。习题1.7因为其精度不够,可以采用猜测值比例的方式判断。
  • 习题1.8

(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

你可能感兴趣的文章
F# 编程 借助 F# 构建 MVVM 应用程序
查看>>
ACFUN切换代码自用。。。
查看>>
网卡流量检测.py
查看>>
【转】Android的权限permission
查看>>
go语言从零学起(一) -- 文档教程篇
查看>>
web自动化框架抽取示例【Java+selenium】
查看>>
django-session与分页
查看>>
水电费了
查看>>
H5图像遮罩-遁地龙卷风
查看>>
android 中 unable to start service 错误解决方法
查看>>
cgi+perl+ajax初探
查看>>
关于viewport
查看>>
C# 抓取页面table数据并分析到数据库
查看>>
Linux让应用只在特定桌面环境下自动启动
查看>>
在Codeplex发布ClickOnce应用程序
查看>>
ajax
查看>>
poj1981 Circle and Points 单位圆覆盖问题
查看>>
POP的Stroke动画
查看>>
线程同步机制初识 【转载】
查看>>
屏蔽各类弹窗广告(WPS、智能云输入法)
查看>>