Согласно известному афоризму Н. Вирта, каждая программа содержит по крайней мере одну ошибку. К сожалениею, разработчикам Maple не удалось ни опровергнуть это утверждение, ни ограничиться одной ошибкой.
Мы не будем останавливаться на тех ошибках, которые осложняют жизнь пользователя, но не имеют прямого отношения к математике. Мы также не будем рассматривать ситуации, в которых Maple не может найти правильный ответ и поэтому отказывется преобразовывать исходное выражение (упрощать, интегрировать, находим корни и т.д.). Мы лишь приведем примеры явных ляпов, когда Maple возвращает неверный результат.
> restart: with(linalg):
Warning, new definition for norm Warning, new definition for trace
> A:=matrix([[sqrt(2), sqrt(3), sqrt(6)], [2, sqrt(6), 2*sqrt(3)], [sqrt(6), 3, 3*sqrt(2)]]);
> det(A),simplify(det(A));rank(A);
3
Мы видим, что Maple "не заметил", что опредилитель матрицы A равен нулю, до тех пор, пока мы явно не потребовали упростить полученное выражение. Такая "невнимательность" программы привела к тому, что в качестве ранга матрицы A она вернула 3, хотя все три строки A очевидно пропорциональны.
> simplify(charpoly(A,t));eigenvalues(A);eigenvectors(A);
Error, (in evala) reducible RootOf detected. Substitutions are, {RootOf(_Z^2-6) = RootOf(_Z^2-3)*RootOf(_Z^2-2), RootOf(_Z^2-6) = -RootOf(_Z^2-3)*RootOf(_Z^2-2)}
Корректно посчитав характеристический многочлен и собственные значения злополучной матрицы, Maple не смог, однако, найти ее собственные векторы. Обнаружив, что в поле Q( , ) многочлен x2 - 6 перестал быть неприводимым Maple не смог сделать выбор между альтернативами = и =
Для нахождени касательных к окружности в пакете geomerty имеется процедура TangentLine . Однако, в случае когда точка, в которой ищутся касательные лежит на окружности, возвращаемый ей результат может выглядеть довольно странно:
> restart: with(geometry):
> TangentLine(t,point(A,3,4),circle(c,(x-6)^2+y^2=25,[x,y])):
> draw([A(color=black),t,c],view=[-6..12,-6..6],printtext=true);
Отметим, что входящая в состав пакета geometry процедура tangentpc , предназначенная специально для нахождения касательной в точке, лежащей на окружности, в описанной выше ситуации вернет правильный результат.
> a:={log[1/2](sqrt(x+2)-x+4)>=-1+log[1/2](3)};
> solve(a);
{-1 < x, x < 7}
При решении вышеприведенного неравенства Maple потерял корень
x = -2.
Волгоградский
государственный педагогический
университет
Кафедра алгебры, геометрии и информатики