kingsleep 发表于 2007-9-12 17:43

新手问个计算精度的问题

我想问问在matlab中是不是都是以小数来运算的?那这样会不会有误差产生?
比如说
一个问题的实际准确结果应该是x=1/6,但是matlab算出来的是x=0.16665,那这个结果可不可以接受?
如果可以的话,再假如我用这个结果进行后续判断,比如说 if (x*6-1)==0
实际问题中因为x=1/6,所以这个条件是满足的,但是我如果用x=0.16665来判断的话,这个条件是不满足的,这就会导致判断错误,这种情况怎么解决?
困扰我一两天了,烦,:@Q 高手帮帮忙啊.....

[ 本帖最后由 eight 于 2007-9-12 18:25 编辑 ]

eight 发表于 2007-9-12 18:27

原帖由 kingsleep 于 2007-9-12 17:43 发表 http://www.chinavib.com/forum/images/common/back.gif
我想问问在matlab中是不是都是以小数来运算的?那这样会不会有误差产生?
比如说
一个问题的实际准确结果应该是x=1/6,但是matlab算出来的是x=0.16665,那这个结果可不可以接受?
如果可以的话,再假如我用这个结果 ...

matlab 是用小数来计算的,而且计算精度绝对是够用的,不需要进行设置。你见到的 x = 0.16665 只不过是显示时候的精度(简称显示精度),与计算精度无关,如果显示时不进行切割,我看 matlab 十有八九会被投诉。你可以使用 vpa 这个函数来得到任意精度的结果

至于 if (x*6-1) == 0 的问题,请看看 “写给学习 matlab 的新手们” 这个精华帖

kingsleep 发表于 2007-9-12 19:51

多谢....
页: [1]
查看完整版本: 新手问个计算精度的问题