golden 发表于 2003-8-13 17:12:09

1/(1.4/0.1)-1/14    答案是1.3878e-017可以认为是相等了,用不着那么精确吧,

下天 发表于 2003-8-13 18:32:44

1/(1.4/0.1)-1/14    答案是1.3878e-017可以认为是相等了,用不着那么精确吧

t2=1.4/0.1-14;         --> t2= -1.7764e-015
所以,1:1.4/0.1等价于1:14-1.7764e-015,等价于1:u。(u为大于等于13小于14的实数)

下天 发表于 2003-8-13 18:43:24

btw,该数值陷阱的发现来源于一次数据精细化的过程
当时,我设定步长为step=0.1,数据范围为max=-21;min=-22.4;然后准备求函数在min:step:max上的值,于是用了如下语句:
1:(max-min)/step;
期望得到14个数据点的值,可是程序总是报错;用whos命令一查,发现只有13个数据,这才明白上述语句与1:14不等价。

xzhforward 发表于 2003-8-15 22:54:57

支持

onward 发表于 2003-8-16 06:20:09

xiexie

kissiopo 发表于 2004-6-1 05:55:16

<P>好的</P><P>果然厉害</P><P>我还每遇到过</P><P>不过我以后会想想的</P><P>多谢提醒</P>

blackboy 发表于 2004-6-25 06:06:55

<P>数值计算确实比较复杂</P><P>以后要多加小心了</P><P>谢谢提醒!!</P>

dztboy 发表于 2004-7-5 04:52:19

<P>toby: " 还有就算我是菜鸟,
     不也有笨鸟先飞吗!
    我不会有事的!"</P><P>说的好啊!!向所有自以为是的人笑三笑,笑到最后!!</P><P>祝你成功!不希望一路顺风,但是愿你有精彩人生!
</P>

fanbe82 发表于 2004-8-3 17:09:56

<P>嗯!</P>

海岩秋沙 发表于 2004-8-22 01:44:20

这个是matlab中的数值陷阱!
页: 1 [2] 3
查看完整版本: [原创]MatLab中的数值陷阱