@DmitryOpalev

Почему JS вычисляет неточно?

Нашел скрипт для вычисления определителя матрицы: http://mathhelpplanet.com/static.php...nad-matritsami
Нужно вычислить определитель такой матрицы:
VZ56kDva7bo.jpg
var M = new Array();
M[0] = new Array(-2.3128860264714093, -1.1564430132357046, 0, 254.417462911855);
M[1] = new Array(-1.1564430132357046, -2.3128860264714097, 254.417462911855, -9.769962616701378*Math.pow(0.1,14));
M[2] = new Array(10.876222279050648, -5.572421139525324, 59.09640000000007, -3559.6051520867136);
M[3] = new Array(-5.572421139525324, 10.876222279050648, -3559.6051520867136, 59.09640000000007);

При этом скрипт на JS возвращает -0, а маткад конкретное число:
SsCyf8IIJEU.jpg
Причем если из элемента 2 строки 4 столбца убрать 10^(-14), то результаты, можно сказать, совпадают:
36AtzETVMX4.jpg
В чем проблема и как ее решить?
  • Вопрос задан
  • 212 просмотров
Пригласить эксперта
Ответы на вопрос 2
sgjurano
@sgjurano
Разработчик
Это называется численная неустойчивость, одна из самых частых проблем при вычислениях.

Решение заключается в использовании готовых библиотек линейной алгебры, где люди уже за вас эти проблемы решили.
Ответ написан
Комментировать
KickeRocK
@KickeRocK
FrontFinish
Тут
Хорошо про округления и точность в JS.
Решение вижу в использовании МатЛаба. :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы