在阅读数值方法时,减法取消通常是一个主题。
取消的简单示例:
a = 1;
b = 1e-16;
a-(a+b) = 0
因此我们丢失了 b 的所有信息。
但是,我很少阅读有关如何检查此问题的信息。难道我们不能使用一个简单的函数来减去数字,这也警告我们有问题吗?例子:
function c = subtract(a,b)
c = a-b;
if abs(c) < 1e-14*a
disp('Warning: Low precision on subtraction');
end
end
这个简单的功能可能存在一些缺陷——这只是我的第一个想法。无论如何,这样的事情会起作用吗?为什么没有完成?(即我以前从未见过/听说过此类检查)。