Проверка отмены вычитания (точность с плавающей точкой) - PullRequest
0 голосов
/ 17 октября 2018

Когда вы читаете о численных методах, то отмена вычитания часто является темой.

Простой пример отмены:

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

Возможно, есть некоторые недостатки этой простой функции - это была только моя первая идея.Во всяком случае, что-то вроде этой работы?И почему это не сделано?(то есть я никогда раньше не видел / не слышал о таких проверках).

...