Погрешности вычислений и сообщения об ошибках
Большинство вычислений в системе реализовано с помощью численных методов, принципиально имеющих конечную погрешность вычислений. Так, для вычислений производной используется конечно-разностный метод с изменением шага между узлами и его подстройкой под заданную погрешность. Интегралы вычисляются методом Симпсона с заданной погрешностью, а для вычисления корней функций применяется метод секущих.
Для всех методов погрешность вычислений задается с помощью специальной системной переменнойTOL. Хотя истинная погрешность может
Рис. 12. 15 Влияние переменной TOL на погрешности вычисления производных и интегралов
оказаться значительно меньше значенияTOL, ее влияние на результаты вычислений все же заметно (см. рис. 12. 15).
При выполнении вычислений возможны ошибки. Система выводит сообщения об ошибках, закрашивая ошибочные имена идентификаторов в ярко-красный цвет. В прежних версиях MathCAD сообщения об ошибках появлялись в красных прямоугольниках с линией, отходящей от места ошибки к прямоугольнику с сообщением о ней. Однако это загромождало документ, и от такого способа в новой версии отошли. В новой версии MathCAD подробное сообщение об ошибке можно получить также, установив на выражение с ошибкой курсор мыши и нажав ее левую клавишу.
Ниже представлен список основных сообщений об ошибках:
array size mismatch — несоответствие размера массива;
cannot be defined— не может быть определено;
cannot take subscript— не содержит верхних (нижних) индексов, definition stack overflow — переполнение стека определений;
did not find solution — решение не найдено;
dimension to non real power — размерность массива — не целое число;
domain error— ошибка области определения;
duplicate — дублирование;
equation too large— слишком большое выражение;
error in constant — ошибка в константе;
error in list — ошибка в списке;
error in solve block— ошибка в блоке;
file error— ошибка в файле;
file not found— файл не найден;
illegal array operation — неверная операция с массивом;
illegal context— неверный контекст;
illegal factor— неверный множитель;
illegal function name— неверное имя функции;
illegal ORIGIN— неверное употребление ORIGIN;
illegal range— неправильный диапазон;
illegal tolerance— некорректная точность аппроксимации;
incompatible units— несовместимые единицы;
index out of bounds— индекс вне границ;
interrupted— решение прервано;
invalid order — неверный порядок;
list too long— длинный входной список;
misplased comma— неуместная запятая;
missing operand— пропущенный операнд;
missing operator— пропущенный знак операции;
must be 3-vector— должен быть трехмерный вектор;
must be array— должен быть массив;
must be dimensionless— должен быть безразмерным;
must be increasing— должен быть возрастающим;
must be integer— должен быть целым;
must be nonzero— должен быть ненулевым;
must be positive— должен быть положительным;
must be range— должен быть диапазон;
must be real— должен быть вещественным;
must be scalar— должен быть скаляром;
must be vector— должен быть вектором;
nested solve block— следующий блок решения;
no matching Given— нет соответствующего Given;
no scalar value— нескалярная величина;
not a name— не является именем;
not converging— не конвертируется;
only one array allowed— допустим только один массив;
overflow— переполнение;
significance lost— потеряны значащие цифры;
singularity— деление на нуль;
stack overflow — переполнение стека;
subscript too large— слишком большой нижний индекс;
too few arguments— слишком мало аргументов;
too few constraints— слишком мало ограничений;
too few elements — слишком мало элементов;
too few subscripts — мало нижних индексов;
too large to display— слишком велико, чтобы быть отображенным;
too many arguments— слишком много аргументов;
too many constraints— слишком много ограничений;
too many points— слишком много точек;
too many subscripts— слишком много индексов;
undefindet— не определено;
unmatched parenthesis— дисбаланс скобок;
wrong size vector— неверный размер вектора.
Сообщения об ошибках кратки, но их анализ не вызывает особых затруднений. Заметим, что приведенный список содержит далеко не все ошибки, а лишь наиболее распространенные.