![]() |
[求助]发现了matlap的一个错误!
[SIZE="4"]各位,
我在编程的过程中发现一个这个问题,如下 >> x=100000000000000000000000000000000000000000000000000001 x = 1.0000e+053 >> y=100000000000000000000000000000000000000000000000000000 y = 1.0000e+053 >> x-y ans = 0 明明是两个不一样的数相减居然等于0! 不知道是不是matlap的一个小错误,还是我不明白 有办法解决吗?[/SIZE] |
回复: [求助]发现了matlap的一个错误!
这情况在任何数值软件里边都一样(对于机器也是一样),如果尾数1那么重要的话,建议改成符号运算.这是很基本的数值计算的内容.楼主有空可以看看,估计对你会有很大的帮助.
|
回复: [求助]发现了matlap的一个错误!
[QUOTE=zhan;20452]这情况在任何数值软件里边都一样(对于机器也是一样),如果尾数1那么重要的话,建议改成符号运算.这是很基本的数值计算的内容.楼主有空可以看看,估计对你会有很大的帮助.[/QUOTE]
谢谢先啊!说的我云里雾里的! 看什么对我的帮助很大啊?我还是不知道怎么解决! 求教! |
回复: [求助]发现了matlap的一个错误!
任何计算机表示数都是按二进制进行的,它有一定的位数限制,所以并不是所有的数都可以由计算机表示出来.而具体的,在matlab里,默认数值是double型的.所以,你那个末尾的1matlab是自动舍去的.具体的也不是那么容易说清楚,需要计算机数值表示方面的知识.你可以参阅任何一本数值分析的书,google''数值分析''就能找到很多
|
所有时间均为北京时间。现在的时间是 11:32。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.