doc
Пакет MathCAD
Лекция 1. Введение
Пустой Mathcad-документ – это «волшебный» лист бумаги, на котором пользователь с
помощью клавиатуры и\или мыши может писать математические выражения в виде, принятом
научным миром задолго до появления компьютера. В этом одна из причин популярности
Mathcad. Ниже рассмотрены: «базовая версия» – Mathcad 7, а также возможности версий,
начиная с 8 Pro. До 2010 года наиболее популярна «студенческая», но тоже не бесплатная
версия Mathcad-2000. Портабельная версия Mathcad14.exe работает под WinXP и, co скрипом,
под Win7. Ново-модную версию Mathcad Primиспользовать не рекомендуется. О причинах –
поговорим в конце следующей лекции. Дома желательно инсталлировать (не портабельную)
стабильно работающую версию М005 Mathcad 15.
█=██
В левый пустой квадратик (placeholder, «держатель места») записывается выражение,
численное значение которого появится во втором (среднем) квадратике, если увести курсор
(автоматический режим расчета, включенный по умолчанию после запуска Mathcad, – см. слово
AUTO внизу рис. 1.1) или нажать F9 (автоматический и/или ручной режимы). В правый
квадратик можно записать нужную размерность, если обсчитывается какая-либо физическая
величина. Если величина безразмерная, а пользователь все-таки вставит в правый квадрат букву
m (метры), например, то Mathcad ругаться не будет, а превратит m в m m-1, то есть в ничто.
Как правило, показанной выше заготовки пользователь не видит, а просто нажимает «=» после
набора математического выражения. Кнопка «=», повторяем, есть и на клавиатуре вверху
справа. Нажимать можно и ее. Таким же образом продублированы и основные арифметические
1
28-02-2011 МПиС_л2.doc из Mathcad.doc
действия: сложение, вычитание, умножение, деление – на панели Arithmetic есть и цифры 1, 2, 3
и т.д. Считать в среде Mathcad можно и не касаясь клавиатуры, а только двигая мышку и
щелкая по ее кнопкам.
Рисунок 1.2
Mathcad-документ– это почти одни комментарии. Они записываются в прямоугольную
область, которую можно вставить в любом свободном месте Mathcad-документа: например,
выше комментируемого выражения левее или правее него (см. тексты на рис. 1.3 и 1.4).
Комментарии, как правило, имеют шрифт, отличный от шрифта переменных и констант. Кроме
того, на дисплее комментарии выделяются цветом. По умолчанию фон экрана белый, цвет
выражений – черный, а цвет комментариев – синий. Но пользователь вправе поменять эту
палитру, приспособив ее под свои особенности цветового восприятия. На рис. 1.3 белый фон
только у областей комментариев и формул, остальное залито серым цветом. Это достигается
переключателем Regions (регионы, области) в меню View (просмотр). Пользователям Mathcad,
особенно начинающим, полезно работать в этом режиме, так как он позволяет четко
фиксировать границы областей формул и комментариев. По умолчанию весь фон документа
белый (белый лист бумаги!). Кроме того, на некоторых рисунках показаны панели, кнопки
которых помогают создавать Mathcad-документ и решать поставленные задачи, а также другие
ремарки и сообщения Mathcad.
По умолчанию, нажимая кнопки, пользователь вводит математические выражения
(пишет черным по белому). Ввод комментария предваряется нажатием на клавишу «”»
клавиатуры. Можно поступить и по-другому – набрать, например, букву С, а потом нажать на
клавишу пробела: переменная С превратится в первую букву комментария, автоматически
поменяет свой цвет с черного на синий, а шрифт – со шрифта переменных на шрифт
2
28-02-2011 МПиС_л2.doc из Mathcad.doc
комментариев. В портабельных версиях, даже русифицированных, бывают проблемы с
кириллицей.
Для вычислений можно использовать не только оператор «=», но и оператор «» –
оператор вывода не числового, а символьного значения.
До включения переменных в выражения им необходимо задать какое-либо числовое
значение. Эту работу в среде Mathcad выполняют два оператора:
█ := █ ██
Первый оператор появляется на экране дисплея после нажатия соответствующей кнопки
«калькулятора» (см. левый нижний угол на панели Arithmetic рис. 1.2) или после нажатия
клавиши «:» клавиатуры (второй символ – «=» Mathcad добавит сам). Второй оператор – «»
хранит панель Evaluation. Кроме того, символ «» можно напечатать, нажав клавишу «~».
В левом квадрате операторов присвоения указывается имя переменной или функции, а в
правом – значение, которое ей присваивается. Оператор «:=» распространяет свое «влияние»
вниз и вправо, а оператор «» – на все четыре стороны. Тогда исходные данные компакно
вводятся рядом с формулой и ответом. Такая структура данных удобна в объемных документах:
пользователь меняет исходные данные и получает ответ без прокрутки самого документа. Еще
одно отличие оператора «» от оператора «:» – правый операнд оператора «» может хранить
системные переменные и константы, но не переменные, введенные пользователем. Условно
считается, что оператор «:=» служит для задания значений переменным, а оператор «» –
константам, то есть переменным, не меняющим свои значения в процессе решения задач.
Формулы могут быть вставлены в концы текстовых полей (вопросов) командой Math
Region меню Insert. Это очень удобно – формула и комментарий к ней составляют одно целое,
которое не рвется при перемещении фрагмента документа на новое место.
Все переменные хранят конкретные числовые значения. На имена переменных накладываются
некоторые ограничения. В частности, в них недопустимы пробелы (их можно ставить только в
комментариях), которые обычно заменяют на символ подчеркивания. Сокращение имен
оттеняет «вспомогательность» соответствующих переменных
Ниже рассмотрены два этюда – задача о покупке сукна разных цветов из школьного
задачника по алгебре и задача о равновесии балки. Абстрагируясь от содержания задач,
рассмотрим их реализацию средствами MathCad. Нужно только задать начальные значения
переменных.(см. Рис.1.3) Пусть они будут равны первому предположению: 540 разделить на
138. За ключевым словом Given (дано) пользователь должен записать анализируемую систему,
связывая левые и правые части уравнений знаком «эквивалентно»: жирным знаком «равно» из
панели Evaluation (аккорд Ctrl + =). Решить записанную систему поможет встроенная функция
Find (найти). Это немного странная функция – она возвращает свое значение, зависящее не
только от значений ее аргументов (здесь переменные Синее и Черное), но и от того, что около
данной функции написано. Это «около» распространяется вверх (или влево) от выражения,
использующего функцию Find, до ключевого слова Given и даже дальше – до начального
приближения. Функция Find возвращает и заносит в переменную Ответ (это не скаляр, а вектор
– матрица с одним столбцом и двумя строками) значения переменных Синее и Черное,
превращающие наши два уравнения в тождества. Значения, хранящиеся в векторе Ответ,
можно вывести на дисплей, поставив после имени переменной «светлый» знак равно (оператор
вывода числового значения). Внимание: Mathcad различает строчные и заглавные, русские и
латинские ( имеющие одинаковое написание ) буквы в идентификаторах.
3
28-02-2011 МПиС_л2.doc из Mathcad.doc
Рисунок 1.3
Числа 63 и 75 охвачены скобками, подчеркивающими, что переменная Ответ – это
вектор, по умолчанию – столбец. В среде Mathcad есть богатый набор функций и операторов
работы с векторами и матрицами (см. рис. 1.3 ), позволяющий легко и изящно решать довольно
сложные задачи. В среде Mathcad нет принципиальной разницы между вектором и матрицей:
вектор — это матрица с одним столбцом.
В этом окне два поля и четыре кнопки. В первом поле пользователь задает число строк
(Rows) создаваемой матрицы, а во втором – число столбцов (Columns). По умолчанию в этих
полях записаны тройки: считается, что квадратная матрица порядка 3 – самая распространен-
ная. Но наша матрица А имеет порядок 2, поэтому меняем на двойки. На каждой из кнопок окна
работы с матрицами есть надписи: OK (Создать матрицу и закрыть окно), Insert (Вставить),
Delete (Удалить) и Cancel (отмена). Матрицу мы создаем, поэтому щелкаем по кнопке OK. Две
остальные кнопки предназначены для изменения размеров ранее созданных матриц: заданное в
полях число столбцов и/или строк вставляется (удаляется) правее и ниже отмеченного курсором
элемента уже созданной матрицы.
После щелчка по кнопке OK справа от выражения А:= появляется каре четырех
вакантных мест для ввода информации, обрамленное скобками. Заполняем вакансии числами 1,
1, 5 и 3 и приступаем к формированию вектора В. Набираем В:= и снова вызываем окно работы
4
28-02-2011 МПиС_л2.doc из Mathcad.doc
с матрицами. Если при создании матрицы нажимать не OK, а Insert, то окно работы с
матрицами будет оставаться на экране дисплея.
Во втором поле меняем двойку на единицу, щелкаем по кнопке OK и получаем
заготовку для ввода информации в вектор В. Заполняем вакантные места числами 138 и 540
Матрица и вектор коэффициентов системы линейных алгебраических уравнений заполнены.
Для решения инвертированную (обратную, т.е. возведенную в минус первую степень) матрицу
A умножаем на вектор-столбец B, а ответ заносим в вектор X. Если мы теперь введем с
клавиатуры Х=, то машина выдаст ответ – числа 63 и 75 в скобках.
Через окно Insert Matrix можно ввести матрицу, у которой число элементов не может
превышать ста. Считается, что большее число элементов матрицы неразумно вводить вручную.
Более объемные матрицы вводятся в Mathcad-документ тремя способами:
1. Элементы матрицы хранятся файлом на диске и вводятся в матрицу функцией
READPRN.
2. Две матрицы сливаются в одну функциями stack (матрицы ставятся одна на одну)
или augment (матрицы ставятся бок о бок).
3. Двумя циклами формируется объемная вспомогательная матрица (M1), хранящая
единицу или что-то другое, а потом ее содержимое копируется в создаваемую
матрицу M и редактируется.
5
28-02-2011 МПиС_л2.doc из Mathcad.doc
Рисунок 1.4
Еще одно новшество Mathcad 8: если поместить курсор мыши на функцию Find и нажать
правую кнопку мыши, то выпадает так называемое контекстное меню, в котором реализована
возможность выбора метода решения системы алгебраических уравнений (см. конец рис. 1.8).
Система Mathcad 8 по умолчанию сама выбирает метод решения (AutoSelect). Но пользователь
при необходимости может скорректировать метод и детали расчета. В среде Mathcad 8 Pro
можно решить систему, состоящую из 200 нелинейных алгебраических уравнений.
Но для решения одиночных алгебраических уравнений лучше использовать не
конструкцию Given-Find, а встроенную функцию root (а root, по-английски, корень).
Функция root имеет два аргумента: выражение и переменная, найденное значение
которой делает выражение равным нулю. Для работы функции root также необходимо первое
приближение, вблизи которого ищется корень. Если корней много, то возвращается один –
ближайший к первому приближению
Систему уравнений проходится сводить к одному уравнению и решать через функцию
root в том случае, если задействовано программирование в среде Mathcad. Дело в том, что
ключевое слово Given не «запихивается» в программы.
6
28-02-2011 МПиС_л2.doc из Mathcad.doc
Рисунок 1.5.
7
28-02-2011 МПиС_л2.doc из Mathcad.doc
8
28-02-2011 МПиС_л2.doc из Mathcad.doc
Все словесное описание задачи можно внести в Mathcad-документ ремарками
(комментариями), которые подобны ремаркам в тексте пьесы: действующие лица их не
произносят, но они помогают лучше понять мысли автора. Пакет Mathcad оборудован
текстовым процессором, позволяющим оформить, например, научную статью, не прибегая к
специализированным средствам (текстовые процессоры Word, Scientific Word и др.). Кроме
того, буфер обмена ClipBoard поможет перенести фрагменты Mathcad-документа в Word-
документ и там дооформить их. В седьмой и восьмой версиях этой функцией нагружена
команда Save as... Кроме того, Mathcad-документ можно внедрить в Word-документ (и
наоборот), используя технологию OLE. В среде Word, например, можно проверить орфографию
и грамматику ремарок. В среде Mathcad 7 и выше допустимы не только числовые, но и
текстовые переменные. Единицы измерения в среде Mathcad – это своеобразные встроенные
символы, к которым применяются простейшие символьные преобразования. Она позволяет
автоматически отслеживать «физические» ошибки. Если, к примеру, пользователь сложит
секунды с метрами, то Mathcad «заругается» и выдаст протестующее сообщение об ошибке:
несовместимые единицы измерения.
Нужно помнить, что более-менее сложная система нелинейных уравнений окажется не по
зубам не только пакету Mathcad, но и другим мощным пакетам – Mathematica, Maple, Gauss и
др. Пакет Mathcad в такой ситуации выдаст сообщение Did not find solution (Решение не
найдено), заставляя пользователя поневоле переходить к полуавтоматическому режиму –
менять значения начального приближения и (или) величину точности TOL (TOLerance –
точность, погрешность), а также метод поиска решения (Mathcad 8) – рис. 1.5. Функция Find
решает систему так, чтобы левые и правые части входящих в нее уравнений отличались на
величину, не превышающую значения TOL ( В среде Mathcad 8 уже две системные переменные,
влияющие на точность расчета: привычная TOL и новая CTOL).. Это предопределенная
(системная) переменная среды Mathcad, хранящая по умолчанию значение 0.001, которое
можно изменить, записав в Mathcad-документе выражение TOL:=0.0000001, например. Но и это
часто не помогает. Только при хорошо подобранных начальных условиях пакет Mathcad
находит правильное решение. Малейший отход от начальных условий, и слово Find «краснеет»
и появляется соответствующее сообщение об ошибке. Но эта же задача в неограниченном
диапазоне исходных данных прекрасно решается последовательными приближениями с
поиском в цикле корня одного-единственного уравнения.
9
28-02-2011 МПиС_л2.doc из Mathcad.doc
Рисунок 1.7.
10
28-02-2011 МПиС_л2.doc из Mathcad.doc
них, можно построить семь типов графиков. Сделаем это для иллюстрации решения задачи о
балке.
Рисунок 1.9.
На рис. 1.9 показан так называемый параметрический декартов график –
взаиморасположение двух векторов в зависимости от значения третьего параметра. Он часто
применяется для построения фазовых кривых дифференциальных уравнений. Если аргумент
представляет собой угол, изменяющийся от 0 до 360 градусов, а значения функции x(), y() и
P() имеют период, целесообразно получить полярный график ( Polar Plot – рис. 1.10):
12
28-02-2011 МПиС_л2.doc из Mathcad.doc
Рисунок 1.10
13
28-02-2011 МПиС_л2.doc из Mathcad.doc
Рисунок 1.11
14
28-02-2011 МПиС_л2.doc из Mathcad.doc
Рисунок 1.12
Наша сетка (здесь она квадратная с количеством узлов 41 на 41) как бы превращается в
гамак: – ее узлы поднимаются над нулевой отметкой пропорционально значению двухмерной
функции. Форматирование графика сводится к вращению этого «гамака» относительно
наблюдателя, к заливке ячеек разным цветом, к построению координатной сетки, к освещению
этой ажурной конструкции из разных точек и др. Здесь особыми возможностями обладает
Mathcad начиная с версии 8.
15