python - Python 下溢应该不太精确
问题描述
我尝试了这个非常简单的代码,通过计算两个函数之间的绝对误差和相对误差来查看 python 下溢:
from pylab import *
n = 2000
x = logspace(-17,-16,n)
y1 = 1/(1+x) - 1/(1-x)
y2 = (-2 *x)/((1+x)*(1-x))
ea = abs(y1 - y2)
er = ea/abs(y2)
loglog(x[ea>0], er[ea>0])
通常下溢应该出现在 x <= 2^-53 但这里他出现在 x <= 2^-54 = 5.55e-17。参看:
我不知道为什么,任何帮助将不胜感激。
解决方案
推荐阅读
- html - 如何垂直对齐不同大小的项目?
- gcc - 几年前构建的编译器,比如 gcc,如何仍然可以为最近发布的处理器编译?
- java - Intellij调试器中“Step Into”和“Force Step Into”的区别?
- django - 无法在 Ubuntu 18.04 上安装 django-import-export
- html - 如何通过 html 表单设置嵌套 formBuilder 组的值
- arrays - Rust jsonrpc-core 将参数作为映射或数组访问
- javascript - 使用对象数组动态生成新数组
- r - 比较 R 中的两个数据帧
- php - wordpress Ajax 调用 php 函数不起作用
- go - 变量的简写声明,涉及已经定义的变量,会分配新的内存吗?