首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SICP 锻炼 (2.15)解决摘要:深入思考间隔误差

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

作者头像
全栈程序员站长
发布2022-07-05 19:46:49
发布2022-07-05 19:46:49
2850
举报

大家好,又见面了,我是全栈君

SICP 2.15 是接着 题目 2.14 的, 题目 2.14中提到了Alyssa设计的区间计算模块在并联电阻计算时会出现故障,这个问题是Lem发现的。

接着,一个叫Eva的人也发现了这个问题。同一时候她还有更深入的思考。

Eva认为。假设一个公式能够写成一种形式,当中具有非准确性的变量不反复出现。那么Alyssa的系统产生的区间的限界会更紧一些。

因此,她认为在计算并联电阻时,公式“1/(1/R1 + 1/R2)”比公式“(R1*R2)/ (R1 + R2)”要更好一些。

题目要求我们去看看Eva说的对不正确。

要理解题目的意思有点困难。主要是不知道这里的“具有非准确性的变量”什么意思。

只是我们能够依据我们在习题2.14中观察到的现象来做一个直观的判断。

我们在习题2.14中发现,Alyssa的区间除法会出现故障。两个区间相除会扩大误差。

只是,一个值得注意的是。实现公式“1/(1/R1 + 1/R2)”时Lem定义了一个叫one的区间,值是(1 1)。这是一个确定区间。没有误差。在区间除法中使用它是不会带来误差扩大的问题的。

比方one/(100 200)。就是

(1 1) / (100 200)

=> (1 1) * (1/100 1/200)

=> (1/100 1/200)

进一步计算one / (one / (100 200))的话,就是

(1 1) / (1/100 1/200)

(1 1) * (100 200)

(100 200)

也就是说,假设我们有定义区间one为(1 1),那么one/(one/A)还是A,不会带来区间误差变大的问题。

所以,就如题目2.15提到的,使用了one的程序part2是一个比較好的程序。

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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117713.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档