【发布时间】:2012-06-09 19:13:41
【问题描述】:
当我试图在 matlab 中模拟我的正弦近似时,我发现了一个奇怪的问题。问题是当我将函数应用于数组时,它会返回一个结果,而将函数应用于单个值会给出稍微不同的结果。
在这个例子中我能够得到相同的行为:
z = single(0:0.001:1);
F = @(x) (x.^2 - single(1.2342320e-001)).*x.^2; %some test function
z(999) % Returns 9.9800003e-001
F(z(999)) % Returns 8.6909407e-001
temp = F(z);
temp(999) % Voila! It returns 8.6909401e-001
我还发现了一些东西。一个是第一个结果是正确的(不是后者)。其次,重新排列sometimes可以解决问题。所以我不知道如何摆脱它。
【问题讨论】:
-
所有浮点运算都有些不准确。
标签: arrays matlab floating-point precision floating-accuracy