Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-11-23, 06:03   #1
me4047
初级会员
 
注册日期: 2008-05-27
年龄: 43
帖子: 21
声望力: 17
me4047 正向着好的方向发展
默认 [求助]发现了matlap的一个错误!

各位,
我在编程的过程中发现一个这个问题,如下


>> x=100000000000000000000000000000000000000000000000000001

x =

1.0000e+053

>> y=100000000000000000000000000000000000000000000000000000

y =

1.0000e+053

>> x-y

ans =

0
明明是两个不一样的数相减居然等于0!
不知道是不是matlap的一个小错误,还是我不明白

有办法解决吗?
me4047 当前离线   回复时引用此帖
旧 2008-11-23, 09:35   #2
zhan
初级会员
 
注册日期: 2008-11-22
年龄: 40
帖子: 10
声望力: 17
zhan 正向着好的方向发展
默认 回复: [求助]发现了matlap的一个错误!

这情况在任何数值软件里边都一样(对于机器也是一样),如果尾数1那么重要的话,建议改成符号运算.这是很基本的数值计算的内容.楼主有空可以看看,估计对你会有很大的帮助.
zhan 当前离线   回复时引用此帖
旧 2008-11-23, 16:35   #3
me4047
初级会员
 
注册日期: 2008-05-27
年龄: 43
帖子: 21
声望力: 17
me4047 正向着好的方向发展
默认 回复: [求助]发现了matlap的一个错误!

引用:
作者: zhan 查看帖子
这情况在任何数值软件里边都一样(对于机器也是一样),如果尾数1那么重要的话,建议改成符号运算.这是很基本的数值计算的内容.楼主有空可以看看,估计对你会有很大的帮助.
谢谢先啊!说的我云里雾里的!

看什么对我的帮助很大啊?我还是不知道怎么解决!

求教!
me4047 当前离线   回复时引用此帖
旧 2008-11-23, 20:15   #4
zhan
初级会员
 
注册日期: 2008-11-22
年龄: 40
帖子: 10
声望力: 17
zhan 正向着好的方向发展
默认 回复: [求助]发现了matlap的一个错误!

任何计算机表示数都是按二进制进行的,它有一定的位数限制,所以并不是所有的数都可以由计算机表示出来.而具体的,在matlab里,默认数值是double型的.所以,你那个末尾的1matlab是自动舍去的.具体的也不是那么容易说清楚,需要计算机数值表示方面的知识.你可以参阅任何一本数值分析的书,google''数值分析''就能找到很多
zhan 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[分享][讨论]C++ 快速FFT(rlft3)用于2D处理 149700017 MATLAB论坛 0 2009-02-25 22:47
[求助]SimMechanics的介绍资料 yingjiong86 MATLAB论坛 0 2008-12-07 16:22
[求助]Maple Toolbox for MATLAB - Version 12.01 (for users of version 12.00)谁有啊?谢谢! jamesgump MATLAB论坛 0 2008-11-27 21:11
[求助]SIMULINK中与到小问题了,来看看吧! rong3168 MATLAB论坛 1 2008-11-21 08:21
【文章】仿真动画软件设计作品--电路开闭 yesman MATLAB论坛 0 2007-12-11 16:21


所有时间均为北京时间。现在的时间是 12:47


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.