我试图在Matlab中通过" polyfit"来获取我的数据的斜率。命令。
x = 1:38; y = -60*ones(1,38);
p_fit = polyfit(x,y,1);
slope = p_fit(1);
据我所知,由于y
具有常数值,我预计斜率为零。但我在10^-16
获得了一个价值。所以请帮助我纠正自己。
y
的值以dB域为单位。这有什么问题吗?或任何其他原因。
由于
答案 0 :(得分:3)
MATLAB运行双精度浮点运算,如果你不这样做,10^-16
在预期误差范围内相当好。
如果你想了解细节(你真的应该),请看看"What every computer scientist should know about floating point arithmetic"。
<强>更新强>:
关于你的评论,你提到的界限比你看到的错误至少大10个数量级,所以只要保持这种方式,你真的不必担心这个小错误。