SICP 锻炼 (1.45)解决摘要

SICP 1.45是对前面非常多关于不动点的习题的总结。

题目回想了我们之前在1.3.3节使用的不动点寻找方法。当寻找y -> x/y 的不动点的时候,这个变换本身不收敛。须要做一次平均阻尼才干够。

对于y -> x/(y^2)这个变换也能够通过一次平均阻尼使它变得收敛。

只是一次平均阻尼对于四次方程是不够的,就是说,对y -> x/(y^3)这种变换,一次平均阻尼不足以使它收敛,须要做两次平均阻尼才行。

题目遵从一直以来的抽象原则。要求我们去多做几次測试,找出 y -> x / (y^n)这种变换须要几次平均阻尼。

先看看眼下我们知道的规律,

y -> x/(y^1) 须要1次平均阻尼

y -> x/(y^2) 须要1次平均阻尼

y -> x/(y^3) 须要2次平均阻尼

简单猜得话会不会是须要n/2次平均阻尼呢?

单靠猜当然不行。我们须要測试几次。

为了方便測试,我写了以下这个方案:

(define (n-rt x n try-average-time)
  (fixed-point ((repeat average-damp try-average-time) (lambda (y)  (/ x (fast-expt y (- n 1)) ) )) 1.0))

这样就能够任意指定n次方程和相应的平均阻尼次数。从5次方程開始測试,看看測试结果是否符合我的推測。

測试发现我的推測太不靠谱了。測试发现4,5,6,7次方程都能够通过2次平均阻尼实现收敛。

继续猜得话就猜(lg n)次了,说实话我的数学敏感度还没到一下就往(lg n)次猜得程度,看了自己的非常多次測试结果,结合网上一些同学们的解题过程才定位到(lg n)上的。

当然。这次猜对了。

终于我写的方法例如以下:

(define (final-n-root x n)
  (define (nth-root n)
    (n-rt x n (lg n)))
  (nth-root n))

以上方法调用了之前定义的用于測试的n-rt过程,仅仅是简单的使用(lg n)需要计算阻尼的平均数量。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

时间: 2024-08-28 23:12:34

SICP 锻炼 (1.45)解决摘要的相关文章

SICP 锻炼 (1.40)解决摘要

SICP 锻炼1.40 是一个休闲的工作非常easy,但它看起来很复杂,单的一道题. 题目原题例如以下: 请定义一个过程cubic, 它和newtons-method过程一起使用在以下形式的表达式里: (newtons-method (cubic a b c) 1) 能逼进三次方程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2V5Ym9hcmRPVEE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d

SICP 锻炼 (2.15)解决摘要:深入思考间隔误差

SICP 2.15 是接着 题目 2.14 的, 题目 2.14中提到了Alyssa设计的区间计算模块在并联电阻计算时会出现故障,这个问题是Lem发现的. 接着,一个叫Eva的人也发现了这个问题.同一时候她还有更深入的思考. Eva认为.假设一个公式能够写成一种形式,当中具有非准确性的变量不反复出现.那么Alyssa的系统产生的区间的限界会更紧一些. 因此,她认为在计算并联电阻时,公式"1/(1/R1 + 1/R2)"比公式"(R1*R2)/ (R1 + R2)"要

SICP 练习 (2.9)解决摘要:宽度和区间运算的关系间隔

SICP 2.9 像是一个数学题,要我们证明区间的和与差的宽度是被加和被减的区间的宽度的函数,而对于乘法和除法来说不成立. 书中所谓宽度就是区间起点和终点差的一半.以我看来更像是区间宽度的一半.无论怎么样.差点儿相同是一个意思. 假设你把区间看成是一个线段的话,所谓宽度应该就是起点和终点的差.假设一定要把宽度的一半记作是宽度也无所谓的. 证明区间的和的宽度是被加区间的宽度的函数这一点是比較easy证明的.看以下的证明步骤: 假设有区间1是(a1 b1),还有区间2是(a2 b2), 那么区间1的

SICP 习题 (1.45)解题总结

SICP 习题 1.45是对前面很多关于不动点的习题的总结. 题目回顾了我们之前在1.3.3节使用的不动点寻找方法,当寻找y -> x/y 的不动点的时候,这个变换本身不收敛,需要做一次平均阻尼才可以. 对于y -> x/(y^2)这个变换也可以通过一次平均阻尼使它变得收敛. 不过一次平均阻尼对于四次方程是不够的,就是说,对y -> x/(y^3)这样的变换,一次平均阻尼不足以使它收敛,需要做两次平均阻尼才行. 题目遵从一直以来的抽象原则,要求我们去多做几次测试,找出 y -> x

WebApi学习总结系列第四篇(路由系统)

由于工作的原因,断断续续终于看完了<ASP.NET Web API 2 框架揭秘>第二章关于WebApi的路由系统的知识. 路由系统是请求消息进入Asp.net WebApi的第一道屏障,其根本目的利用注册的路由表对请求的URI进行解析以确定目标HttpController和Action的名称,以及与某个Action方法某个参数进行绑定的路由变量. Asp.net webApi中的路由系统和Asp.net中的路由系统很相似,也有Route,只是WebApi的路由系统又独立于Asp.net的路由

大数据常见错误

1.用./bin/spark-shell启动spark时遇到异常:java.net.BindException: Can't assign requested address: Service 'sparkDriver' failed after 16 retries! 解决方法:add export SPARK_LOCAL_IP="127.0.0.1" to spark-env.sh 2.java Kafka producer error:ERROR kafka.utils.Util

排行榜

排行榜 时间限制: 1 Sec  内存限制: 128 MB提交: 45  解决: 14[提交][状态][讨论版] 题目描述 小迈克尔住在一个小镇上,他喜欢看每周日下午发布的音乐电视评比.它每周都根据选票介绍相同的歌曲,列出这些歌曲的流行排行榜. 有一个星期日迈克尔和他的朋友在一起玩得太久了以致于未能看到新的流行榜.他非常失望,但是不久他就发现下周至少可以部分地建立出流行榜.除了每首歌曲的 位置,排行榜还根据这些歌曲上周的排行列出了它们排行变动的信息,更精确地说,从这周起,不管那首歌是继续排在原位

java关于发送邮件的一些常见问题分享

温馨提示:由于发送邮件次数过多,会被官方标注,以至于邮件会放到垃圾邮箱,测试的小伙伴们注意了! 废话不多说,下面上代码: package com.tpyin.test; import java.util.Properties; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; /** * * @author 执草书云 *发送邮箱测试 *所需jar包 *mail.jar

【HanLP】HanLP中文自然语言处理工具实例演练

HanLP中文自然语言处理工具实例演练 作者:白宁超 2016年11月25日13:45:13 摘要:HanLP是hankcs个人完成一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环境中的应用.HanLP具备功能完善.性能高效.架构清晰.语料时新.可自定义的特点. 在提供丰富功能的同时,HanLP内部模块坚持低耦合.模型坚持惰性加载.服务坚持静态提供.词典坚持明文发布,使用非常方便,同时自带一些语料处理工具,帮助用户训练自己的语料.笔者坚定支持开源的项目,本文初衷是使用自然语言