Об ошибках в символьных вычислениях
Об ошибках в символьных вычислениях
На многих пользователей систем символьной математики удручающее впечатление может произвести наличие хотя и редких, но ошибочных решений. В самом деле, мы немедленно стерли бы с жесткого диска табличный процессор, давший ошибку в бухгалтерских расчетах, и перестали бы доверять системе проверки орфографии, дающей ошибки при проверке. Впрочем, последнее случается сплошь и рядом — пока нет таких систем, которые корректно проверяли бы орфографию и грамматику. Тот же текстовый процессор Word 97/2000 постоянно ошибается при проверке орфографии текстов, в чем автор не раз убеждался, готовя с его помощью большие книги.
У систем компьютерной алгебры нет проблем с обработкой естественного языка — математика полностью формализованная наука. Однако в них много своих условностей и неоднозначностей, которые здесь как бы заранее запрограммированы. К примеру, что считать более простым выражением: tan(x) или sin(x)/cos(x)? Система Derive полагает более простым выражением tan(x) и преобразует к нему выражение sin(x)/cos(x). А вот система Maple V ничуть не менее справедливо считает, что функции sin(x) и cos(x) математически более простые, чем tan(.r), и вообще — tan(x), по сути, не самостоятельная функция, a sin(x)/cos(x). Поэтому Maple V везде вместо tm(x) будет выводить sin(x)/cos(x).
Представьте себе, что таких условностей десятки и вы ничего об этом не знаете. Поэтому не стоит удивляться, что символьное значение какой-либо производной или интеграла может заметно отличаться по виду от приводимого в том справочнике, из которого взято исходное выражение для проверки правильности работы системы. Часто, чтобы получить результат в необходимом виде, необходимо приложить определенные усилия либо дать конкретные указания системе о типе преобразований в ходе вычислений. Указания реализуются в виде параметров к командам и функциям системы.
По образному выражению автора обзора [40], решение задач в символьном виде напоминает переход через поле, густо напичканное минами. Удивительно не то, что системы символьной математики могут ошибаться и «взрываться», а то, что число этих ошибок мало и уже на нынешнем этапе развития таких систем это не мешает их серьезному практическому применению. Стоит еще раз подчеркнуть, что Maple в этом отношении является одной из лучших систем, реализованных на ПК класса IBM PC и Macintosh с достаточно умеренными техническими характеристиками. Кстати говоря, для ПК Macintosh последней реализацией пока что является Maple V R4.
Один знакомый автор любил говорить, что компьютеры делают умных людей умнее, а глупых — глупее. Пожалуй, это более чем справедливо для людей, сидящих у ПК с установленной на нем системой символьной математики. Лишь те, кто понимают суть математических вычислений и имеют должную математическую интуицию и подготовку, могут получить от таких систем самые серьезные и даже новые результаты. Те же, кто думает, что системы символьной математики заменят им математические знания, глубоко ошибаются и могут получить красочно выглядящие, но абсолютно неверные и даже псевдонаучные результаты!
Однако вряд ли следует утрировать вероятность выдачи системами символьной математики ошибочных результатов — даже самые опытные математики-аналитики тоже могут ошибаться в своих вычислениях. В разработке таких систем, как Maple или Mathematica принимают участие крупные математические школы всего мира! Эти системы — кладезь математических понятий, сведений и знаний. Они способны заменить самые серьезные справочники по математическим вычислениям в любой области науки, техники и образования. Кроме того, они имеют множество средств для проверки корректности выполняемых вычислений, например путем подстановки полученных результатов в исходные выражения.
Кстати, одно из самых действенных приемов проверки таких средств — решение задачи одновременно на нескольких системах символьной математики. Не случайно уже сейчас можно заметить тенденцию к объединению математических систем. Эта новая и безусловно прогрессивная тенденция в ближайшее время приведет к созданию автоматизированных рабочих мест математиков и ученых других близких специальностей. Разработки таких рабочих мест (разумеется, компьютер на них — главный инструмент), в том числе с использованием систем Maple, уже появились и о них немного говорится в заключении. В добавление к сказанному надо отметить, что Maple 7 — одна из самых надежных систем компьютерной математики. Надежных прежде всего в смысле высокой достоверности получения правильных результатов при сложных символьных вычислениях. Эта первая система компьютерной математики, успешно прошедшая полное тестирование на задачах повышенной сложности, предлагаемых для оценки качества подобных систем.