MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]发现了matlap的一个错误! (https://www.labfans.com/bbs/showthread.php?t=5435)

me4047 2008-11-23 06:03

[求助]发现了matlap的一个错误!
 
[SIZE="4"]各位,
我在编程的过程中发现一个这个问题,如下


>> x=100000000000000000000000000000000000000000000000000001

x =

1.0000e+053

>> y=100000000000000000000000000000000000000000000000000000

y =

1.0000e+053

>> x-y

ans =

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

有办法解决吗?[/SIZE]

zhan 2008-11-23 09:35

回复: [求助]发现了matlap的一个错误!
 
这情况在任何数值软件里边都一样(对于机器也是一样),如果尾数1那么重要的话,建议改成符号运算.这是很基本的数值计算的内容.楼主有空可以看看,估计对你会有很大的帮助.

me4047 2008-11-23 16:35

回复: [求助]发现了matlap的一个错误!
 
[QUOTE=zhan;20452]这情况在任何数值软件里边都一样(对于机器也是一样),如果尾数1那么重要的话,建议改成符号运算.这是很基本的数值计算的内容.楼主有空可以看看,估计对你会有很大的帮助.[/QUOTE]

谢谢先啊!说的我云里雾里的!

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

求教!

zhan 2008-11-23 20:15

回复: [求助]发现了matlap的一个错误!
 
任何计算机表示数都是按二进制进行的,它有一定的位数限制,所以并不是所有的数都可以由计算机表示出来.而具体的,在matlab里,默认数值是double型的.所以,你那个末尾的1matlab是自动舍去的.具体的也不是那么容易说清楚,需要计算机数值表示方面的知识.你可以参阅任何一本数值分析的书,google''数值分析''就能找到很多


所有时间均为北京时间。现在的时间是 11:32

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