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

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

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

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

Date: 2012-06-01 05:34 pm (UTC)
From: [identity profile] dmpogo.livejournal.com
Не обязательно сработает. Точнее сработает но ответ может быть с мусорком, поскольку обращение (в зависимости от алгоритма) будет зависить от 'machine precision' если епсилон мало (а 10^-15 очень близко к double precision), и менять результат если велико. По честному тут надо прогнать несколько значений добавленного малого числа и посмотреть что ответ не зависит.

Date: 2012-06-01 09:23 pm (UTC)
From: [identity profile] green-fr.livejournal.com
Это double precision на величинах порядка единицы, она там относительная. Это моя любимая иллюстрация проблемы округления, перед написанием поста показывал своим коллегам (они ни разу не программисты, они не в курсе), что
1E-50 + 1 - 1
Это совсем не то же самое, что
1E-50 + (1 - 1)
Так чт надо ещё в голове держаить абсолютные величины, но я как раз с процентами работаю, там всё порядка единицы крутится, поэтому и бросаются в глаза "родные" 1E-15.

Profile

green_fr: (Default)
green_fr

May 2025

S M T W T F S
    1 23
4 5 678910
11 12 1314 15 1617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 31st, 2025 07:44 am
Powered by Dreamwidth Studios