Computer algebra systems are a great help for mathematical research but sometimes unexpected errors in the software can also badly affect it. As an example, we show how we have detected an error of Mathematica computing determinants of matrices of integer numbers: not only it computes the determinants wrongly, but also it produces different results if one evaluates the same determinant twice.
academic
Невзгоды математической тройки при использовании систем компьютерной алгебры: можем ли мы доверять?
Системы компьютерной алгебры оказывают значительную помощь в математических исследованиях, однако неожиданные ошибки в программном обеспечении иногда серьёзно влияют на результаты исследований. В качестве примера авторы демонстрируют, как они обнаружили ошибку в Mathematica при вычислении определителей целочисленных матриц: программа не только неправильно вычисляла определитель, но и давала различные результаты при двукратном вычислении одного и того же определителя.
Решаемая проблема: Авторы обнаружили серьёзные ошибки в Mathematica при вычислении определителей больших целочисленных матриц, включая неправильные результаты вычислений и получение различных результатов для одного и того же вычисления.
Важность проблемы:
Математики всё больше полагаются на системы компьютерной алгебры при проведении исследований
Ошибочные результаты вычислений могут привести к неправильным математическим выводам
Вычисления с большими целыми числами имеют важное применение в криптографии и других областях
Ограничения существующих методов:
Коммерческие системы компьютерной алгебры являются "чёрным ящиком" с непрозрачными алгоритмами
Известные ошибки обычно не разглашаются пользователям
Сложно применять современные методы верификации программного обеспечения
Исследовательская мотивация: При исследовании расширения результатов Карлина и Сегё по ортогональным многочленам авторы обнаружили, что Mathematica и Maple дали различные результаты вычислений, что привело к глубокому анализу и выявлению систематических ошибок в Mathematica.
Обнаружение и сообщение о серьёзной вычислительной ошибке в Mathematica: при вычислении определителей больших целочисленных матриц получаются неправильные результаты
Предоставление воспроизводимого метода генерации ошибок: разработана случайная программа для генерации матриц, вызывающих ошибку
Выявление недетерминированного характера ошибки: вычисление определителя одной и той же матрицы может дать различные результаты
Постановка вопроса о надёжности систем компьютерной алгебры: инициирование важного обсуждения о том, как доверять этим системам
При исследовании определителей Казоратти ортогональных многочленов:
detPf1(ak)Pf2(ak)⋮Pfl(ak)Pf1(ak+1)Pf2(ak+1)⋮Pfl(ak+1)⋯⋯⋱⋯Pf1(ak+l)Pf2(ak+l)⋮Pfl(ak+l)
Авторы использовали целые числа для всех примеров, чтобы избежать проблем с плавающей точкой, но обнаружили, что Mathematica и Maple дали различные результаты.
Авторы сообщили об этой ошибке в Wolfram Research 7 октября 2013 г. (номер случая: CASE:303438), получили подтверждение, однако проблема не была решена в последующих версиях.
Проблемы надёжности: даже при символьных вычислениях (целочисленной арифметике) системы компьютерной алгебры могут давать ошибочные результаты
Масштаб влияния: ошибки при вычислении больших целых чисел влияют не только на теоретическую математику, но и на прикладные области, такие как криптография
Системные проблемы: "чёрный ящик" коммерческого программного обеспечения затрудняет предсказание и предотвращение ошибок
Karlin & Szegő (1960/1961) – оригинальное исследование определителей ортогональных многочленов
Appel & Haken (1977) – компьютерное доказательство проблемы четырёх красок
Hales (2005) – доказательство гипотезы Кеплера
Ciaurri & Varona (2006) – ранние исследования надёжности компьютерных вычислений
Хотя эта статья относительно небольшого объёма, она выявляет важную проблему: даже кажущиеся надёжными символьные вычисления могут содержать систематические ошибки. Она напоминает нам о необходимости осторожности при использовании компьютеров в математических исследованиях и подчёркивает важность верификации программного обеспечения и его прозрачности.