当我试图在 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
我也发现了一些东西。一个是第一个结果是正确的(不是后者)。其次,术语的重新排列有时可以解决问题。所以我不知道如何摆脱它。