声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1010|回复: 2

[编程技巧] 新手问个计算精度的问题

[复制链接]
发表于 2007-9-12 17:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我想问问在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 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-9-12 18:27 | 显示全部楼层
原帖由 kingsleep 于 2007-9-12 17:43 发表
我想问问在matlab中是不是都是以小数来运算的?那这样会不会有误差产生?
比如说
一个问题的实际准确结果应该是x=1/6,但是matlab算出来的是x=0.16665,那这个结果可不可以接受?
如果可以的话,再假如我用这个结果 ...


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

至于 if (x*6-1) == 0 的问题,请看看 “写给学习 matlab 的新手们” 这个精华帖
 楼主| 发表于 2007-9-12 19:51 | 显示全部楼层
多谢....
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 23:31 , Processed in 0.064901 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表