Сравнительный анализ систем компьютерной математики
Сравнительный анализ систем компьютерной математики Mathcad, MATLAB и Mathematica по основным критериям: интерфейс, работа с массивами и матрицами, решение уравнений, графические возможности. Создание сайта о назначении систем компьютерной математики.
| Рубрика | Программирование, компьютеры и кибернетика |
| Вид | курсовая работа |
| Язык | русский |
| Дата добавления | 22.05.2009 |
| Размер файла | 101,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
СРАВНИТЕЛЬНЫЙ АНАЛИЗ СИСТЕМ КОМПЬЮТЕРНОЙ МАТЕМАТИКИ
ГЛАВА 1. Mathcad
1.1 Переменные и константы
1.2 Векторы и матрицы
1.4 Встроенные функции
1.6 Решение уравнений
1.7 Символьные вычисления
1.9 Полярные графики
1.10 Графики поверхностей
2.1 Операционная среда системы MATLAB
2.2 Массивы, матрицы и операции с ними
2.3 Математические функции и операции
2.4 Линейная алгебра
2.5 Анализ и обработка данных
2.6 Графические команды и функции
2.7 Программирование в среде MATLAB
ГЛАВА 3. Mathematica
3.1 Mathematica как калькулятор
3.2 Палитры и кнопки
3.3 Вычислительная мощь системы Mathematica
3.4 Математические возможности системы Mathematica
3.5 Построение вычислений
3.6 Визуализация в системе Mathematica
3.7 Основной подход к описанию объектов
3.8 Mathematica как язык программирования
ГЛАВА 4. Сравнительный анализ. Вывод
ГЛАВА 5. Практическая часть
Список использованных источников
Введение
В наше время в связи с развитием информационных технологий появились так называемые системы компьютерной математики, или их ещё называют математические пакеты, которые облегчают выполнение различных математических задач, помогают проверить решение задачи с помощью компьютерной программы. Намного сокращается время выполнения задач различной сложности. Для сотен тысяч специалистов в различных отраслях промышленности, занятых инженерными и научными исследованиями, системы компьютерной математики обеспечили превосходную среду для организации вычислений. Поэтому знакомство с основами организации математических пакетов может быть полезно как специалистам, приступающим к освоению этой системы, так и студентам вузов по самым различным специальностям.Они имеют чрезвычайно широкий набор средств, переводящих сложные математические алгоритмы в программы, так называемые элементарные функции и огромное количество неэлементарных, алгебраические и логические операции.Большинство упражнений из курса высшей математики может быть решено с помощью всего лишь одной команды. Можно вычислять интегралы, решать дифференциальные уравнения, обыкновенные уравнения и системы линейных уравнений. Предоставлен широкий выбор работы с матрицами, векторами. Возможно построение двумерных и трёхмерных графиков. Существует несколько математических пакетов, таких как Mathcad, MATLAB, Mathematica, Maple, Statistica и другие. Но на примере рассмотрим три из них: Mathcad, MATLAB и Mathematica; каждый в отдельности — его особенности и интерфейс, а потом проведём сравнительный анализ между ними.
Глава 1. Mathcad
Mathcad — программное средство, среда для выполнения на компьютере разнообразных математических и технических расчетов, снабженная простым в освоении и в работе графическим интерфейсом, которая предоставляет пользователю инструменты для работы с формулами, числами, графиками и текстами. В среде Mathcad доступны более сотни операторов и логических функций, предназначенных для численного и символьного решения математических задач различной сложности. Меню в Mathcad не представляет собой ничего необычного: как и во многих других программах имеются различные панели инструментов, панель форматирования. Кроме того есть панель «Математика», которая включает в себя такие панели как «Калькулятор», «Графика», «Матрицы», «Вычисления», «Исчисление», «Логический», «Программирование», «Греческий» и «Символьный». Эти панели содержат различные символы, не набираемые с клавиатуры, а также функции.
1.1 Переменные и константы
Здесь описаны допустимые имена переменных и функций Mathcad, предопределенные переменные подобные , а также представления чисел. Mathcad оперирует комплексными числами так же легко, как и вещественными. Переменные Mathcad могут принимать комплексные значения, и большинство встроеннных функций определено для комплексных аргументов.
Mathcad различает греческие и римские буквы.
Если использовать греческий символ вместо соответствующего римского в имени переменной или функции, Mathcad воспримет его как другое имя.
Буквенные индексы
Если поместить точку в имени переменной, Mathcad отобразит всё следующее за ней как нижний индекс. Можно использовать эти буквенные нижние индексы для создания переменных с именами подобными velinit и uair .
Предопределённые переменные
Mathcad содержит восемь переменных, значения которых определены сразу после запуска программы. Эти переменные называются предопределенными или встроенными переменными. Предопределенные переменные или имеют общепринятое значение, подобно p и e, или используются как внутренние переменные, управляющие работой Mathcad, подобно ORIGIN и TOL.
Можно управлять значениями TOL, ORIGIN, PRNPRECISION и PRNCOLWIDTH без необходимости явно определять их в рабочем документе.
Полный список предопределенных переменных Mathcad и их значений по умолчанию приведён ниже. См. «Таблица 1» («Приложение 1»).
Этот раздел описывает различные типы чисел, используемых Mathcad, и способы их записи в формулы.
Используемые числа
Mathcad интерпретирует всё, начинающееся цифрой, как число. Цифра может сопровождаться:
· цифрами после десятичной точки,
· одной из букв h или o, для шестнадцатеричных и восьмеричных чисел, i или j для комплексных чисел.
В Mathcad для отделения дробной части десятичной дроби используется точка, а запятая используется для отделения чисел друг от друга, например, значений дискретного аргумента или чисел в таблице ввода.
Мнимые числа
Для ввода мнимого числа нужно вслед за его модулем ввести символ мнимой единицы i или j, например, 1i или 2.5j. Нельзя использовать i или j сами по себе для обозначения мнимой единицы.
1.2 Векторы и матрицы
Здесь описаны массивы в Mathcad. В то время как обычные переменные (скаляры) хранят одиночное значение, массивы хранят много значений. Как обычно принято в линейной алгебре, массивы, имеющие только один столбец, будут часто называться векторами, все прочие — матрицами.
Вычисления с массивами
Переменные могут представлять массивы так же, как скаляры. Определение переменной как массива во многом схоже с определением скаляра.
Например, если мы определили вектор v, Можно теперь использовать имя v вместо самого вектора в любом выражении.
Нижние индексы и верхние индексы
Можно обращаться к отдельным элементам массива, используя нижние индексы. Можно также обращаться к отдельному столбцу массива, используя верхний индекс. Чтобы напечатать нижний индекс, используйте кнопки на панели инструментов.
Вектор и элементы матрицы обычно нумеруются, начиная с нулевой строки и нулевого столбца.
Векторные и матричные операторы
Некоторые из операторов Mathcad имеют особые значения в применении к векторам и матрицам. Например, символ умножения означает просто умножение, когда применяется к двум числам, но он же означает скалярное произведение, когда применяется к векторам, и умножение матриц — когда применяется к матрицам. Список векторных и матричных операторов приведён ниже. См. «Таблица 2» («Приложение 2»).
Векторные и матричные функции
Mathcad содержит функции для обычных в линейной алгебре действий с массивами. Эти функции предназначены для использования с векторами и матрицами. Если явно не указано, что функция определена для векторного или матричного аргумента, не следует в ней использовать массивы как аргумент.
Размеры и диапазон значений массива
В Mathcad есть несколько функций, которые возвращают информацию относительно размеров массива и диапазона его элементов: rows(A)— число строк в массиве A, cols(A) — число столбцов в массиве A, length(v) — число элементов в векторе v, max(A) — самый большой элемент в массиве A.
Специальные типы матриц
Можно использовать следующие функции, чтобы произвести от массива или скаляра матрицу специального типа или формы. Это функции diag (возвращает диагональную матрицу), rref (Ступенчатая форма матрицы) identity(n)(единичная матрица n x n) и другие функции.
Специальные характеристики матрицы
Можно также находить ранг матрицы: rank(A) и норму: norm1(А).
Формирование новых матриц из существующих
В Mathcad есть функции для объединения матриц вместе — бок о бок, или одна над другой. Одна из них: stack (А, В) — массив, сформированный расположением A над B. В Mathcad также есть функция для извлечения подматрицы: submatrix (А, ir, jr, ic, jc) — Субматрица, состоящая из всех элементов, содержащихся в строках с ir по jc и столбцах с ic по jc.
1.3 Операторы
В Mathcad используются обычные операторы, подобные + и /, а также операторы, определенные для матриц, например, операторы транспонирования и нахождения детерминанта, и специальные операторы типа вычисления интегралов и производных.
Список операторов
Неполный список операторов Mathcad приведён ниже. См. «Таблица 3» («Приложение 3»). Большинство операторов можно ввести в рабочий документ, используя палитры операторов. Чтобы открыть палитру операторов, нажмите на нужную кнопку на полосе кнопок непосредственно под командами меню.
Все перечисленные в таблице операторы можно набирать с клавиатуры, можно найти на панели инструментов в меню Математика. Это панели Арифметика, Матанализ, Булево.
1.4 Встроенные функции
Здесь перечислены и описаны многие из встроенных функций Mathcad.
Функции, используемые для работы с векторами и матрицами, описаны в Пункте “Векторы и матрицы”.
Вставка встроенных функций
Чтобы вставить функцию в Mathcad, можно кликнуть на панели инструментов Вставить ->Функция.
Трансцендентные функции
Этот раздел описывает тригонометрические, гиперболические и показательные функции Mathcad вместе с обратными им.
Тригонометрические функции и обратные им. Тригонометрические функции Mathcad и обратные им определены для любого комплексного аргумента. Они также возвращают комплексные значения везде, где необходимо.
Вот некоторые из них: sin(z)— возвращает синус z, asin(z) — возвращает угол в радианах, чей синус z, sec(z)— возвращает 1/cos(z), секанс z. Остальные тригонометрические функции определяются аналогично.
Гиперболические функции
Эти функции также могут использовать комплексный аргумент и возвращать комплексные значения. Гиперболические функции тесно связаны с тригонометрическими функциями.
Одна из них — sinh (z) — возвращает гиперболический синус z.
Логарифмические и показательные функции
Логарифмические и показательные функции Mathcad могут использовать комплексный аргумент и возвращать комплексные значения: exp(z) -возвращает e в степени z, ln(z) — возвращает натуральный логарифм z,
log(z) — возвращает логарифм z по основанию 10.
Усечение и функции округления
Все эти функции извлекают какую-либо часть своего аргумента.
Функции Re, Im и arg извлекают соответствующую часть комплексного числа (вещественная, мнимая, и когда z представлен в форме re i q ). Функции ceil и floor возвращают ближайшее целое число большее и меньшее аргумента соответственно. Эти функции могут быть использованы для создания функции, возвращающей дробную часть числа.
Функции сортировки
Mathcad содержит три функции для сортировки массивов и одну для обращения порядка их элементов:
sort(v) — возвращает элементы вектора v, отсортированные в порядке возрастания.
1.5 Программирование
Mathcad позволяет писать программы. Программа в Mathcad есть выражение, в свою очередь, состоящее из других выражений. Программы Mathcad содержат конструкции, во многом подобные программным конструкциям языков программирования: условные передачи управления, операторы циклов, области видимости переменных, использование подпрограмм и рекурсии. Написание программ в Mathcad позволяет решить такие задачи, которые невозможно или очень трудно решить другим способом.
Создание программ
Программа Mathcad есть частный случай выражения Mathcad. Подобно любому выражению, программа возвращает значение, если за ней следует знак равенства. Точно так же, как переменную или функцию можно определить через выражение, их можно определить и с помощью программы.
Главным различием между программой и выражением является способ задания вычислений. При использовании выражения алгоритм получения ответа должен быть описан одним оператором. В программе может быть использовано столько операторов, сколько нужно.
Условные операторы
Обычно Mathcad выполняет операторы программы в порядке сверху вниз. Могут встретиться случаи, в которых какой-нибудь оператор нужно выполнить только в случае выполнения некоего условия. Этого можно добиться с помощью оператора “if ”.
Одним из величайших преимуществ программирования является возможность многократного выполнения некоторой последовательности операторов в цикле. Mathcad предлагает два вида циклов, отличающихся по способу определения условия завершения цикла.
· Если заранее точно известно необходимое число выполнений цикла, то целесообразно использовать цикл типа for.
· Если цикл должен завершиться по выполнении некоторого условия, причем момент выполнения этого условия заранее не известен, то целесообразно использовать цикл типа while.
Программы в программах
Одной из черт, определяющих гибкость методов программирования, является возможность использовать одни программные структуры внутри других. В Mathcad это можно сделать тремя путями:
· Один из операторов программы можно сделать, в свою очередь, программой.
· Можно определить программу где-нибудь в другом месте и вызывать ее из других программ так, как если бы она была подпрограммой.
· Можно определить функцию рекурсивным образом.
1.6 Решение уравнений
Здесь описано, как при помощи Mathcad решать уравнения и системы уравнений. Можно решать как одно уравнение с одним неизвестным, так и системы уравнений с несколькими неизвестными. Максимальное число уравнений и неизвестных в системе равно пятидесяти.
Решение одного уравнения
Для решения одного уравнения с одним неизвестным используется функция root(f(z), z) — возвращает значение z, при котором выражение или функция f(z) обращается в 0.
Функция root предназначена для решения одного уравнения с одним неизвестным.
Системы уравнений
Mathcad дает возможность решать также и системы уравнений. Результатом решения системы будет численное значение искомого корня. Для символьного решения уравнений необходимо использовать блоки символьного решения уравнений. При символьном решении уравнений искомый корень выражается через другие переменные и константы.
Find (z1, z2, z3, . . .) — возвращает решение системы уравнений. Число аргументов должно быть равно числу неизвестных.
Ключевое слово Given, стоящее вначале определения уравнения, сами уравнения и неравенства, которые следуют за ним, и какое-либо выражение, содержащее функцию Find, называются блоком решения уравнений.
1.7 Символьные вычисления
Здесь описываются символьные преобразования в Mathcad. Символьные преобразования описаны ниже. См. «Таблица 4» («Приложение 4»).
Графики в Mathcad являются и универсальными, и легкими в использовании. Чтобы создать график, щёлкните в месте, где нужно вставить график, выберите Декартов график из меню Графика и заполните пустые поля. Можно всячески форматировать графики, изменяя вид осей и начертания кривых и испольуя различные метки.
Вставка графика
Чтобы вставить график в Mathcad, можно кликнуть на панели инструментов «Графика».
Вообще графики строятся на основе имеющихся шаблонов. Первоначально необходимо задать функцию графика.
Редактируются нижние, верхние, левые и правые границы графика. Если нажать двойным щелчком левой кнопкой мыши на графике, то появится настройка графика: осей координат, цвет, стиль вывода линий. Также можно задать диапазон с шагом. Для параметрического задания функции диапазон обязателен.
1.9 Полярные графики
В ряде случаев при построении графиков удобнее пользоваться полярными, а не декартовыми координатами. Mathcad позволяет строить полярные графики.
Здесь также возможно редактирование графика и размещение нескольких графиков в одной области.
1.10 Графики поверхностей
В рабочие документы Mathcad можно включать наряду с двумерными и трехмерные графики. В отличие от двумерных графиков, которые используют дискретные аргументы и функции, трехмерные графики требуют матрицы значений. Здесь показано, как можно матрицу представить в виде поверхности в трехмерном пространстве. Также рассматривается создание, использование и форматирование поверхностей в трехмерном пространстве.
Глава 2. MATLAB
MATLAB — это интерактивная система, основным объектом которой является массив, для которого не требуется указывать размерность явно. Это позволяет решать многие вычислительные задачи, связанные с векторно-матричными формулировками, существенно сокращая время, которое понадобилось бы для программирования на скалярных языках типа C или FORTRAN.
Система MATLAB — это одновременно и операционная среда и язык программирования. Одна из наиболее сильных сторон системы состоит в том, что на языке MATLAB могут быть написаны программы для многократного использования. Пользователь может сам написать специализированные функции и программы, которые оформляются в виде М-файлов.
2.1 Операционная среда системы MATLAB
Операционная среда системы MATLAB — это множество интерфейсов, которые поддерживают связь этой системы с внешним миром. Это — диалог с пользователем через командную строку или графический интерфейс, просмотр рабочей области и путей доступа, редактор и отладчик М-файлов, работа с файлами и оболочкой DOS, экспорт и импорт данных, интерактивный доступ к справочной информации, динамическое взаимодействие с внешними системами Microsoft Word, Excel Microsoft Word, Excel и др.. Реализуются эти интерфейсы через командное окно, инструментальную панель, системы просмотра рабочей области и путей доступа, редактор/отладчик М-файлов, специальные меню и т.п.
Командное окно
Командное окно системы MATLAB содержит опции, которые можно посмотреть в «Таблице 5» («Приложение 5»).
Инструментальная панель
Инструментальная панель командного окна системы MATLAB позволяет обеспечить простой доступ к операциям над М-файлами.
Эти операции включают:
· создание нового М-файла (New File);
· открытие существующего М-файла (Open File);
· копирование фрагмента (Copy);
· вставка фрагмента (Paste);
· просмотр рабочей области (Workspace Browser);
· текущая помощь (Help).
Редактор/отладчик М-файлов
В состав системы MATLAB входит редактор/отладчик М-файлов M-file Editor/Debugger, который может быть вызван из командной строки командой edit или edit <имя М-файла>.
2.2 Массивы, матрицы и операции с ними
Массивы являются основными объектами в системе MATLAB. Ниже описаны функции формирования массивов и матриц, операции над матрицами, специальные матрицы.
Формирование массивов специального вида
· ZEROS — формирование массива нулей
· ONES — формирование массива единиц
· EYE — формирование единичной матрицы
· CROSS — векторное произведение
Операции над матрицами
· DIAG — формирование или извлечение диагоналей матрицы
· TRIU — формирование верхнетреугольной матрицы (массива)
· FLIPUD — поворот матрицы относительно горизонтальной оси и другие.
Специальные матрицы
· MAGIC — магический квадрат
2.3 Математические функции и операции
В системе MATLAB имеется обширная библиотека математических функций. Каждой функции соответствует определенное имя. Функция ставит в соответствие значениям своих аргументов значение результата.
Аргументы функции всегда указываются в круглых скобках после имени функции и, если их больше одного, разделяются запятыми.
Математические операции
· a=b — оператор присваивания
· a.*b — поэлементное умножение
· a*b — матричное умножение
· a.^b — поэлементное возведение в степень
· a^b — матричное возведение в степень
· a>=b — больше или равно
· a&b — логическое И
· a|b — логическое ИЛИ
a — логическое НЕ
· a’ — комплексно-сопряженное транспонирование
Базовые функции
· ABS — абсолютное значение
· ANGLE — аргумент комплексного числа
· REAL, IMAG — действительная и мнимая части комплексного числа
· CEIL, FIX, FLOOR, ROUND — функции округления
Трансцендентные функции
· SQRT — квадратный корень
· EXP — экспоненциальная функция
· LOG — функция натурального логарифма
· LOG10 — функции логарифма
Тригонометрические функции
· SIN, SINH — функции синуса
· COS, COSH — функции косинуса
· TAN, TANH — функции тангенса
· COT, COTH — функции котангенса
2.4 Линейная алгебра
Матрица как математический объект возникает при решении конкретных вычислительных задач, и в первую очередь при решении систем линейных алгебраических уравнений и задач на собственные значения. Прикладные задачи, которые порождают матрицы, определяют для них специальную совокупность допустимых операций, среди которых особое место занимает операция умножения.
Рассмотрим функции системы MATLAB, которые поддерживают работу с матрицами.
Характеристики матриц
· NORM — нормы векторов и матриц
· RANK — ранг матрицы
· DET — определитель матрицы
· RREF — треугольная форма матрицы
2.5 Анализ и обработка данных
В этой главе описаны функции системы MATLAB, которые предназначены для анализа и обработки данных, заданных в виде числовых массивов. Здесь рассмотрены функции вычисления среднего, медианы, конечных разностей, градиента. Представлены функции численного интегрирования, решения задачи Коши для систем обыкновенных дифференциальных уравнений.
Основные операции
· SUM, CUMSUM — суммирование элементов массива
· PROD, CUMPROD — произведение элементов массива
· SORT — сортировка элементов массива по возрастанию
· MAX — определение максимальных элементов массива
· MIN — определение минимальных элементов массива
Численное интегрирование
· TRAPZ — интегрирование методом трапеций
· QUAD, QUAD8 — вычисление интегралов методом квадратур
Интегрирование обыкновенных дифференциальных уравнений
· ODE23, ODE45 — решение задачи Коши для систем обыкновенных дифференциальных уравнений
Вычисление минимумов и нулей функции
· FMIN, FORTIONS — минимизация функции одной переменной
· FMINS — минимизация функции нескольких переменных
· FZERO — нахождение нулей функции одной переменной
· FPLOT — построение графиков функции одной переменной
2.6 Графические команды и функции
Начиная с версии 4.0, в состав системы MATLAB входит мощная графическая подсистема, которая поддерживает как средства визуализации двумерной и трехмерной графики на экран терминала, так и средства презентационной графики.
Элементарные графические функции системы MATLAB позволяют построить на экране следующие типы графиков: линейный, логарифмический, полярный.
Для каждого графика можно задать заголовок, нанести обозначение осей и масштабную сетку.
Двумерные графики
· PLOT — график в линейном масштабе
· LOGLOG — график в логарифмическом масштабе
· SEMILOGX, SEMILOGY — график в полулогарифмическом масштабе
· POLAR — график в полярных координатах
Трехмерные графики
В системе MATLAB предусмотрено несколько команд и функций для построения трехмерных графиков.
Значения элементов числового массива рассматриваются как z-координаты точек над плоскостью, определяемой координатами x и y. Возможно несколько способов соединения этих точек. Первый из них — это соединение точек в сечении (функция plot3), второй — построение сетчатых поверхностей (функции mesh и surf).
· PLOT3 — построение линий и точек в трехмерном пространстве
· MESH, MESHC, MESHZ — трехмерная сетчатая поверхность
· SURF, SURFC — затененная сетчатая поверхность
· ZOOM — управление масштабом графика
· COLORMAP — палитра цветов
Надписи и пояснения к графикам
· TITLE — заголовки для двух- и трехмерных графиков
· XLABEL, YLABEL, ZLABEL — обозначение осей
· TEXT — добавление к текущему графику текста
Специальная графика
Раздел специальной графики включает графические команды и функции для построения столбцовых диаграмм, гистограмм, средств отображения векторов и комплексных элементов, вывода дискретных последовательностей данных, а также движущихся траекторий, как для двумерной, так и для трехмерной графики.
· BAR — столбцовые диаграммы
· HIST — построение гистограммы
· STEM — дискретные графики
· STAIRS — ступенчатый график
· WATERFALL — трехмерная поверхность
2.7 Программирование в среде MATLAB
Программирование
Файлы, которые содержат коды языка MATLAB, называются M-файлами. Для создания M-файла используется текстовый редактор; вызову М-файла предшествует присваивание значений входным аргументам; результатом является значение выходной переменной. Таким образом, вся процедура включает две операции:
· Создать M-файл, используя текстовый редактор.
· Вызвать M-файл из командной строки или из другого M-файла:
Типы M-файлов. Существует два типа M-файлов: М-сценарии и М-функции с характеристиками, указанными в «Таблице 6» («Приложение 6»).
Структура M-файла.
М-файл, оформленный в виде функции, состоит из следующих компонентов:
· Строка определения функции
· Первая строка комментария
Создание М-файлов. M-сценарии. M-функции
M-файлы являются обычными текстовыми файлами, которые создаются с помощью текстового редактора. Для операционной среды персонального компьютера система MATLAB поддерживает специальный встроенный редактор/отладчик, хотя можно использовать и любой другой текстовый редактор с ASCII-кодами.
М-сценарии
Сценарии являются самым простым типом M-файла — у них нет входных и выходных аргументов. Они используются для автоматизации многократно выполняемых вычислений. Сценарии оперируют данными из рабочей области и могут генерировать новые данные для последующей обработки в этом же файле. Данные, которые используются в сценарии, сохраняются в рабочей области после завершения сценария и могут быть использованы для дальнейших вычислений.
М-функции являются M-файлами, которые допускают наличие входных и выходных аргументов. Они работают с переменными в пределах собственной рабочей области, отличной от рабочей области системы MATLAB.
Структура М-функции. M-функция состоит из:
· строки определения функции;
· первой строки комментария;
Каждая функция в системе MATLAB содержит строку определения функции, подобную приведенной.
Если функция имеет более одного выходного аргумента, список выходных аргументов помещается в квадратные скобки. Входные аргументы, если они присутствуют, помещаются в круглые скобки. Для отделения аргументов во входном и выходном списках применяются запятые.
Имена входных переменных могут, но не обязаны совпадать с именами, указанными в строке определения функции.
Комментарий. Для M-файлов можно создать online-подсказку, вводя текст в одной или более строках комментария.
Тело функции. Тело функции содержит код языка MATLAB, который выполняет вычисления и присваивает значения выходным аргументам. Операторы в теле функции могут состоять из вызовов функций, программных конструкций для управления потоком команд, интерактивного ввода/вывода, вычислений, присваиваний, комментариев и пустых строк.
Глава 3. Mathematica
Система Mathematica, созданная лет десять тому назад, имеет чрезвычайно широкий набор средств, переводящих сложные математические алгоритмы в программы. Все так называемые элементарные функции и огромное количество неэлементарных; алгебраические и логические операции. Система Mathematica очень широко распространена в мире, ею захвачены огромные области применения в научных и инженерных исследованиях, а также в системе образования.
3.1 Mathematica как калькулятор
Можно использовать программу Mathematica просто как калькулятор: вводятся данные и Mathematica выводит результат.
Mathematica автоматически обрабатывает числа любого размера.
Можно работать в стандартной математической форме записи, используя палитры или специальные сочетания клавиш.
Важной особенностью системы Mathematica является ее способность оперировать с символьными выражениями так же легко, как и с числами.
Решение уравнения в системе Mathematica. Корни уравнения находятся с помощью функции Solve. Корни уравнения есть функции, зависящие от параметра.
Вычисление интеграла происходит аналогично вычислениям в других
Можно использовать систему Mathematica для построения двумерных и трехмерных графиков функций.
График этой функции показан в «Рисунке 1» («Приложение 7»).
Можно воспользоваться большим количеством вычислительных возможностей системы Mathematica простым нажатием одной из кнопок в стандартных палитрах.
3.2 Палитры и кнопки
Палитры и кнопки реализуют простой и полностью настраиваемый «мышиный» (point-and-click) интерфейс системы Mathematica.
Mathematica поставляется с несколькими стандартными палитрами.
Часть палитры Basic Calculations показана в «Таблице 7» («Приложение 8»).
Палитры являются расширением представленной клавиатуры.
В палитре символ означает позицию, в которую нужно вставить какое-либо выражение: Log [], 2 , Exp[], и т. д.
Создать свою собственную палитру очень легко.
С помощью команды Create Table/Matrix/Palette в меню Input можно сделать свою палитру.
Можно создавать свои палитры для ввода любой функции или оператора, например Expand[], Factor[], Simplify[].
3.3 Вычислительная мощь системы Mathematica
Система Mathematica предоставляет большие вычислительные возможности, оставаясь при этом такой же простой в использовании, как и калькулятор.
Эта команда создает матрицу случайных чисел размера 100х100.
На большинстве компьютеров система Mathematica затрачивает меньше секунды на вычисление всех собственных значений этой матрицы и представление их модулей в виде графика, который показан на «Рисунке 2» («Приложение 9»).
Mathematica может оперировать с числами любого размера. На большинстве компьютеров вычисление точного значения 1000! в системе Mathematica занимает менее секунды. Mathematica легко справляется с алгебраическими преобразованиями, например разложение полинома на множители: команда Factor().
Система Mathematica использует изощренные алгоритмы для упрощения выражений: команда Simplify().
Во многих видах вычислений система Mathematica является мировым рекордсменом по скорости вычислений и объему обрабатываемой информации.
3.4 Математические возможности системы Mathematica
Система Mathematica объединяет в себе большой запас математических знаний и использует свои собственные алгоритмы.
В системе Mathematica реализованы сотни специальных функций, используемых в чистой и прикладной математике.
Система Mathematica может вычислять значения специальных функций с любыми параметрами и с любой точностью.
Mathematica может вычислять очень много разных типов интегралов.
Также система Mathematica умеет вычислять конечные и бесконечные суммы и произведения.
Mathematica может решать широкий класс обыкновенных дифференциальных уравнений и уравнений в частных производных.
Встроенные алгоритмы системы Mathematica способны справиться с широким спектром математических задач.
3.5 Построение вычислений
Возможность работать с формулами позволит легко объединять вместе все части расчета.
Вычисление собственных чисел матрицы: команда Eigenvalues[<<>,<>>].
Система Mathematica может вычислять собственные значения,даже если в матрице присутствуют символьные параметры.
Встроенные функции системы Mathematica разработаны так, что результат вычисления одной функции можно легко использовать в качестве входных данных другой функции.
3.6 Визуализация в системе Mathematica
Mathematica легко позволяет создавать великолепные изображения.
Эта команда рисует трехмерный параметрический график с автоматическим выбором большинства опций.
Сам график представлен на «Рисунке 3» («Приложение 10»).
Mathematica содержит графические примитивы, с помощью которых можно строить двумерные и трехмерные графики любой сложности.
Список примитивов, изображающих точку.
3.7 Основной подход к описанию объектов системы Mathematica
В основе системы Mathematica лежит идея, что все можно представить как символьное выражение.
Все символьные выражения записываются в единой форме: head[arg1,arg2,…].
Список элементов:
Алгебраическое выражение:
Логическое выражение:
3.8 Mathematica как язык программирования
В систему Mathematica встроен очень гибкий и интуитивно понятный язык программирования.
Язык Mathematica поддерживает все основные современные методы программирования, а также предоставляет некоторые новые возможности.
Процедурное программирование
Многие операции автоматически распространяются на списки.
Эта команда объединяет вложенные списки.
Функциональное программирование
Команда является «чистой функцией» («pure function»). Вместо символа подставляется аргумент.
Глава 4. Сравнительный анализ. Вывод
Сравнительный анализ систем компьютерной математики проведём в виде таблицы.
Типа «wysiwyg». Набор выражений происходит от позиции курсора. Выражений с клавиатуры приходится вводить относительно немного, так как в командном окне имеются различные палитры инструментов.
Три окна: командное окно, все переменные и их типы и окно подсказок. Есть строка приглашения, обозначается знаком «>>». В отличие от Mathcad все функции приходится вводить с клавиатуры.
Строка приглашения в отличие от MATLAB разделена на две области: ввода и вывода, которые составляют вместе область всего выражения. Область ввода можно редактировать. Также имеется палитра с греческими буквами, различными символами и панель матанализа.
Работа с массивами и матрицами
Предоставлен достаточный набор функций для проведения различных операций с матрицами и векторами. Некоторые операции можно брать с соответствующей палитры, другие — вводить с клавиатуры или вставлять из меню Вставка->Функции .
Аналогично Mathematica матрицы и вектора формируются при помощи списка элементов. Функции вводятся с клавиатуры.
Многомерный набор данных создается с помощью списка, который вводится с клавиатуры. Также с клавиатуры вводятся и функции для работы с матрицами и векторами.
Различает решение уравнений и систем уравнений. Команды можно набирать с клавиатуры, можно вставлять из меню.
Решает уравнения и системы уравнений функцией с различными параметрами.
Содержит несколько функций для решения уравнений и систем уравнений. Функции могут находить корни уравнений с параметром. Также имеется функция для особых решений.
Приведен в таблице целый ряд операторов, как простых типа сложения, так и вычисления суммы, произведения, интегралов и производных и т.д., которые можно вводить с клавиатуры или вставлять из соответствующей палитры.
Здесь в отличие от Mathcad все операторы вводятся с клавиатуры в виде отдельных символов и функций. Дан относительно подробный список операторов.
Также, как и в MATLAB операторы приходится вводить с клавиатуры, но некоторые можно найти и на палитре инструментов.
Построены по принципу всех функций: название функции и параметры в скобках. Можно выделить функции упрощения выражения, раскрытия скобок, тригонометрические и целый ряд других.
Здесь в основном используются только функции, которые вводятся с клавиатуры.
Приведено множество функций различного назначения с различным числом параметров. Помогают пользователю в решении различного характера задач.
Предоставлены шаблоны для создания программ и подпрограмм. В качестве выходного значения указывается последнее значение, вычисленное программой. Также внутри программы можно использовать функции, описанные ранее. Программы пишутся в том же файле, что и все вычисления.
Здесь программы создаются в виде отдельных М — файлов. Если написать программу какой-нибудь функции, то эту функцию можно будет использовать как стандартную. Также в программу можно вставлять комментарии.
Можно создавать различные функции и оперировать с ними. Позволяет внутри одного блока ввода создавать программы. Результатом будет последнее вычисленное значение. В отличие от Mathcad, где программы пишутся «в столбик», здесь пишутся в строку.
Графики строятся на основе имеющихся шаблонов. Основные виды: график в декартовой плоскости, в полярной системе координат, трёхмерный в виде гладкой поверхности, в виде контурных кривых и т.д. Сначала задаётся функция графика, диапазон, затем строится сам график, который можно редактировать.
Функция графика создаётся из командной строки. Графики создаются на формах в определённой системе координат. В команде построения можно указывать свойства графика.
Функция, которая рисует график, заканчивается на «PLOT» в двухмерном случае, и «PLOT 3D» в трёхмерном случае. Чтобы построить график, нужно сначала задать функцию. Также можно и редактировать график.
Как видно из сравнительного анализа, все математические пакеты сходны между собой. У них похожие принципы построения вычислений, графиков функций. И в Mathcad, и в MATLAB, и в Mathematica есть списки встроенных функций и операторов. Но имеются и отличия, например в интерфейсе, методах программирования. На данном уровне развития образования, я думаю, что без систем компьютерной математики обойтись нельзя. Иначе — зачем они тогда появились?
Глава 5. Практическая часть
Требовалось создать сайт с одноименным названием курсовой работы, а именно «Сравнительный анализ систем компьютерной математики».
Сайт создан с целью доведения информации о назначении систем компьютерной математики до всех желающих.
Сайт содержит следующие html страницы: 1 — Главная страница; 2 — Mathcad; 3 — MATLAB; 4 — Mathematica; 5 — Сравнительный анализ. Вывод.
Страницы Mathcad, MATLAB, Mathematica содержат в свою очередь тоже по несколько страниц.
Структура папок для хранения структуры сайта такова: создана папка «sweta», в которой содержатся все страницы и всё содержимое сайта. В данной папке помещена главная страница ind.htm и все страницы сайта.
Также в этой папке находится папка ind.files, в которой содержится таблица стилей mystyle.css, графические файлы, подключаемые к страницам сайта, и несколько папок, в которых в свою очередь также содержатся графические файлы, подключаемые к страницам сайта.
Файл ind.htm, как говорилось ранее, является главной страницей.
На этой странице в верхнем левом углу размещён лейбл, который непосредственно связан с названием сайта и иллюстрирует его в какой — то мере. Лейбл является необходимым звеном главной страницы сайта.
Рядом с лейблом находится собственно название сайта. В центре страницы расположена таблица, состоящая из двух столбцов: в первом находится меню, также оформленное в виде таблицы; в правом — часть повествования, то есть введение.
После таблицы следуют ссылки на сайты, материал которых использовался для работы.
Внизу главной страницы идёт бегущая строка с электронным адресом создателя сайта.
Из главной страницы с помощью гиперссылок можно попасть на четыре страницы — это файлы ind1.htm — общее о Mathcad, ind2.htm — общее о MATLAB, ind3.htm — общее о Mathematica и ind4.htm — сравнительный анализ математических пакетов и вывод.
На этих страницах вверху расположено меню, далее следует общая информация о конкретном пакете и гиперссылки на отдельные страницы сайта, предназначенные для Mathcad, MATLAB и Mathematica соответственно. Вернуться обратно в главное меню можно при помощи гиперссылок, расположенных вверху этих страниц. Большинство страниц включает в себя рисунки, иллюстрирующие выложенную на сайте теорию.
Все html — файлы, нумерующиеся с единицы, относятся к системе Mathcad, нумерующиеся с двойки — к MATLAB, с тройки — к системе Mathematica.
Общий фон сайта — светло-сиреневый, что облегчает чтение текста и благоразумно, если пользователь станет распечатывать web-страницу.
Шрифт — 13,5 размера, следовательно, читается хорошо.
Все страницы сайта создаются с использованием таблицы стилей, которая называется mystyle.css. Она включает в себя заголовки 1-4 уровней, пункты меню 1-4 уровней, гиперссылки, таблицы и ячейки таблиц, основной текст.
Таблица стилей подключается как внешний файл, ссылка на неё внедряется в документ при помощи тега <link>.
Для создания сайта были использованы теги, указанные ниже.
<html> — является контейнером, который заключает в себе всё содержимое web-страницы.
<head> — заголовок документа.
<title> — определяет заголовок документа.
<body> — предназначен для хранения содержания web-страницы, отображаемого в окне браузера.
<table> — служит контейнером для элементов, определяющих содержимое таблицы.
<tbody> — предназначен для хранения содержания таблицы.
<tr> — контейнер для создания строки таблицы.
<td> — предназначен для создания одной ячейки таблицы.
<img> — предназначен для отображения на web-странице изображений в графическом формате GIF, JPEG или PNG.
<marquee> — создает бегущую строку на странице.
<p> — определяет текстовый параграф.
<br> — устанавливает перевод строки в месте, где этот тег встречается.
<a> — предназначен для создания ссылок.
<font> — контейнер для изменения характеристик шрифта: размер, цвет, гарнитура.
<b> — устанавливает жирное начертание шрифта.
<ul> — устанавливает маркированный список.
<li> — определяет отдельный элемент списка.
<i> — устанавливает курсивное начертание шрифта.
<strong> — устанавливает жирное начертание шрифта.
<div> — позволяет выделить в структуре документа несколько разделов.
<pre> — текст визуализируется браузером точно так, как он визуализирован в исходном коде документа.
Список использованных источников
1. Гурский, Д. Вычисления в Mathcad / Д. Гурский. — Мн.: Новое знание, 2003.
2. Кирьянов, Д. MathCAD 11. Самоучитель / Д. Кирьянов. — С-Пб.: БХВ-Петербург, 2003.
3. Потемкин, В. Вычисления в среде MATLAB / В. Потемкин. — М.: Диалог-МИФИ, 2004.
4. Муравьев, В. Практическое введение в пакет MATHEMATICA / В. Муравьев, Д. Бурланков. — С-Пб.: Питер, 2001.
5. Дьяконов, В. Mathematica 4.0 с пакетами расширений / В. Дьяконов. — М.: Нолидж, 2000.
6. Мантуров, О. В. Mathematica 3.0 и ее роль в изучении математики / О. В. Мантуров. // Научно-практический журнал «Exponenta Pro. Математика в приложениях», 2004 — 10 мая.
7. Образовательный математический сайт Exponenta.Ru
8. Консультационный центр MATLAB компании Softline — сайт Matlab.ru
9. Соловьёв, А. М. Лекции по дисциплинам специализации: математические пакеты для группы 1 «В» ф-та МиИ / А. М. Соловьёв — Тула, 2005.
Приложение 1
Таблица 1 — Список предопределенных переменных в Mathcad
Переменная = значение по умолчанию
Определение и использование
Пи. В численных расчетах Mathcad использует значение p с учётом 15 значащих цифр. В символьных вычислениях p сохраняет своё точное значение.
Основание натуральных логарифмов. В численных расчетах Mathcad использует значение e с учётом 15 значащих цифр. В символьных вычислениях e сохраняет своё точное значение.
Бесконечность. В численных расчетах это заданное большое число. В символьных вычислениях — бесконечность.
Допускаемая погрешность для различных алгоритмов (интегрирования, решения уравнений и т.д.).
Начало массива. Определяет индекс первого элемента массива.
Используется для создания и просмотра анимаций. Когда анимации не используются, равна нулю.
Приложение 2
Таблица 2 — Векторные и матричные операторы Mathcad
Обозначение
Умножение матрицы на скаляр
Умножает каждый элемент A на скаляр z.
Возвращает произведение матриц A и B.
Умножение матрицы на вектор
Возвращает произведение матриц A и v.
Сложение векторов и матриц
Складывает соответствующие элементы A и B.
n-ная степень квадратной матрицы M.
Возвращает , где — вектор, комплексно сопряженный к v.
Возвращает детерминант квадратной матрицы M.
Возвращает матрицу, чьи строки — столбцы А, и чьи столбцы — строки A.
Извлекает n-ный столбец массива A.
Нижний индекс (вектора)
n-ный элемент вектора.
Нижние индексы матрицы
Элемент матрицы, находящийся в m-ном ряду и n-ной строке.
Приложение 3
Таблица 3 — Список операторов Mathcad
Обозначение
Возвращает обозначенный элемент вектора.
Возвращает обозначенный элемент матрицы.
Извлекает столбец с номером n из массива A. Возвращает вектор.
Возвращает значение, равное n(n-1)(n-2). 1 .
Возводит z в степень w.
Умножает X на -1.
Суммирует элементы вектора v. Возвращает скаляр.
Возвращает положительный квадратный корень для положительного z; главное значение для невещественных z.
Выполняет суммирование X по i = m, m=1,.n.
Приложение 4
Таблица 4 — Символьные преобразования в Mathcad
Название функции
Упрощает выражение, выполняя арифметические преобразования, сокращая общие множители и используя основные тождества для тригонометрических и обратных функций.
Разлагает все степени и произведения сумм в выражении.
Разлагает на множители выбранное выражение, если всё выражение может быть записано в виде произведения сомножителей.
Предписывает Mathcad выполнить символьное преобразование в комплексной области. Результат будет обычно в форме a + ib.
Приложение 5
Таблица 5 — Опции командного окна системы MATLAB
Открыть в редакторе/отладчике новый файл Открыть графическое окно
Открыть в редакторе/отладчике указанный файл
Открыть в редакторе/отладчике файл, выделенный в произвольной строке командного окна
Вызов средства просмотра рабочей области Workspace Browser
Вызов средства просмотра путей доступа Path Browser
Установка опций принтера
Установка опций вывода на печать
Печать выделенного фрагмента
Приложение 6
Таблица 6 — Характе ристики М-сценариев и М-функций
Не использует входных и выходных аргументов
Использует входные и выходные аргументы
Оперирует с данными из рабочей области
По умолчанию, внутренние переменные являются локальными по отношению к функции
Предназначен для автоматизации последовательности шагов, которые нужно выполнять много раз
Предназначена для расширения возможностей языка MATLAB (библиотеки функций, пакеты прикладных программ)
Приложение 7
Рисунок 1 — График функции f(x)=Sin(x)+Sin(1.6x)
Приложение 8
Таблица 7 — Часть палитры Basic Calculations
Рисунок 2 — Собственные значения матрицы и их модули в виде графика
Приложение 10
Рисунок 3 — Трехмерный параметрический график
Подобные документы
Современные системы компьютерной математики. Графический способ решения уравнений с параметрами. Возможности системы Mathcad для создания анимации графиков функций. Процесс создания анимации. Использование анимационной технологии систем математики.
контрольная работа [617,1 K], добавлен 08.01.2016
Использование ранжированных переменных в программном пакете Mathcad. Создание матриц без использования шаблонов матриц, описание операторов для работы с векторами и матрицами. Решение систем линейных и нелинейных уравнений с помощью функций Mathcad.
контрольная работа [964,6 K], добавлен 06.03.2011
Решение линейных дифференциальных уравнений численными и символьными методами в рамках пакета компьютерной математики MathCAD. Сравнения результов решений и применение их при исследовании функционирования автоматических систем и электрических агрегатов.
контрольная работа [51,5 K], добавлен 07.05.2009
Раскрытие понятия «системы компьютерной математики», история ее развития. Внутренняя архитектура и составляющие СКМ. Основные принципы работы системы Maple. Ее возможности для решения линейных и нелинейных уравнений и неравенств. Применение функции solve.
курсовая работа [189,4 K], добавлен 16.09.2017
История появления интегрированных математических программных систем для научно-технических расчетов: Eureka, PC MatLAB, MathCAD, Maple, Mathematica. Интерфейс и возможности интегрированных систем для автоматизации математических расчетов класса MathCAD.
курсовая работа [906,1 K], добавлен 04.06.2019
Популярная система компьютерной математики, предназначенная для автоматизации решения массовых математических задач в самых различных областях науки, техники и образования. Основные возможности Mathcad, назначение и интерфейс, графика и развитие.
презентация [3,5 M], добавлен 01.04.2014
Системы компьютерной математики: Mathcad — интегрированный пакет, включающий связанные компоненты (текстовый редактор, вычислительный процессор, символьный процессор). MatLab – система, построенная на представлении и применении матричных операций.
Engineering Calculation Software Showdown: Mathcad vs MATLAB
Calculations are at the heart of the design for any complex product, so the ability to share and reuse critical calculations and IP is vitally important. Sometimes companies believe they can rely on spreadsheets to store calculations but spreadsheet data is hard to maintain and share.
Mathcad vs MATLAB Comparison
The real solution to this dilemma is Engineering Calculation Software such as Mathcad or MATLAB, but not many companies know how to evaluate such a specialized solution. That’s why we’ve created this comparison of Mathcad vs MATLAB. Here’s how these two leading solutions stack up.
Mathcad and MATLAB are the leading engineering calculation software platforms available but the question is, which one is better?
Integration with CAD Solutions: Advantage Mathcad
Since the whole reason to have an engineering math solution is to speed up and streamline product design, one of the most important criteria should be a seamless integration with your CAD solution. Mathcad integrates with the entire PTC toolbox, including ThingWorx and Creo for IoT, robotics, machine learning and AR. Engineers can access the computation and calculation library while in the design process, and embed calculations in reports, sketches or spec sheets.
MATLAB can integrate with CAD systems, but it’s a more complex process, so many companies simply settle for file sharing rather than true integration.
Standardized Math Notation and Data Types: Tie Score
It makes no sense to try to streamline your design process and then force the engineering team to learn a new method for performing calculations. Luckily, both systems follow standardized mathematical notation for data analysis. Mathcad also offers support for customized functions, while MATLAB includes the ability to accept data for Big Data Analytics. This category is a wash.
Secure Access and Visibility Control: Advantage Mathcad
Mathcad offers password protection to calculations and allows you to lock content or hide proprietary information. This makes it easy to work with third parties without compromising or endangering the company’s intellectual property (IP).
The Mathcad platform includes password capabilities for additional IP protection.
Industry Support: Advantage Mathcad
MATLAB claims support for 22 distinct industries. That’s a lot of industries for one company to support, which implies there is very little in the way of true industry specialization. The industries they claim are highly diverse and include such highly differentiated industries as medical devices, financial services, and mining.
Mathcad, on the other hand, offers general engineering math calculations, but has industry specializations in civil and structural engineering, electrical engineering, and mechanical engineering. They offer additional free worksheets for chemical engineering, and of course, PTC is well known for its manufacturing expertise.
Interoperability: Advantage Mathcad
We’ve already mentioned Mathcad’s seamless integration with PTC’s suite of engineering, CAD, and 3D design tools. It also works with Excel and other Microsoft Office desktop applications, so your team can create attractive reports and documents that include data visualizations, images, sketches, and graphs. One of the best uses for this is the ability to create Engineering Notebooks to document the entire thought process behind the design. This is a two-way capability. For example, Mathcad worksheets can be embedded directly into a Creo design, or the user can drive Mathcad calculations from the Creo design.
Mathcad’s “Engineering Notebooks” help document the entire design process from idea, to calculation verification, to the final design.
MATLAB boasts of over 500 partner solutions, but many of them are small and highly specialized. You may find a few of them helpful depending on your circumstances, but most will be of little or no value to an individual company.
Usability and Speed: Tied
One of the primary reasons for adopting an engineering calculation system is to speed up and streamline the design process. To that end, you want to look for a solution that has a familiar user interface and that can crunch large data volumes quickly.
MATLAB is structured like a series of toolboxes, each with a specialized purpose. For example, there’s an aerospace toolbox, a robotics system toolbox, an LTE toolbox, and many others. Each toolbox includes reference examples, but the UI differs slightly from product to product. It’s also difficult to determine which functions are included in a toolbox, or to decide which toolboxes your company really needs.
MATLAB can quickly process large data volumes using a variety of formats so once you are set up, things will probably move swiftly.
Mathcad comes complete with a series of worksheets, each clearly labeled as to use. PTC also offers some highly specialized worksheets for purchase. In addition, the community can post other worksheets, which are free to download.
Each worksheet provided by PTC uses a similar UI, so it’s easy for engineers to move between worksheets or between Mathcad and Creo and back, for instance. Mathcad is no slouch in the processing speed, either.
Both Mathcad and MATLAB provide specialized tools for numerous industries and uses.
Free Worksheet Libraries: Advantage Mathcad
We already mentioned the library of free and paid worksheets that PTC provides for Mathcad. Even though some are additional costs, the majority are free, and this majority includes all but the highly specialized ones.
MATLAB’s toolboxes are all separate purchases, making Mathcad a comparative bargain.
Training and Support: Tie Score
Mathcad provides free eLearning, live classroom learning, online help and a robust community to help customers get up and running quickly. This is a great benefit when just starting out as well as when engineers change jobs, or you must bring new hires on board. The developer’s portal is also a good source for technical advice.
MATLAB offers installation help, online tutorials and documentation as well as examples and a user forum for asking questions of other users.
Engineering Calculation Software Winner: PTC Mathcad
Both engineering calculation tools are excellent. PTC Mathcad is obviously designed for the engineering environment, while MATLAB betrays its roots as a mathematics tool designed for mathematicians clearly. Both have their fair share of mathematical bells and whistles. The choice comes down to which tool will work best in your environment.
Mathcad is mainly for engineers while MATLAB is for mathematicians.

As our Mathcad vs MATLAB analysis shows, we support Mathcad. We openly admit to a bit of bias, because we are one of PTC’s largest resellers. Even so, we tried to be fair and open, judging each tool on how well it works in the engineering design process, rather than just the emphasis on math, where the tools are evenly matched.
To learn more about the benefits of an engineering calculation tool in general, or Mathcad in particular, contact NxRev today.
Обзор программ для символьной математики
Символьная, или, как еще говорят, компьютерная, математика либо компьютерная алгебра, — большой раздел математического моделирования. В принципе, программы такого рода можно отнести к инженерным программам автоматизированного проектирования. Таким образом, в области инженерного проектирования выделяют три основных раздела:
- CAD — Computer Aided Design;
- CAM — Computer Aided Manufacturing;
- CAE — Computer Aided Engeneering.
Сегодня серьезное конструирование, градостроительство и архитектура, электротехника и масса смежных с ними отраслей, а также учебные заведения технической направленности уже не могут обойтись без систем автоматизированного проектирования (САПР), производства и расчетов. А математические пакеты являются составной частью мира CAE-систем, но эта часть никак не может считаться второстепенной, поскольку некоторые задачи вообще невозможно решить без помощи компьютера. Более того, к системам символьной математики сегодня прибегают даже теоретики (так называемые чистые, а не прикладные математики), например для проверки своих гипотез.
Всего каких-нибудь 10 лет назад эти системы считались сугубо профессиональными, но середина 90-х годов стала переломным моментом для мирового рынка CAD/CAM/CAE-систем массового применения. Тогда, впервые за долгое время, пакеты для параметрического моделирования с промышленными возможностями стали доступны пользователям персональных компьютеров. Создатели подобных систем учли требования широкого круга пользователей и таким образом дали возможность десяткам тысяч инженеров и математиков использовать на своих персональных рабочих местах новейшие достижения науки в области технологий CAD/CAM/CAE-систем.
Так что же умеют программы математического моделирования? Неужели они требуют от ученых умения программировать на тех или иных алгоритмических языках, отлаживать программы, отлавливать ошибки и тратить массу времени на получение результата? Нет, те времена давно прошли, и теперь в математических пакетах применяется принцип конструирования модели, а не традиционное «искусство программирования». То есть пользователь лишь ставит задачу, а методы и алгоритмы решения система находит сама. Более того, такие рутинные операции, как раскрывание скобок, преобразование выражений, нахождение корней уравнений, производных и неопределенных интегралов компьютер самостоятельно осуществляет в символьном виде, причем практически без вмешательства пользователя.
Современные математические пакеты можно использовать и как обычный калькулятор, и как средства для упрощения выражений при решении каких-либо задач, и как генератор графики или даже звука! Стандартными стали также средства взаимодействия с Интернетом, и генерация HTML-страниц выполняется теперь прямо в процессе вычислений. Теперь можно решать задачу и одновременно публиковать для коллег ход ее решения на своей домашней странице.
Рассказывать о программах математического моделирования и возможных областях их применения можно очень долго, но мы ограничимся лишь кратким обзором ведущих программ, укажем их общие черты и различия. В настоящее время практически все современные CAE-программы имеют встроенные функции символьных вычислений. Однако наиболее известными и приспособленными для математических символьных вычислений считаются Maple, MathCad, Mathematica и MatLab. Но, делая обзор основных программ символьной математики, мы укажем и на возможные альтернативы, идеологически схожие с тем или иным пакетом-лидером.
Так что же делают эти программы и как они помогают математикам? Основу курса математического анализа в высшей школе составляют такие понятия, как пределы, производные, первообразные функций, интегралы разных видов, ряды и дифференциальные уравнения. Тому, кто знаком с основами высшей математики, наверняка известны десятки правил нахождения пределов, взятия интегралов, нахождения производных и т.д. Если добавить к этому то, что для нахождения большинства интегралов нужно также помнить таблицу основных интегралов, то получается поистине огромный объем информации. И если какое-то время не тренироваться в решений подобных задач, то многое быстро забывается и для нахождения, например, интеграла посложнее придется уже заглядывать в справочники. Но ведь взятие интегралов и нахождение пределов в реальной работе не является главной целью вычислений. Реальная цель заключается в решении каких-либо проблем, а вычисления — всего лишь промежуточный этап на пути к этому решению.
С помощью описываемого ПО можно сэкономить массу времени и избежать многих ошибок при вычислениях. Естественно, CAE системы не ограничиваются только этими возможностями, но в данном обзоре мы сделаем упор именно на них.
Отметим только, что спектр задач, решаемых подобными системами, очень широк:
- проведение математических исследований, требующих вычислений и аналитических выкладок;
- разработка и анализ алгоритмов;
- математическое моделирование и компьютерный эксперимент;
- анализ и обработка данных;
- визуализация, научная и инженерная графика;
- разработка графических и расчетных приложений.
При этом отметим, что поскольку CAE-системы содержат операторы для базовых вычислений, то почти все алгоритмы, отсутствующие в стандартных функциях, можно реализовать посредством написания собственной программы.
Mathematica (http://www.wolfram.com/)
Минимальные требования к системе:
- процессор Pentium II или выше;
- 128 Мбайт оперативной памяти (рекомендуется 256 Мбайт или больше);
- 400-550 Мбайт дискового пространства;
- операционные системы: Windows 98/Me/ NT 4.0/2000/2003 Server/2003×64/XP/XP x64.
Компания Wolfram Reseach, Inc., разработавшая систему компьютерной математики Mathematica, по праву считается старейшим и наиболее солидным игроком в этой области. Пакет Mathematica (текущая версия 5.2) повсеместно применяется при расчетах в современных научных исследованиях и получил широкую известность в научной и образовательной среде. Можно даже сказать, что Mathematica обладает значительной функциональной избыточностью (там, в частности, есть даже возможность для синтеза звука).
Однако вряд ли эта мощная математическая система, претендующая на мировое лидерство, нужна секретарше или даже директору небольшой коммерческой фирмы, не говоря уже о рядовых пользователях. Но, несомненно, любая серьезная научная лаборатория или кафедра вуза должна иметь подобную программу, если там всерьез заинтересованы в автоматизации выполнения математических расчетов любой степени сложности. Несмотря на свою направленность на серьезные математические вычисления, системы класса Mathematica просты в освоении и могут использоваться довольно широкой категорией пользователей — студентами и преподавателями вузов, инженерами, аспирантами, научными работниками и даже учащимся математических классов общеобразовательных и специальных школ. Все они найдут в подобной системе многочисленные полезные возможности для применения.
При этом широчайшие функции программы не перегружают ее интерфейс и не замедляют вычислений. Mathematica неизменно демонстрирует высокую скорость символьных преобразований и численных расчетов. Программа Mathematica из всех рассматриваемых систем наиболее полна и универсальна, однако у каждой программы есть как свои достоинства, так и недостатки. А главное — у них есть свои приверженцы, которых бесполезно убеждать в превосходстве другой системы. Но те, кто серьезно работает с системами компьютерной математики, должны пользоваться несколькими программами, ибо только это гарантирует высокий уровень надежности сложных вычислений.
Отметим, что в разработках различных версий системы Mathematica, наряду с головной фирмой Wolfram Research, Inc., принимали участие другие фирмы и сотни специалистов высокой квалификации, в том числе математики и программисты. Есть среди них и представители пользующейся уважением и спросом за рубежом математической школы России. Система Mathematica является одной из самых крупных программных систем и реализует наиболее эффективные алгоритмы вычислений. К их числу, например, относится механизм контекстов, исключающий появление в программах побочных эффектов.
Система Mathematica сегодня рассматривается как мировой лидер среди компьютерных систем символьной математики для ПК, обеспечивающих не только возможности выполнения сложных численных расчетов с выводом их результатов в самом изысканном графическом виде, но и проведение особо трудоемких аналитических преобразований и вычислений. Версии системы под Windows имеют современный пользовательский интерфейс и позволяют готовить документы в форме Notebooks (записных книжек). Они объединяют исходные данные, описания алгоритмов решения задач, программ и результатов решения в самой разнообразной форме (математические формулы, числа, векторы, матрицы, таблицы и графики).
Mathematica была задумана как система, максимально автоматизирующая труд научных работников и математиков-аналитиков, поэтому она заслуживает изучения даже в качестве типичного представителя элитных и высокоинтеллектуальных программных продуктов высшей степени сложности. Однако куда больший интерес она представляет как мощный и гибкий математический инструментарий, который может оказать неоценимую помощь большинству научных работников, преподавателей университетов и вузов, студентов, инженеров и даже школьников.
С самого начала большое внимание уделялось графике, в том числе динамической, и даже возможностям мультимедиа — воспроизведению динамической анимации и синтезу звуков. Набор функций графики и изменяющих их действие опций очень широк. Графика всегда была сильной стороной различных версий системы Mathematica и обеспечивала им лидерство среди систем компьютерной математики.
В результате Mathematica быстро заняла ведущие позиции на рынке символьных математических систем. Особенно привлекательны обширные графические возможности системы и реализация интерфейса типа Notebook. При этом система обеспечивала динамическую связь между ячейками документов в стиле электронных таблиц даже при решении символьных задач, что принципиально и выгодно отличало ее от других подобных систем.
Кстати, центральное место в системах класса Mathematica занимает машинно-независимое ядро математических операций, которое позволяет переносить систему на различные компьютерные платформы. Для переноса системы на другую компьютерную платформу используется программный интерфейсный процессор Front End. Именно он определяет, какой вид имеет пользовательский интерфейс системы, то есть интерфейсные процессоры систем Mathematica для других платформ могут обладать своими нюансами. Ядро сделано достаточно компактным для того, чтобы можно было очень быстро вызвать из него любую функцию. Для расширения набора функций служат библиотека (Library) и набор пакетов расширения (Add-on Packages). Пакеты расширений готовятся на собственном языке программирования систем Mathematica и являются главным средством для развития возможностей системы и их адаптации к решению конкретных классов задач пользователя. Кроме того, системы имеют встроенную электронную справочную систему — Help, которая содержит электронные книги с реальными примерами.
Таким образом, Mathematica — это, с одной стороны, типичная система программирования на базе одного из самых мощных проблемноориентированных языков функционального программирования высокого уровня, предназначенная для решения различных задач (в том числе и математических), а с другой — интерактивная система для решения большинства математических задач в диалоговом режиме без традиционного программирования. Таким образом, Mathematica как система программирования имеет все возможности для разработки и создания практически любых управляющих структур, организации ввода-вывода, работы с системными функциями и обслуживания любых периферийных устройств, а с помощью пакетов расширения (Add-ons) появляется возможность подстраиваться под запросы любого пользователя, (хотя рядовому пользователю эти средства программирования могут и не понадобиться — он вполне обойдется встроенными математическими функциями системы, поражающими своим обилием и многообразием даже опытных математиков).
К недостаткам системы Mathematica следует отнести разве что весьма необычный язык программирования, обращение к которому, впрочем, облегчает подробная система помощи.
В качестве более простых, но идеологически близких альтернатив программы Mathematica можно назвать такие пакеты, как Maxima (http://maxima.sourceforge.net/) и Kalamaris (developer.kde.org/
Отметим, что система Maxima — это некоммерческий проект с открытым кодом. В программе Maxima для математической работы используется язык, сходный с языком в пакете Mathematica, а графический интерфейс построен по тем же принципам. Изначально программа называлась Xmaxima и создавалась для UNIX-систем.

Кроме того, сейчас у системы Maxima есть еще более мощный, эффективный и дружественный кроссплатформенный графический интерфейс, который называется Wxmaxima (http://wxmaxima.sourceforge.net). И хотя этот проект пока что существует лишь в бета-версии, он постепенно превращается в очень серьезную альтернативу коммерческим системам.
Что касается программы Kalamaris, то это также новый проект, который имеет подход и идеологию, схожие с системой Mathematica. Проект еще не завершен, но тоже является неплохой бесплатной альтернативой такому коммерческому монстру, как Mathematica.
Maple (http://www.maplesoft.com/)
Минимальные требования к системе:
• процессор Pentium III 650 МГц;
• 128 Мбайт оперативной памяти (рекомендуется 256 Мбайт);
• 400 Мбайт дискового пространства;
• операционные системы: Windows NT 4 (SP5)/98/ME/2000/2003 Server/XP Pro/XP Home.
Программа Maple (последняя версия 10.02) — своего рода патриарх в семействе систем символьной математики и до сих пор является одним из лидеров среди универсальных систем символьных вычислений. Она предоставляет пользователю удобную интеллектуальную среду для математических исследований любого уровня и пользуется особой популярностью в научной среде. Отметим, что символьный анализатор программы Maple является наиболее сильной частью этого ПО, поэтому именно он был позаимствован и включен в ряд других CAE-пакетов, таких как MathCad и MatLab, а также в состав пакетов для подготовки научных публикаций Scientific WorkPlace и Math Office for Word.
Пакет Maple — совместная разработка Университета Ватерлоо (шт. Онтарио, Канада) и Высшей технической школы (ETHZ, Цюрих, Швейцария). Для его продажи была создана специальная компания — Waterloo Maple, Inc., которая, к сожалению, больше прославилась математической проработкой своего проекта, чем уровнем его коммерческой реализации. В результате система Maple ранее была доступна преимущественно узкому кругу профессионалов. Сейчас эта компания работает совместно с более преуспевающей в коммерции и в проработке пользовательского интерфейса математических систем фирмой MathSoft, Inc. — создательницей весьма популярных и массовых систем для численных расчетов MathCad, ставших международным стандартом для технических вычислений.
Maple предоставляет удобную среду для компьютерных экспериментов, в ходе которых пробуются различные подходы к задаче, анализируются частные решения, а при необходимости программирования отбираются требующие особой скорости фрагменты. Пакет позволяет создавать интегрированные среды с участием других систем и универсальных языков программирования высокого уровня. Когда расчеты произведены и требуется оформить результаты, то можно использовать средства этого пакета для визуализации данных и подготовки иллюстраций для публикации. Для завершения работы остается подготовить печатный материал (отчет, статью, книгу) прямо в среде Maple, а затем можно приступать к очередному исследованию. Работа проходит интерактивно — пользователь вводит команды и тут же видит на экране результат их выполнения. При этом пакет Maple совсем не похож на традиционную среду программирования, где требуется жесткая формализация всех переменных и действий с ними. Здесь же автоматически обеспечивается выбор подходящих типов переменных и проверяется корректность выполнения операций, так что в общем случае не требуется описания переменных и строгой формализации записи.
Пакет Maple состоит из ядра (процедур, написанных на языке С и хорошо оптимизированных), библиотеки, написанной на Maple-языке, и развитого внешнего интерфейса. Ядро выполняет большинство базовых операций, а библиотека содержит множество команд — процедур, выполняемых в режиме интерпретации.
Интерфейс Maple основан на концепции рабочего поля (worksheet) или документа, содержащего строки ввода-вывода и текст, а также графику.
Работа с пакетом происходит в режиме интерпретатора. В строке ввода пользователь задает команду, нажимает клавишу Enter и получает результат — строку (или строки) вывода либо сообщение об ошибочно введенной команде. Тут же выдается приглашение вводить новую команду и т.д.
Интерфейс Maple
Рабочие окна (листы) системы Maple могут быть использованы либо как интерактивные среды для решения задач, либо как система для подготовки технической документации. Исполнительные группы и электронные таблицы упрощают взаимодействие пользователя с движком Maple, выполняя роль тех первичных средств, при помощи которых в систему Maple передаются запросы на выполнение конкретных задач и вывод результатов. Оба эти типа первичных средств допускают возможность ввода команд Maple.
Система Maple позволяет вводить электронные таблицы, содержащие как числа, так и символы. Они совмещают в себе математические возможности системы Maple с уже знакомым форматом из строк и столбцов традиционных электронных таблиц. Электронные таблицы системы Maple можно использовать для создания таблиц формул.
Для облегчения документирования и организации результатов вычислений имеются опции разбиения на параграфы и разделы, а также добавления гиперссылок. Гиперссылка является навигационным средством. Одним щелчком мыши по ней вы можете перейти к другой точке в пределах рабочего листа, к другому рабочему листу, к странице помощи, к рабочему листу на Web-сервере или к любой другой Web-странице.
Рабочие листы можно организовать иерархически, в виде разделов и подразделов. Разделы и подразделы можно как расширять, так и сворачивать. Система Maple, подобно другим текстовым редакторам, поддерживает опцию закладок.
Вычисления в Maple
Систему Maple можно использовать и на самом элементарном уровне ее возможностей — как очень мощный калькулятор для вычислений по заданным формулам, но главным ее достоинством является способность выполнять арифметические действия в символьном виде, то есть так, как это делает человек. При работе с дробями и корнями программа не приводит их в процессе вычислений к десятичному виду, а производит необходимые сокращения и преобразования в столбик, что позволяет избежать ошибок при округлении. Для работы с десятичными эквивалентами в системе Maple имеется специальная команда, аппроксимирующая значение выражения в формате чисел с плавающей запятой. Система Maple вычисляет конечные и бесконечные суммы и произведения, выполняет вычислительные операции с комплексными числами, легко приводит комплексное число к числу в полярных координатах, вычисляет числовые значения элементарных функций, а также знает много специальных функций и математических констант (таких, например, как «е» и «пи»). Maple поддерживает сотни специальных функций и чисел, встречающихся во многих областях математики, науки и техники. Приведем лишь некоторые из них:
- функция ошибок;
- эйлерова константа;
- экспоненциальный интеграл;
- эллиптическая интегральная функция;
- гамма-функция;
- зета-функция;
- ступенчатая функция Хевисайда;
- дельта-функция Дирака;
- бесселева и модифицированная бесселева функции.
Система Maple предлагает различные способы представления, сокращения и преобразования выражений, например такие операции, как упрощение и разложение на множители алгебраических выражений и приведение их к различному виду. Таким образом, Maple можно использовать для решения уравнений и систем.
Maple также имеет множество мощных инструментальных средств для вычисления выражений с одной или несколькими переменными. Программу можно использовать для решения задач дифференциального и интегрального исчисления, вычисления пределов, разложений в ряды, суммирования рядов, умножения, интегральных преобразований (таких как преобразование Лапласа, Z-преобразование, преобразование Меллина или Фурье), а также для исследования непрерывных или кусочно-непрерывных функций.
Maple может вычислять пределы функций, как конечные, так и стремящиеся к бесконечности, а также распознает неопределенности в пределах. В этой системе можно решать множество обычных дифференциальных уравнений (ODE), а также дифференциальные уравнения в частных производных (PDE), в том числе задачи с начальными условиями (IVP) и задачи с граничными условиями (BVP).
Одним из наиболее часто используемых в системе Maple пакетов программ является пакет линейной алгебры, содержащий мощный набор команд для работы с векторами и матрицами. Maple может находить собственные значения и собственные векторы операторов, вычислять криволинейные координаты, находить матричные нормы и вычислять множество различных типов разложения матриц.
Для технических применений в Maple включены справочники физических констант и единицы физических величин с автоматическим пересчетом формул. Особенно эффективна Maple при обучении математике. Высочайший интеллект этой системы символьной математики сочетается с прекрасными средствами математического численного моделирования и с просто потрясающими возможностями графической визуализации решений. Такие системы, как Maple, можно применять как в преподавании, так и для самообразования при изучении математики от самых азов до вершин.
Графика в Maple
Система Maple поддерживает как двумерную, так и трехмерную графику. Таким образом, можно представить явные, неявные и параметрические функции, а также многомерные функции и просто наборы данных в графическом виде и визуально искать закономерности.
Графические средства Maple позволяют строить двумерные графики сразу нескольких функций, создавать графики конформных преобразований функций с комплексными числами и строить графики функций в логарифмической, двойной логарифмической, параметрической, фазовой, полярной и контурной форме. Можно графически представлять неравенства, неявно заданные функции, решения дифференциальных уравнений и корневые годографы.
Maple может строить поверхности и кривые в трехмерном представлении, включая поверхности, заданные явной и параметрической функциями, а также решениями дифференциальных уравнений. При этом представлять можно не только в статическом виде, но и в виде двух- или трехмерной анимации. Эту особенность системы можно использовать для отображения процессов, протекающих в режиме реального времени.
Отметим, что для подготовки результата и документирования исследований в системе имеются все возможности выбора шрифтов для названий, надписей и другой текстовой информации на графиках. При этом можно варьировать не только шрифты, но и яркость, цвет и масштаб графика.
Специализированные приложения
Обширный набор мощных инструментальных приложений Maple PowerTools и пакетов для таких областей, как анализ методом конечных элементов (FEM), нелинейная оптимизация и др., полностью удовлетворят пользователей с университетским математическим образованием. В Maple включены также пакеты подпрограмм для решения задач линейной и тензорной алгебры, евклидовой и аналитической геометрии, теории чисел, теории вероятностей и математической статистики, комбинаторики, теории групп, интегральных преобразований, численной аппроксимации и линейной оптимизации (симплекс-метод), а также задач финансовой математики и многих, многих других.
Для финансовых расчетов предназначен программный пакет Finance. C его помощью можно вычислять текущую и накопленную сумму ежегодной ренты, совокупную ежегодную ренту, сумму пожизненной ренты, совокупную пожизненную ренту и процентный доход на облигации. Вы можете строить таблицу амортизации, определять реальную сумму ставки для сложных процентов и вычислять текущее и будущее фиксированное количество для конкретной ставки и сложных процентов.
Программирование
Система Maple использует процедурный язык 4-го поколения (4GL). Этот язык специально предназначен для быстрой разработки математических подпрограмм и пользовательских приложений. Синтаксис данного языка аналогичен синтаксису универсальных языков высокого уровня: C, Fortran, Basic и Pascal.
Maple может генерировать код, совместимый с такими языками программирования, как Fortran или C, и с языком набора текста LaTeX, который пользуется большой популярностью в научном мире и применяется для оформления публикаций. Одно из преимуществ этого свойства — способность обеспечивать доступ к специализированным числовым программам, максимально ускоряющим решение сложных задач. Например, используя систему Maple, можно разработать определенную математическую модель, а затем с ее помощью сгенерировать код на языке C, соответствующий этой модели. Язык 4GL, специально оптимизированный для разработки математических приложений, позволяет сократить процесс разработки, а настроить пользовательский интерфейс помогают элементы Maplets или документы Maple со встроенными графическими компонентами.
Одновременно в среде Maple можно подготовить и документацию к приложению, так как средства пакета позволяют создавать технические документы профессионального вида, содержащие текст, интерактивные математические вычисления, графики, рисунки и даже звук. Вы также можете создавать интерактивные документы и презентации, добавляя кнопки, бегунки и другие компоненты, и, наконец, публиковать документы в Интернете и развертывать интерактивные вычисления в Сети, используя сервер MapleNet.
Интернет-совместимость
Maple является первым универсальным математическим пакетом, который предлагает полную поддержку стандарта MathML 2.0, управляющего как внешним видом, так и смыслом математики в Интернете. Эта эксклюзивная функция делает текущую версию MathML основным средством Интернет-математики, а также устанавливает новый уровень совместимости многопользовательской среды. TCP/IP-протокол обеспечивает динамический доступ к информации из других Интернет-ресурсов, например к данным для финансового анализа в реальном времени или к данным о погоде.
Перспективы развития
Последние версии Maple, помимо дополнительных алгоритмов и методов решения математических задач, получили более удобный графический интерфейс, продвинутые инструменты визуализации и построения графиков, а также дополнительные средства программирования (в том числе по совместимости с универсальными языками программирования). Начиная с девятой версии в пакет был добавлен импорт документов из программы Mathematica, а в справочную систему были введены определения математических и инженерных понятий и расширена навигация по страницам справки. Кроме того, было повышено полиграфическое качество формул, особенно при форматировании больших и сложных выражений, а также значительно сокращен размер MW-файлов для хранения рабочих документов Maple.
Таким образом, Maple — это, пожалуй, наиболее удачно сбалансированная система и бесспорный лидер по возможностям символьных вычислений для математики. При этом оригинальный символьный движок сочетается здесь с легко запоминающимся структурным языком программирования, так что Maple может быть использована как для небольших задач, так и для серьезных проектов.
К недостаткам системы Maple можно отнести лишь ее некоторую «задумчивость», причем не всегда обоснованную, а также очень высокую стоимость этой программы (в зависимости от версии и набора библиотек цена ее доходит до нескольких десятков тысяч долл., правда студентам и научным работникам предлагаются дешевые версии — за несколько сотен долл.).
Пакет Maple широко распространен в университетах ведущих научных держав, в исследовательских центрах и компаниях. Программа постоянно развивается, вбирая в себя новые разделы математики, приобретая новые функции и обеспечивая лучшую среду для исследовательской работы. Одно из основных направлений развития этой системы — повышение мощности и достоверности аналитических (символьных) вычислений. Это направление представлено в Maple наиболее широко. Уже сегодня Maple может выполнять сложнейшие аналитические вычисления, которые нередко не по силам даже опытным математикам. Конечно же, Maple не способна на гениальные догадки, но зато рутинные и массовые расчеты система выполняет с блеском. Другое важное направление — повышение эффективности численных расчетов. В результате этого заметно возросла перспектива использования Maple в численном моделировании и в выполнении сложных вычислений — в том числе с произвольной точностью. И наконец, тесная интеграция Maple с другими программными средствами — еще одно важное направление развития этой системы. Ядро символьных вычислений Maple уже включено в состав целого ряда систем компьютерной математики — от систем для широкого круга пользователей типа MathCad до одной из лучших систем для численных расчетов и моделирования MatLab.
Все эти возможности в сочетании с прекрасно выполненным и удобным пользовательским интерфейсом и мощной справочной системой делают Maple первоклассной программной средой для решения самых разнообразных математических задач, способной оказать пользователям действенную помощь в решении учебных и реальных научно-технических задач.
Альтернативные пакеты
В качестве более простых, но идеологически близких альтернатив программе Maple можно отметить такие пакеты, как Derive (http://www.chartwellyorke.com/derive.html), Scientific WorkPlace (http://www.mackichan.com/) и YaCaS (www.xs4all.nl/
Как мы уже говорили, система Scientific WorkPlace (SWP, текущая версия 5.5) поначалу развивалась как редактор научных текстов, позволяя легко набирать и редактировать математические формулы. Однако со временем компания MacKichan Software, Inc. (разработчик системы Scientific WorkPlace) лицензировала символьный движок Maple у компании Waterloo Maple, Inc., и теперь эта программа объединяет простой в использовании текстовый процессор, обеспечивающий создание математических текстов и систему компьютерной алгебры в одной среде. Благодаря встроенной системе компьютерной алгебры вы можете производить вычисления прямо в документе. Конечно, у этой программы нет таких возможностей, как у Maple, однако она маленькая и простая в использовании.
Что касается YaCaS (аббревиатура от выражения Yet Another Computer Algebra System — еще одна система компьютерной алгебры), то это бесплатная кроссплатформенная альтернатива Maple, построенная на тех же принципах. Мощный и высокоэффективный движок YaCaS полностью реализован на C++ на условиях открытой лицензии (OpenSource). Интерфейс, конечно, более бедный и простой, чем у маститых конкурентов, но довольно удобный.
А вот маленькая коммерческая математическая система Derive (текущая версия 6.1) существует уже довольно давно, но, конечно, не может рассматриваться как полноценная альтернатива Maple, хотя она и по сей день привлекательна своей нетребовательностью к аппаратным ресурсам ПК. Более того, при решении задач умеренной сложности она демонстрирует даже более высокое быстродействие и большую надежность решения, чем первые версии систем Maple и Mathematica. Впрочем, системе Derive трудно всерьез конкурировать с этими системами — как по обилию функций и правил аналитических преобразований, так и по возможностям машинной графики и по удобству пользовательского интерфейса. Пока что Derive является больше учебной системой компьютерной алгебры начального уровня.
И хотя новейшая версия Derive 6 под Windows уже имеет современный удобный интерфейс, он во многом уступает изысканному интерфейсу маститых конкурентов. А в плане возможности графической визуализации результатов вычислений Derive и вообще далеко отстает от конкурентов.


MatLab (http://www.mathworks.com/)
Минимальные требования к системе:
- процессор Pentium III, 4, Xeon, Pentium M; AMD Athlon, Athlon XP, Athlon MP;
- 256 Мбайт оперативной памяти (рекомендуется 512 Мбайт);
- 400 Мбайт дискового пространства (только для самой системы MatLab и ее Help);
- операционная система Microsoft Windows 2000 (SP3)/XP.
Система MatLab относится к среднему уровню продуктов, предназначенных для символьной математики, но рассчитана на широкое применение в сфере CAE (то есть сильна и в других областях). MatLab — одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. Это нашло отражение и в самом названии системы — MATrix LABoratory, то есть матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что данная ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления.
Несмотря на то что изначально MatLab предназначалась исключительно для вычислений, в процессе эволюции (а сейчас выпущена уже версия 7), в дополнение к прекрасным вычислительным средствам, у фирмы Waterloo Maple по лицензии для MatLab было приобретено ядро символьных преобразований, а также появились библиотеки, которые обеспечивают в MatLab уникальные для математических пакетов функции. Например, широко известная библиотека Simulink, реализуя принцип визуального программирования, позволяет построить логическую схему сложной системы управления из одних только стандартных блоков, не написав при этом ни строчки кода. После конструирования такой схемы можно детально проанализировать ее работу.
В системе MatLab также существуют широкие возможности для программирования. Ее библиотека C Math (компилятор MatLab) является объектной и содержит свыше 300 процедур обработки данных на языке C. Внутри пакета можно использовать как процедуры самой MatLab, так и стандартные процедуры языка C, что делает этот инструмент мощнейшим подспорьем при разработке приложений (используя компилятор C Math, можно встраивать любые процедуры MatLab в готовые приложения).
Библиотека C Math позволяет пользоваться следующими категориями функций:
- операции с матрицами;.
- сравнение матриц;
- решение линейных уравнений;
- разложение операторов и поиск собственных значений;
- нахождение обратной матрицы;
- поиск определителя;
- вычисление матричного экспоненциала;
- элементарная математика;
- функции beta, gamma, erf и эллиптические функции;
- основы статистики и анализа данных;
- поиск корней полиномов;
- фильтрация, свертка;
- быстрое преобразование Фурье (FFT);
- интерполяция;
- операции со строками;
- операции ввода-вывода файлов и т.д.
При этом все библиотеки MatLab отличаются высокой скоростью численных вычислений. Однако матрицы широко применяются не только в таких математических расчетах, как решение задач линейной алгебры и математического моделирования, обсчета статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния динамических объектов и систем. Именно универсальность аппарата матричного исчисления значительно повышает интерес к системе MatLab, вобравшей в себя лучшие достижения в области быстрого решения матричных задач. Поэтому MatLab давно уже вышла за рамки специализированной матричной системы, превратившись в одну из наиболее мощных универсальных интегрированных систем компьютерной математики.
Для визуализации моделирования система MatLab имеет библиотеку Image Processing Toolbox, которая обеспечивает широкий спектр функций, поддерживающих визуализацию проводимых вычислений непосредственно из среды MatLab, увеличение и анализ, а также возможность построения алгоритмов обработки изображений. Усовершенствованные методы графической библиотеки в соединении с языком программирования MatLab обеспечивают открытую расширяемую систему, которая может быть использована для создания специальных приложений, пригодных для обработки графики.
Основные средства библиотеки Image Processing Tollbox:
- построение фильтров, фильтрация и восстановление изображений;
- увеличение изображений;
- анализ и статистическая обработка изображений;
- выделение областей интересов, геометрические и морфологические операции;
- манипуляции с цветом;
- двумерные преобразования;
- блок обработки;
- средство визуализации;
- запись/чтение графических файлов.
Таким образом, систему MatLab можно использовать для обработки изображений, сконструировав собственные алгоритмы, которые будут работать с массивами графики как с матрицами данных. Поскольку язык MatLab оптимизирован для работы с матрицами, в результате обеспечивается простота использования, высокая скорость и экономичность проведения операций над изображениями.
Таким образом, программу MatLab можно использовать для восстановления испорченных изображений, шаблонного распознавания объектов на изображениях или же для разработки каких-либо собственных оригинальных алгоритмов обработки изображений. Библиотека Image Processing Tollbox упрощает разработку высокоточных алгоритмов, поскольку каждая из функций, включенных в эту библиотеку, оптимизирована для максимального быстродействия, эффективности и достоверности вычислений. Кроме того, библиотека обеспечивает разработчика многочисленным инструментарием для создания собственных решений и для реализаций сложных приложений обработки графики. А при анализе изображений использование мгновенного доступа к мощным средствам визуализации помогает моментально увидеть эффекты увеличения, восстановления и фильтрации.
Среди других библиотек системы MatLab можно также отметить System Identification Toolbox — набор инструментов для создания математических моделей динамических систем, основанных на наблюдаемых входных/выходных данных. Особенностью этого инструментария является наличие гибкого пользовательского интерфейса, позволяющего организовать данные и модели. Библиотека System Identification Toolbox поддерживает как параметрические, так и непараметрические методы. Интерфейс системы облегчает предварительную обработку данных, работу с итеративным процессом создания моделей для получения оценок и выделения наиболее значимых данных. Быстрое выполнение с минимальными усилиями таких операций, как открытие/сохранение данных, выделение области возможных значений данных, удаление погрешностей, предотвращение ухода данных от характерного для них уровня.
Наборы данных и идентифицируемые модели организуются графически, что позволяет легко вызвать результаты предыдущих анализов в течение процесса идентификации системы и выбрать следующие возможные шаги процесса. Основной пользовательский интерфейс организует данные для показа уже полученного результата. Это облегчает быстрое сравнение по оценкам моделей, позволяет выделять графическими средствами наиболее значимые модели и исследовать их показатели.
А что касается математических вычислений, то MatLab предоставляет доступ к огромному количеству подпрограмм, содержащихся в библиотеке NAG Foundation Library компании Numerical Algorithms Group Ltd (инструментарий имеет сотни функций из различных областей математики, и многие из этих программ были разработаны широко известными в мире специалистами). Это уникальная коллекция реализаций современных численных методов компьютерной математики, созданных за последние три десятка лет. Таким образом, MatLab вобрала и опыт, и правила, и методы математических вычислений, накопленные за тысячи лет развития математики. Одну только прилагаемую к системе обширную документацию вполне можно рассматривать как фундаментальный многотомный электронный справочник по математическому обеспечению.
Из недостатков системы MatLab можно отметить невысокую интегрированность среды (очень много окон, с которыми лучше работать на двух мониторах), не очень внятную справочную систему (а между тем объем фирменной документации достигает почти 5 тыс. страниц, что делает ее трудно обозримой) и специфический редактор кода MatLab-программ. Сегодня система MatLab широко используется в технике, науке и образовании, но все-таки она больше подходит для анализа данных и организации вычислений, нежели для чисто математических выкладок.
Поэтому для проведения аналитических преобразований в MatLab используется ядро символьных преобразований Maple, а из Maple для численных расчетов можно обращаться к MatLab. Ведь недаром символьная математика Maple вошла составной частью в целый ряд современных пакетов, а численный анализ от MatLab и наборы инструментов (Toolboxes) уникальны. Тем не менее математические пакеты Maple и MatLab — это интеллектуальные лидеры в своих классах, это образцы, определяющие развитие компьютерной математики.
В качестве более простых, но идеологически близких альтернатив программе MatLab можно отметить такие пакеты, как Octave (www.octave.org), KOctave (bubben.homelinux.net/
Octave — это программа числовых вычислений, хорошо совместимая с MatLab. Интерфейс системы Octave, конечно, беднее, и у нее нет таких уникальных библиотек, как у MatLab, зато это очень простая в освоении программа, нетребовательная к системным ресурсам. Распространяется Octave на условиях открытой лицензии с исходным кодом (OpenSource) и может стать хорошим подспорьем для учебных заведений.
Программа KOctave по сути представляет собой более продвинутый графический интерфейс для системы Octave. В результате использования KOctave система Octave становится полностью похожей на MatLab.

Простенькая математическая программа Genius, естественно, не может поспорить по мощности с именитыми конкурентами, но идеология математических преобразований у нее сходна с MatLab и Maple. Распространяется Genius тоже на условиях открытой лицензии с исходным кодом (OpenSource). Она имеет собственный язык GEL, развитый инструментарий Genius Math Tool и хорошую систему подготовки документов для публикации (с использованием таких языков оформления, как LaTeX, Troff (eqn) и MathML). Очень хороший графический интерфейс программы Genius сделает работу с ней простой и удобной.
MathCad (http://www.mathsoft.com/, http://www.mathcad.com/)
Минимальные требования к системе:
- процессор Pentium II или выше;
- 128 Мбайт оперативной памяти (рекомендуется 256 Мбайт или больше);
- 200-400 Мбайт дискового пространства;
- операционные системы: Windows 98/Me/NT 4.0/2000/XP.
В отличие от мощного и ориентированного на высокоэффективные вычисления при анализе данных пакета MatLab, программа MathCad (текущая версия 13) — это, скорее, простой, но продвинутый редактор математических текстов с широкими возможностями символьных вычислений и прекрасным интерфейсом. MathCad не имеет языка программирования как такового, а движок символьных вычислений заимствован из пакета Maple. Зато интерфейс программы MathCad очень простой, а возможности визуализации богатые. Все вычисления здесь осуществляются на уровне визуальной записи выражений в общеупотребительной математической форме. Пакет имеет хорошие подсказки, подробную документацию, функцию обучения использованию, целый ряд дополнительных модулей и приличную техническую поддержку производителя (как можно видеть по версии продукта, обновление этой программы происходит чаще, чем других, упомянутых в этом обзоре, хотя год выпуска первой версии у них примерно один и тот же — 1996-1997 годы). Однако пока математические возможности MathCad в области компьютерной алгебры намного уступают системам Maple, Mathematica, MatLab и даже малютке Derive. Однако по программе MathCad выпущено много книг и обучающих курсов, в том числе у нас в России. Сегодня эта система стала буквально международным стандартом для технических вычислений и даже многие школьники осваивают и используют MathCad.
Для небольшого объема вычислений MathCad идеален — здесь все можно проделать очень быстро и эффективно, а затем оформить работу в привычном виде (MathCad предоставляет широкие возможности для оформления результатов, вплоть до публикации в Интернете). Пакет имеет удобные возможности импорта/экспорта данных. Например, можно работать с электронными таблицами Microsoft Excel прямо внутри MathCad-документа.
В общем, MathCad — это очень простая и удобная программа, которую можно рекомендовать широкому кругу пользователей, в том числе не очень сведущих в математике, а особенно тем, кто только постигает ее азы.
В качестве более дешевых, простых, но идеологически близких альтернатив программе MathCad можно отметить такие пакеты, как уже упомянутый YaCaS, коммерческую систему MuPAD (http://www.mupad.de/) и бесплатную программу KmPlot (http://edu.kde.org/kmplot/).
Программа KmPlot распространяется на условиях открытой лицензии с исходным кодом (OpenSource). Она очень проста в освоении и подойдет даже школьникам.
Что касается программы MuPAD, то она представляет собой современную интегрированную систему математических вычислений, при помощи которой можно производить численные и символьные преобразования, а также чертить двумерные и трехмерные графики геометрических объектов. Однако по своим возможностям MuPAD значительно уступает своим маститым конкурентам и является, скорее, системой начального уровня, предназначенной для обучения.
Заключение
Несмотря на то что в области компьютерной математики не наблюдается такого разнообразия, как, скажем, в среде компьютерной графики, за видимой ограниченностью рынка математических программ скрываются их поистине безграничные возможности! Как правило, CAE-системы охватывают практически все области математики и инженерных расчетов.
Когда-то системы символьной математики были ориентированы исключительно на узкий круг профессионалов и работали на больших компьютерах (мэйнфреймах). Но с появлением ПК эти системы были переработаны под них и доведены до уровня массовых серийных программных систем. Сейчас на рынке сосуществуют системы символьной математики самого разного калибра — от рассчитанной на широкий круг потребителей системы MathCad до компьютерных монстров Mathematica, MatLab и Maple, имеющих тысячи встроенных и библиотечных функций, широкие возможности графической визуализации вычислений и развитые средства для подготовки документации.
Отметим, что практически все эти системы работают не только на персональных компьютерах, оснащенных популярными операционными системами Windows, но и под управлением операционных системы Linux, UNIX, Mac OS, а также на КПК. Они давно знакомы пользователям и широко распространены на всех платформах — от наладонника до суперкомпьютера.