Математика на PC
27 января 2005
Рубрика: Технологии.
Автор: Михаил Мардамшин.
pic

Продолжение. Начало — http://ru.infocom.uz/more.php?id=606_0_1_20_M

Ты должен писать так, чтобы полуграмотный
прочел и неграмотному все смог точно рассказать…
Максим Горький

2. Пакет MathCAD

В прошлой статье мы рассказали вам о математическом пакете Matlab. Сегодня речь пойдет о его главном «заклятом друге» — пакете MathCAD 2001 Professional производства компании MathSoft. Заклятом — потому, что этот пакет является главным конкурентом Matlab как на производстве, так и в науке и образовании, а друге — потому, что MathCAD интегрирован с ним довольно-таки тесно, как мы увидим позже. Что особенно интересно, так это своеобразное «разделение труда» между этими программными пакетами: Matlab, конечно, очень хорош как обучающая среда, но все же больше предназначен для крутых профи в белых халатах (и не только), MathCAD же пакет более образовательно-популяризаторский и прикладной, этакая «Занимательная математика», где вместо ручки и карандаша мышь и клавиатура. Что совсем не мешает исследовать в нем и сверхсложные функции, и оперировать с огромными матричными массивами и создавать анимацию, и публиковаться в Вебе… да и мало ли еще что.

Знакомство с MathCAD начнем, вызвав программу щелчком по ее иконке. Тут же появится основное окно программы (рис.1)

pic

По умолчанию вместе с ним появляется окно Ресурсного Центра (Resource Center) — очень удобного навигатора по встроенному учебнику, файлам помощи и примерам. Оно показано на рис.2

pic

Что сразу бросается в глаза, при открытии какого-либо расчета, как на рис.1 — «нормальный» вид всех формул и результатов. Так и хочется думать, что перед нами — готовый отформатированный документ — хоть сейчас подшивай в курсовую или дипломную. А это так и есть! MathCAD имеет возможности форматирования текста и графики не хуже иного текстового редактора. В этом можно убедиться, взглянув на окно программы — тут и выравнивание текста и формул слева, справа и по центру, и вставка гиперссылок, и выбор шрифта, маркированного списка и прочих «прибамбасов», нужных, чтобы расчет выглядел красиво. Если же расположение какой-то формулы, графика или текстового фрагмента Вас не устраивает, то его можно легко перетащить мышью на нужную позицию. И, что самое приятное — все вычисления происходят здесь же, на глазах у пользователя! Не нужно документ ниоткуда конвертировать, импортировать и так далее — нужные исправления и дополнения вносятся прямо «на лист». Готовый документ можно просмотреть с помощью стандартной кнопки и распечатать, причем в соответствии с принципом WYSYWG, что видно на экране, то появится и на бумаге.
Вычислять в MathCAD — особенное удовольствие: форма записи всех выражений — как на бумаге, а считает компьютер. То есть если в других программных пакетах (как в Matlab) вычислять можно с помощью особого языка программирования, то в данном случае не нужно знать вообще никакого языка — все формулы записываются установленными математическими знаками. Для этого в MathCAD существуют специальные панели с латинскими, греческими буквами, знаками корня и прочими необходимыми символами. Их можно вызвать из меню View\Panels. Некоторые из панелей показаны на рис.3,а.

pic

А на рис.3,б изображен пример нахождения простейшей функции, который читатель может сделать и сам. При этом я совершенно не рискую его утомить, потому что алгоритм всех операций — легче некуда. Итак, приступим.

Открыв MathCAD, переходим в окно программы, щелкаем мышкой в любом его месте. Тут же на этом месте появляется крестик красного цвета — указатель +. Там, где этот крестик находится, будут появляться цифры и формулы при наборе. Установив указатель, где удобно, начинаем набирать функцию. Вот здесь надо обратить внимание на некоторые тонкости. Например, когда мы определяем какую-то функцию или переменную, то есть присваиваем им значения, нельзя набирать знак простого равенства — программа воспримет это, как ошибку. Вместо «=» в этом случае надо набирать «:» (двоеточие). Когда же нужно вычислять готовый результат — просто набираем нужную функцию (в нашем случае — f(x)) и сразу после этого нажимаем обычный знак равенства. Ответ появится незамедлительно!
Еще один нюанс — MathCAD считывает изображения с рабочего поля, как и человек — сверху вниз и слева направо. Поэтому, если вы пожелаете вычислить какую-либо функцию, а ее значения будут находиться ниже, программа воспримет это как ошибку и выдаст сообщение: «Переменная функции не определена сверху» (The variable of function is not defined above).
Чтобы не влезать в дебри функций операторов, приведу список клавиш, которые нужно нажать, чтобы определить данную функцию:

«f(x):x+6*(x^3-1)»

Теперь зададим значение икса:

«x:6»

И получим ответ:

«f(x)=»

После знака равенства появится значение функции для данного х — 222. Обратите внимание на маленький черный квадратик, который появился сразу после ответа — умная программа делает маленькую услугу пользователю, предоставляя место, в котором можно написать еще что-нибудь, например единицу измерения. Такие квадратики появлялись и при определении функций — стоит пользователю набрать одну из скобок — а вторая уже тут как тут, и между скобок уже обозначено место для переменной. Так и вспоминается верный пес, который приносит хозяину трубку, газету и прочие полезные вещи… А квадратик, кстати, называется placeholder, что по-английски переводится «удерживающий место». Как мы увидим позже, он играет в MathCAD важную роль.

Если у вас нужно вычислить функцию не для одной переменной, а для целой матрицы — это тоже не проблема. Например, чтобы задать строку чисел от 1 до 10, нужно набрать: «x:0;10». Потом определить функцию (как это сделать, мы уже проходили), и можно получить ответ прямо на рабочем поле. Для этого также наберем: для значений самой переменной — «х=», для значений функции — «f(x)=». Но результат будет уже не в форме одиночного числа, а целой матрицы чисел. Как все это выглядит, показано на рис.4.

pic

Теперь оставим в стороне функции и матрицы и поговорим о графиках. Они создаются довольно просто — в меню вставки (Insert) выбирается вид графика (Graph) — двумерный, трехмерный, полярный, диаграмма или другие. Естественно, график должен находиться ниже и правее функции, которую он будет изображать. Для начала выберем простой двумерный график для массива данных, показанного на рис. 4.
Когда мы вставляем его на рабочее поле, появляется пустая «коробка», в которой никакого рисунка как не было, так и нет. Ничего страшного! Около каждой оси графика можно заметить placeholder — тот самый квадратик, который можно заполнить информацией по нашему усмотрению. Так и сделаем это: в одном из них, который ближе к оси абсцисс, наберем Х, а в том, который ближе к оси ординат — f(X). После чего нажмем Enter — и результат не заставит себя долго ждать! Он будет примерно таким, как на рис.5

pic

Вообще-то мы выбрали простейший вид графика. Если бы у нас была функция в 3-х координатах, то ее можно было бы показать несколькими способами: в форме пространственной фигуры из точек, «каркаса», огибающих и так далее. Возможности же форматирования этих изображений ничуть не меньше, чем в Matlab. На рис.6, а-е показаны только наиболее распространенные из них.
Совместить 2 графика также несложно — надо лишь добавить 1 placeholder к каждой из осей этого графика. Если мы определили несколько переменных и к каждому из них — одну или несколько функций, то все их можно отобразить на рисунке. Поскольку placeholder’у все равно, какую информацию мы в него впишем, можно показать графически одну или несколько функций относительно других, функцию и ее производные — и все это на одном и том же координатном пространстве! Разумеется, такое можно сделать и в Matlab, но согласитесь — в данном случае это все же легче.

pic

На рис.7 изображен график 2 функций, «наложенных» друг на друга.
Кроме того, MathCAD поддерживает импорт битовых изображений. Если даже этих возможностей недостаточно, то фирмой MathSoft разработано специальное приложение, ориентированное специально на работу с графиками — Axum. В нем можно не только отображать данные всеми мыслимыми и немыслимыми способами, но и конвертировать их в различные виды изображений — BMP, JPEG и др.
Но даже не эти возможности делают MathCAD таким непохожим на других. Все описанные функции присутствуют и в других математических пакетах в той или иной форме. Но из всех программ (которые, по крайней мере, знает автор) лишь в MathCAD возможна пошаговая анимация графика с помощью одной-единственной функции FRAME (кадр), причем он тут же конвертируется в файл видео для Windows (.avi)!

pic

На рис.8,а показан такой график для движения пружины. Да что график — целую Землю можно заставить вращаться, пока держится нажатой клавиша Shift (рис.8,б).
С чем интегрирован MathCAD, то есть какие файлы в него можно импортировать, в какие форматы можно экспортировать результаты наших вычислений? По-моему, легче спросить, что этот пакет не поддерживает.

Начнем с того, что в MathCAD может работать совместно с различными САПР: AutoCAD — черчение , SolidWorks — компьютерный сопромат, Visio — проектирование радиосхем, OrCAD — проектирование тех же схем в другой среде, VisSim — пакет для анализа сигналов и форм колебаний. Поддерживается также импорт результатов симуляции из радиотехнической САПР Multisim, о которой мы писали в майском номере журнала. Далее работает экспорт результатов в Microsoft Excel и работа с ними. Наконец, возможно даже конвертирование данных из MathCAD в Matlab. В уже упомянутом Ресурсном центре приводятся примеры такого взаимодействия.
Вообще справочная система в MathCAD наиболее подробная и вместе с тем универсальная. Уж на что в Matlab подробный Help, но здесь и он остается далеко позади: стандартный файл помощи дополнен подробным учебником с большим количеством примеров вычислений и взаимодействий с другими программами. Разумеется, в Matlab есть огромное количество тематических примеров (Demos), но даже там они не разбираются так досконально. Приведу такой пример: в примере о решении дифференциальных уравнений подробно рассмотрен вопрос о том, что такое производная и само дифференциальное уравнение! Кстати, дифференциальные уравнения решаются ненамного сложнее остальных. И записываются также в общепринятой форме (рис.9).

pic

Конечно, все эти замечательные свойства не работали бы так эффективно, если бы MathCAD не был оптимизирован для работы с большими массивами данных. Так же, как и в Matlab, здесь созданы специальные функции и процедуры, позволяющие быстро и точно выполнять операции с матрицами. Например, interp — оператор интерполяции, sinfit — оператор приближения функции к синусоиде и другие. Все эти процедуры написаны на специальном языке программирования, которое в пакете также поддерживается. Но если в том же Matlab программным путем делается любое, даже самое простое вычисление, то в MathCAD программирование — это своего рода «высший пилотаж», простой пользователь вполне может обойтись и без него.
Кроме специального «математического» языка, MathCAD также поддерживает Visual Basic и Java-скрипты. Особенно ярко эта поддержка выражается в упоминавшемся приложении для создания графиков Axum.

Из многих приятных мелочей в этом пакете хочется отметить автоопределение… чего бы вы думали — единиц измерения! Если мы, например, выразим какую-то константу в километрах, то результат выражения, в котором эта константа присутствует, будет по умолчанию выражен в метрах (рис.10,а), если это длина, квадратных метрах — если площадь и кубических — если объем. Впрочем, ничто не мешает выразить его в разных неметрических единицах — галлонах и т.п., как на рис.10,б.

pic

Что характерно — в MathCAD нет такого четкого структурного разделения частей программы по выполняемым функциям, как в Matlab, то есть его архитектура — «все в одном». Правда, такое решение таит в себе и существенный минус — нельзя удалить только какую-то одну ненужную утилиту, которая только зря занимает драгоценное дисковое пространство.
Напоследок поделюсь одним тематическим анекдотом. В аудитории сидят студенты, сдают математику. Преподаватель пишет на доске уравнение типа f(x)= 3x+2 и спрашивает: «Ну, и кто же может найти икс?». Выбегает студент-программист и радостно тычет пальцем в доску: «Вот, вот икс!». Так вот, MathCAD — это как раз такой программный пакет, с помощью которого математики и программисты наконец-то поймут друг друга. А если серьезно — это такое универсальное средство, которое может использоваться практически везде — от школы до крупного завода.

Orphus system
В Telegram
В Одноклассники
ВКонтакте