Работа в среде Mathcad

Работа в среде Mathcad 

Сейчас никого не удивляет тот факт, что не только аспиранты, инженеры и студенты, но даже и школьники решают свои задачи на компьютере. Удивление или, по крайней мере, вопросы может вызывать лишь выбор конкретной программной среды для этих целей. Ответ на вопрос, почему для расчетов все чаще и чаще прибегают к услугам Mathcad, может быть и такой: Mathcad обладает уникальной возможностью[1] оперировать не просто величинами, а физическими величинами. Пакет Mathcad можно назвать не просто математическим, а физико-математическим пакетом.

Работа в среде Mathcad – эта третья (и пока высшая) ступень в использовании вычислительной техники при решении физико-математических, инженерно-технических, а также учебных задач – школьных и вузовских. Две предыдущие ступени – это работа с машинными кодами (c ассемблером, например) и с языками программирования (BASIC, Pascal, C, fortran и т.д.). Эти две технологии научно-технических расчетов (машинные коды и языки программирования) сыграли с этими расчетами злую шутку: из расчетов были «выдавлены» размерности физических величин и единицы их измерения – метры, килограммы, секунды… Ручное решение физической задачи (школьной или вузовской задачи по физике, если говорить конкретнее), как правило, требовало и требует оперирования сугубо размерными величинами[2]. Автоматизация таких расчетов – написание программ для компьютера исключает из задачи ее «физику»: переменные программы хранят только числовые значения, а соответствующие им единицы измерений программист должен «держать в уме». Из-за этого при переводе расчета на язык ЭВМ необходимо было придерживаться строгого правила – все физические величины должны быть в одной системе единиц. Кроме того, они должны быть без множителей мили, мега и т.д. Это жесткое правило вызывало и вызывает ряд неудобств, основные из которых следующие:

1. Международная система SI[3] хоть и широко распространена в мире, но не является и, по-видимому, никогда не будет являться единственной. США, например, – страна, задающая тон во многих областях науки и техники, использует британскую систему измерений (в среде Mathcad эта система называется U.S.[4]). Базирование программы на какой-либо одной системе единиц мешает естественному процессу глобального обмена идеями, получившему новое ускорение в эпоху Internet[5].

2. Процесс создания программы немыслим без ее отладки, а основной инструмент отладки – это вывод на дисплей промежуточных результатов, анализ которых позволяет локализовать и устранить ошибку, если она была допущена при подборе формул и/или при написании самой программы. А здесь важно не только вывести значение нужной физической величины, но и выразить его в нужных единицах нужной системы измерения с нужными множителями (мега, кило, милли и т.д. – см. таблицу ??? в части 3 книги). Система SI при всех ее достоинствах внедрялась в виде «подарочного набора». Часть единиц измерения (килограммы, метры, секунды) использовались и используются без каких-либо затруднений, другие же («нагрузка») так и не прижились в качестве доминирующих (основных) единиц. В теплоэнергетике[6], например, давление пара в котле чаще всего измеряют и выражают в атмосферах[7], а давление в конденсаторе – в миллиметрах ртутного столба. «Узаконенная» («главная») единица измерения давления (паскаль – ньютон на квадратный метр) оказалась крайне неудобной. Трудно припомнить научно-техническую область, где паскали применялись бы в чистом виде – без масштабирующих множителей[8] (бары, килопаскали, мегапаскали и т.д.). Дело в том, что «прижившаяся» единица измерения, как правило, связана с «жизнью» – с конкретным физическим явлением: атмосфера, как следует из самого названия – это давление воздуха на уровне моря (примерное давление – см. рис. 1.24 и рис. 1.34), а миллиметры ртутного столба напоминают нам об экспериментах Э. Торричелли («торричеллева пустота»; в среде Mathcad torr – это и есть миллиметр ртутного столба). В теплоэнергетике исключение «внесистемных» атмосфер и миллиметров ртутного столба – замена их на паскали чревата не просто неудобствами, но серьезными сбоями в работе, связанными, например, с тем, что оператор, управляющий энергоблоком[9], будет неправильно интерпретировать показания манометров, проградуированных в «правильных» единицах давления.

3. В создаваемые программы приходиться вставлять формулы, выведенные не только в результате теоретического анализа проблемы (F=m g – см. анекдот в эпиграфе, E=m c2, e=m v2/2[10] и т.д.), но и формулы, полученные после статистической обработки экспериментальных данных. Коэффициенты таких формул (см., например, рис. 1.32), как правило, жестко привязаны к той или иной системе единиц измерения и нередко требуют пересчета для использования в программе. Это может вносить дополнительные погрешности и быть причиной ошибок.

Одновременно с выходом книги в свет появится и ее Internet-версия (см. http://twt.mpei.ac.ru/ochkov/unit/index.htm). Это наложило отпечаток на оформление текста, в котором выделены гиперссылки: см. рис. 1.3, см. ниже, см. сноску 3 и т.д. Работая с бумажными вариантом книги, читатель, встретив такую гиперссылку, должен «вручную» перейти на нужную страницу. В Internet-версии переход на новое место и возврат на старое (с гиперссылкой) осуществляется намного проще – стоит только щелкнуть мышкой по гиперссылке. В Internet-версию автор будет вносить изменения и дополнения, которые читатели, автор надеется, будут послать по адресу ochkov@twt.mpei.ac.ru.

Исключение единиц измерения физических величин из расчетов на компьютере сказалось и на работе в среде Mathcad. Многие неопытные пользователи примерно так начинают формировать Mathcad-документ записывая размерность введенной величины в виде комментария, а не в виде множителя у числовой константы и отключая тем самым размерность физических величин из дальнейших расчетов. Если вспомнить язык BASIC, например, то там вышеописанный фрагмент расчета будет выглядеть так: P = 20: Rem Давление в МПа. Здесь также единицы измерения записываются в комментарии (в ремарку – Rem). Развивая алгоритм, программист может забыть, что давление у него в паскалях, а не в барах, например. Вот вам и ошибка.

Механизм работы с единицами измерений физических величин позволяет в среде Mathcad:

 вводить исходные данные в нужной системе измерений, в нужных единицах с нужными множителями (кило, мили и т.д.);

 вести контроль размерностей в формулах, по которым проводятся расчеты (не складывать килограммы с метрами, например)[11];

 выводить рассчитанные величины в нужной системе и в нужных единицах измерений, использовать удобный масштаб осей графиков и т.д. и т.п.

Один из путей решения проблемы единиц измерения – это отказ от размерных величин и переход к использованию безразмерных чисел, хранящих количественную оценку тех или иных физических явлений: число Рейнольдса[12], число Нуссельта, число Шмидта и т.д. (см. таблицу ??? в третьей части книги). Когда мы говорим, что давление в котле равно 50 атмосферам, то мы фактически оперируем не размерной (давление), безразмерной величиной – давление в котле в 50 раз выше атмосферного. Еще более радикальный путь – переход от числовых характеристик к качественным оценкам. Можно сказать, что давление в котле равно стольким–то атмосферам, а можно сказать, что давление нормальное (низкое, высокое и т.д.), и построить автоматизированную систему управления энергоблоком, основанную на лингвистических (экспертных) оценках и опирающуюся на теорию нечетких множеств[13].

Пакет Mathcad полностью поддерживает математику работы с размерными переменными, о чем и будет рассказано ниже на несложных примерах.