计算机精度导致各种误差,大数吃小数

如果 p ∗ p^* p∗是p的近似, ∣ p ∗ − p ∣ |p^*-p| ∣p∗−p∣是绝对误差, ∣ p ∗ − p ∣ / ∣ p ∣ |p^*-p|/|p| ∣p∗−p∣/∣p∣是相对误差

舍入误差,就是数据表示精度不足带来的误差

a=0.1234564≈0.123456=fl(a)

b=0.1234546≈0.123455=fl(b)

在上面发生了舍入误差

fl(a)-fl(b)=0.000001

a-b=0.0000018

所以在计算a-b时绝对误差是0.0000008

但是想对误差是0.44

从绝对误差的角度看,差异很小,但是从相对误差的角度来看误差就非常大了

大数吃小数:

如果精度有限可能会发生下面的情况
100000000 + 0.5 = 100000000 100000000+0.5=100000000 100000000+0.5=100000000
100000000 + 0.5 − 100000000 = 0 100000000+0.5-100000000=0 100000000+0.5−100000000=0
( 100000000 + 0.5 − 100000000 ) ∗ 100000000 = 0 (100000000+0.5-100000000)*100000000=0 (100000000+0.5−100000000)∗100000000=0

这和真实结果差了很多,因为精度不够,大数加小数的时候把小数吃掉了,导致后续结果都出现问题,一个办法是交换顺序
100000000 − 100000000 = 0 100000000-100000000=0 100000000−100000000=0
100000000 − 100000000 + 0.5 = 0.5 100000000-100000000+0.5=0.5 100000000−100000000+0.5=0.5
( 100000000 − 100000000 + 0.5 ) − 100000000 = 50000000 (100000000-100000000+0.5)-100000000=50000000 (100000000−100000000+0.5)−100000000=50000000

相关推荐
鹿鹿数模1 小时前
2024年中国研究生数学建模竞赛B题 (WLAN组网吞吐量机理建模+GBDT+LSTM 进阶建模文章)
人工智能·数学建模·lstm
周末不下雨2 天前
2024年研究生数学建模“华为杯”E题——肘部法则、k-means聚类、目标检测(python)、ARIMA、逻辑回归、混淆矩阵(附:目标检测代码)
数学建模·华为·kmeans
小魏冬琅3 天前
MATLAB 在数学建模中的深入应用:从基础到高级实践
数学建模
鹿鹿数模5 天前
2024全国研究生数学建模竞赛(数学建模研赛)ABCDEF题深度建模+全解全析+完整文章
数学建模
蟹堡王首席大厨5 天前
数模方法论-蒙特卡洛法
python·算法·数学建模·matlab·蒙特卡洛
数模竞赛Paid answer5 天前
2016年国赛高教杯数学建模D题风电场运行状况分析及优化解题全过程文档及程序
数学建模·全国大学生数学建模竞赛·高教杯
数模竞赛Paid answer5 天前
2016年国赛高教杯数学建模C题电池剩余放电时间预测解题全过程文档及程序
数学建模·全国大学生数学建模竞赛·高教杯
非常规定义M5 天前
Day30_0.1基础学习MATLAB学习小技巧总结(30)——优化工具箱及
开发语言·人工智能·学习·算法·数学建模·matlab
Jurio.5 天前
【JPCS出版】第二届应用统计、建模与先进算法国际学术会议(ASMA2024,9月27日-29)
大数据·人工智能·深度学习·算法·机器学习·数学建模
RS_数模加油站6 天前
【24华为杯数模研赛赛题思路已出】国赛C题思路丨附参考代码丨免费分享
数学建模·2024华为杯·研究生数模竞赛