В настоящее время я решаю разреженную линейную систему с разреженным решателем из scipy, Python.Как найти точность поплавка, если n бит повреждены или потеряны
Я сравниваю аналитическое решение с результатом моделирования. Однако в каком-то режиме у меня есть некоторые сомнения относительно точности имитируемого результата.
Сложно оценить condition number для разреженных матриц. Я могу найти наибольшее собственное значение матрицы, но поиск наименьшего собственного значения никогда не сходится, поэтому я даже не могу использовать max (eig)/min (eig) = condition. Идти в другом приближении, которое является max (abs (diag))/min (abs (diag)), я получаю номер условия, из которого log2 дает 26, поэтому я эвристически говорю, теряя около 26 бит точности по моему результату ,
Мой вопрос следующий: учитывая, что мои вычисления выполнены с float64 (numpy), а 26 бит отсутствуют, как я могу вычислить знать, какие десятичные числа моего числа я могу доверять? Например, если ответ дается моей симуляции:
Number_to_verify = +1663,123609834 (float64) и 26 последние биты являются потенциально коррумпированными, какая часть этого числа я могу доверять?
Спасибо, принял ответ. – Mathusalem