浮点数的最佳中点公式是什么?

2024-04-27

第一个公式

m = (a + b) / 2

简单,但是存在很大的溢出风险。除了,数值分析,第 9 版伯登和费尔斯指出

当 b - a 接近机器的最大精度时,(a + b) / 2 有可能返回一个在区间 [a, b] 中不均匀的中点。

尽管没有提供进一步的解释。

第二个

m = a + (b - a) / 2

也是正确的,溢出的可能性较小。但对于浮点数,a 和 b 的值几乎相等可能会导致意义丧失。

那么,在实践中哪个公式更好呢?此外,对报价声明的解释将不胜感激。


简单的(a+b)/2也许并不像您想象的那样容易溢出 - 对于 IEEE 754 双精度,至少其中一个操作数必须至少为 8.988e307(最大有限值 1.788e308 的一半)a+b溢出。而且,如果不溢出的话正确舍入(同样,对于 754)因为最多进行一次运算(除法(可能)仅对小于 4.450e-308 的数字进行舍入(降至绝对最小值 5e-324),并且没有结果接近 0 的加法永远循环)。既然它是正确舍入的,它当然不能在 [a,b] 因为其中至少有一个更接近真实值。

如果你可能溢出,至少你的一个值非常大,所以你可以使用a/2+b/2,然后也被正确舍入(因为每个除法都是精确的或不相关的)。这当然又是一种浮点运算。

有一个警告是舍入模式这些公式可能会产生意外的溢出或下溢,但这不是一个常见问题。

As for a+(b-a)/2,如果出现溢出,情况同样糟糕a and b可能有不同的迹象。然而,它并不存在“意义丧失”的担忧:虽然relative大近似值的小差异的误差当然可能非常大,这样的操作总是exact就精确的浮点输入值而言,因此不会造成任何此类计算中固有的任何数值问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浮点数的最佳中点公式是什么? 的相关文章

  • error RC2108: expected numerical dialog constant

    在我们用图形控件Picture Control在对话框上添加图片是 xff0c 经常会出现error RC2108 expected numerical dialog constant 解决方法 xff1a 双击error rc2018 打
  • 为什么Matlab和Octave中inv()和pinv()的输出不相等?

    我注意到如果 A 是一个 NxN 矩阵并且它有逆矩阵 但是 inv 和 pinv 函数输出的内容是不同的 我的环境是Win7x64 SP1 Matlab R2012a Cygwin Octave 3 6 4 FreeMat 4 2 看看 O
  • UMFPACK 和 BOOST 的 uBLAS 稀疏矩阵

    我在数字代码中使用 Boost 的 uBLAS 并有一个 重型 求解器 http www crystalclearsoftware com cgi bin boost wiki wiki pl LU Matrix Inversion 该代码
  • 二分法(数值分析)

    在找到每个根之前需要进行多少次递归 另外 哪些是根 这是我的代码 e 0 000001 f1 x 14 x exp x 2 12 exp x 2 7 x 3 20 x 2 26 x 12 a 0 c 3 while abs c a gt e
  • 如何在matlab中计算指数而不得到inf?

    标题说明了一切 我想在 matlab 中计算一个大数字的指数 但我得到了溢出 它只返回无穷大 gt gt 100 1000 ans Inf 上次我检查时 100 1000 明显小于无穷大 正如 Daniel 已经指出的那样 这个数字太大了
  • 寻找相近浮点数之间的“离散”差异

    假设我有两个浮点数 x and y 他们的价值观非常接近 计算机上可以表示离散数量的浮点数 因此我们可以按升序枚举它们 f 1 f 2 f 3 我希望找到距离x and y在此列表中 即它们是 1 2 3 还是n离散步骤分开 是否可以仅使用
  • 对于大 n,java.lang.Math.pow(x, n) 的准确/精确度如何?

    我想计算一下 1 0 p n其中 p 是 0 到 1 之间的双精度值 通常非常接近 0 n 是一个正整数 可能约为数百或数千 可能更大 我还不确定 如果可能的话我想只使用Java的内置java lang Math pow 1 0 p n 为
  • 在傅立叶插值的上下文中返回函数的“传统”符号

    在数值分析中 我们学生有义务在 R 中实现代码 给定函数 f x 找到其傅立叶插值 tN x 并计算插值误差 f x t N x int 0 2 pi f x t N x 2 或各种不同的 N 我首先尝试根据以下公式计算 d 系数 d fr
  • 数字模式匹配

    我正在研究的一个项目需要一些数字模式匹配 我的搜索没有找到很多相关的结果 因为大多数结果往往都是围绕文本模式匹配的 我们的想法是 我们需要监视某些波浪模式 并尝试将传入的数据与我们将要构建的波浪数据库进行匹配 这是我们需要匹配的波形之一的示
  • 求解积分极限

    我需要以数值方式找到积分的极限 并知道该积分的结果 我需要解决的是 正如你所看到的 这是不完整的 beta 函数 我知道a b and c 积分极限来自0 to x 我需要找到x The fzero函数可以求解各种非线性方程 首先 计算不完
  • Redis SortedSet:当两个值具有相同分数时,如何按数字顺序而不是按字母顺序获取值?

    最近 我使用redis SortedSet来为每个用户实现游戏排名 但我遇到了一个问题 zadd game rank 55 6435 zadd game rank 55 6088561 zadd game rank 55 608825 zr
  • 数值求解非线性方程

    我需要解决 Java 程序中的非线性最小化 N 个未知数的最小残差平方 问题 解决这些问题的常用方法是莱文伯格 马夸特 http en wikipedia org wiki Levenberg Marquardt algorithm算法 我
  • 具有椭圆积分和贝塞尔函数的 Java/Scala 数学库?

    我正在寻找一个用于科学计算的数学库 以便在 Java Scala 中使用 特别是我需要完整的椭圆积分和修正的贝塞尔函数 如果它是开源的 我会很高兴 但我想我将不得不采用那里的任何东西 替换 scipy 用于科学计算的 python 库 会很
  • 按数字和字母顺序对带有字母的数字进行排序

    我的网站上有一个数据库 其中有一长串 产品 全部包含字母 例如 TC 345 TC 234 或 HC 236W 123 234 PWD 我们可以按数字和字母顺序对网站上的 进行排序吗 目前我们按字母顺序存储 因此顺序为 10 PDW 100
  • JavaScript 有双浮点数精度吗?

    我知道这是一个奇怪的问题 但是 JavaScript 是否有能力处理双精度浮点数而不是单浮点数 64 位浮点数与 32 位浮点数 JavaScript 中的所有数字都是 64 位浮点数 Ref http www hunlock com bl
  • 给定一个数字系列,找到校验位算法......?

    假设我有一系列索引号 其中包含检查数字 http en wikipedia org wiki Check digit 如果我有足够公平的样本 例如 250 个样本索引号 我是否有办法提取用于生成校验位的算法 我认为至少应该有一种编程方法来找
  • Java中的信号处理库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想计算时间序列的功率谱密度 进行一些带通 低通和高通滤波 也许还有其他一些基本的东西 有没有一个不错的开源 Java 库可以做到这一点
  • MATLAB 的“SIGMA 必须是对称且正定”错误有时没有意义

    我不确定这是一个编程问题还是统计问题 但我 99 确定应该存在一个数字问题 因此也许可以提出一个程序化的解决方案 我正在使用 MATLAB mvnpdf 函数来计算一些观测值的多元高斯 PDF 我经常收到 SIGMA 必须是对称且正定的 错
  • Java 的 QP 求解器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 用定点迭代求解该方程

    我怎样才能解这个方程 x3 x 1 0 使用定点迭代 有没有定点迭代我可以在网上找到代码 尤其是Python 吗 Using scipy optimize fixed point http docs scipy org doc scipy

随机推荐

  • 如何将“-ddump-minimal-imports”与堆栈一起使用

    我是 stack 的忠实粉丝 我已经从我的机器中完全删除了任何独立的 cabal 和 ghc 可执行文件 让 stack 在它自己神秘的 stack 目录中安装它需要的任何东西 但是 看起来有些标志在堆栈下无法正常工作 例如 我想使用 dd
  • 在 Pandas 中使用多重索引时显示所有索引值

    我希望在查看我的 DataFrame 时 我将看到 multiIndex 的所有值 包括当后续行对于其中一个级别具有相同索引时 这是一个例子 arrays 20 50 20 20 N A N A 10 30 tuples list zip
  • Excel VBA 中的 TypeName 返回什么?

    我想检查一下数据类型 Cells 2 1 Value即 这里有什么 以下 我尝试了名称 整数 长整型等 但似乎不接受 If TypeName Cells r 1 Value WHAT GOES HERE Then MsgBox Yes El
  • 多列条件计数 SQL

    我正在尝试计算连续 4 个单独列中的不同条目 然后对结果求和 例如 表头看起来类似于 ID Col1 Col2 Col3 Col4 每列 保存 ID 可以有一个文本值 W X Y 或 Z 列可以有相同的值 我想做的是找出一种方法来计算列中的
  • Java OS X Lion 关于菜单

    我正在尝试覆盖 OS X Lion 上的 Java 应用程序或 Leopard 及以上版本中的任何内容中的 关于 菜单 我怎么做 到目前为止 我读过的教程似乎不是最新的 一些类不再在 Java Mac SDK 中 其他类的事件也没有被触发
  • numpy 中 Float16 比 Float32 和 Float64 慢得多[重复]

    这个问题在这里已经有答案了 我试图运行一个代码片段 看起来像 import numpy as np import time def estimate mutual info X neurons bins 5 xy np histogram2
  • 将json文件插入mongodb

    我是 MongoDB 新手 在 Windows 中安装 MongoDB 后 我尝试使用以下命令插入一个简单的 json 文件 C gt mongodb bin mongoimport db test collection docs lt e
  • 如何将 Windows 窗体控件设置为只读?

    时隔很长一段时间回到VS2008中的WinForms 修补VS2008 Express版中的一个OOD问题 我需要一些控件作为 仅显示 小部件 用户不应该能够更改这些控件的值 小部件通过定期更新刻度事件进行更新 我依稀记得有一个 ReadO
  • 通过列表搜索

    我一直在尝试定义一个函数 给定一个整数列表和一个整数 n 返回一个布尔值 指示 n 是否在列表中恰好出现一次 我有这个 但它不起作用 我无法弄清楚 once a gt a gt Bool gt Bool filter filter p x
  • 如何填充剩余高度的100%?

    1 2
  • 列出 git 标签名称、日期和消息

    如何列出所有标签的标签名称 标签日期和标签消息 看来 git 通过以下方式分离了提交的显示逻辑git log并通过标签git tag使得列出标签名称 标签日期和标签消息变得困难 我可以显示标签日期 姓名和提交消息 using git log
  • bcrypt 中的盐的要点

    抱歉 如果这是一个愚蠢的问题 我只是想知道 bcrypt 中的盐有什么意义 我的意思是 如果您有以下用于从密码创建哈希的代码 function generateSalt salt 2a 13 salt salt 11111111111111
  • iOS 在应用程序内注册推送通知

    Q1 我必须在应用程序启动时执行此操作吗 或者我可以在应用程序中的任何时候触发允许 不允许的提示吗 Q2 有没有办法查明用户是否单击了是 否 打回来 Q3 如果用户已经单击 否 在之前的会话中 我的提示实际上会触发吗 或者我是否需要告诉用户
  • “sed” 在文件中插入反斜杠

    Tool Windows 版 Git Bash Problem 尝试在目录中每个文件的顶部插入文本 connectcentral Code for f in DIR sql do sed i 1i connect central f don
  • iPhone:跳转到uitableview中的下一个uitextfield,如何?

    在我的 iPhone 项目中 我使用 UITableview 和包含 UITextfields 的 UITableViewCells 我在许多应用程序中看到 可以使用下一个按钮跳转到下一个单元格中的下一个文本字段 实现这一目标的最佳方法是什
  • 诊断 Mac OS X 上的堆碎片?

    我正在编写的核心基础应用程序似乎消耗的内存比我实际分配的内存多 根据活动监视器中的 真实内存 计数 我已通过 Instruments 中的 实时字节分配 视图确认我的实际分配符合我的预期 大约 10MB 但活动监视器中的 真实内存 计数显示
  • 轻松安全AppiumService

    我是 Appium 新手 我想使用 Appium 和 C 执行一些 ADB 命令 执行 adb shell ps 的示例 Dictionary
  • 如何延迟forkJoin

    你会怎样拖延 forkJoin 在 rxjs 中 这是我已经拥有但想使用的delay https www learnrxjs io operators utility delay html运营商用那个 return forkJoin thi
  • iOS 内存警告发送到已释放的 UIViewController

    我有奇怪的行为 我的应用程序正在启动UINavigationController 如果我推视图控制器ANavigationController 返回并模拟内存警告一切正常 如果我推相同的视图控制器 ANavigationController
  • 浮点数的最佳中点公式是什么?

    第一个公式 m a b 2 简单 但是存在很大的溢出风险 除了 数值分析 第 9 版伯登和费尔斯指出 当 b a 接近机器的最大精度时 a b 2 有可能返回一个在区间 a b 中不均匀的中点 尽管没有提供进一步的解释 第二个 m a b