【发布时间】:2014-01-26 06:13:29
【问题描述】:
在这个问题中,我正在解决 matlab 中的数值计算问题,并希望获得经验如何在未来避免这些问题/错误
例如让我们考虑以下简单代码
t = 0.4 + 0.1 - 0.5
t =
0
效果很好,但是
u = 0.4 - 0.5 + 0.1
u =
2.7756e-17
当然记住它也是0,但是为什么不是第一次计算得到相同的结果?或者有什么不同?也请看
v = (sin(2*pi) = = sin(4*pi))
v = (sin(2*pi)==sin(4*pi))
v =
0
它表明正弦函数不是周期性的,那么在这种情况下,一般建议是什么?引入一些 epsilon?like
V=((sin(2*pi)-sin(4*pi))<eps)
V =
0
或
EPS=0.000000000000001
EPS =
1.0000e-15
>> V=((sin(2*pi)-sin(4*pi))<EPS)
V =
1
请帮帮我
【问题讨论】:
标签: matlab numerical floating-point-precision