green_fr: (Default)
green_fr ([personal profile] green_fr) wrote2012-06-01 05:31 pm
Entry tags:

Точность превыше всего!

На работе использую программу для генерирования экономических сценариев (B+H ESG), при определённой конфигурации она вылетает с нечитаемой ошибкой. Hotline объясняет, что у меня данные неправильные, моя матрица должна быть положительно полуопределённой, бла-бла-бла.

Я проверяю — одно из собственных значений выходит −2E-16.
Формально да, отрицательное. Но мы все понимаем, что это ноль, проблема округления (более того, я могу с ручкой на бумажке доказать, что это ноль, я намеренно сделал вырожденную матрицу, мне так надо).

Весь день бодаюсь теперь с hotline’ом по почте, доказывая, что это не «extremely high degree of accuracy in calculations» (цитата из их ответа), а баг, требующий патча. Ищу понятные аргументы...

Update: победили, ошибку признали, постараются когда-нибудь починить, но уже точно не успеют к следующей (7.3.0) версии.

[identity profile] green-fr.livejournal.com 2012-06-02 09:20 am (UTC)(link)
Ты видел, я исправил — матрица изначально требуется положительно полуопределённой, я вначале опечатался. То есть по условиям нули проходят, конечно же. Вопрос — считать ли −2E-16 нулём или нет, такой тонкий стык между математикой и информатикой :-)

[identity profile] dolganoff.livejournal.com 2012-06-02 10:43 am (UTC)(link)
А какова вероятность того, что кому-то из их клиентов будет важно различать числа по модулю меньше 2E-16? Может для кого-то это уже достаточно большие числа, а вы их к нулю приравнивать собрались?

[identity profile] green-fr.livejournal.com 2012-06-02 07:55 pm (UTC)(link)
Никакая, это матрица корреляций, а не массы электронов :-)