Mathcad и MAS – что это такое

Mathcad и MAS – что это такое

Очень часто посетители разного рода компьютерных форумов задают вопросы, касающееся выбора программ для расчетов, просят дать сравнение математических пакетов и отметить их сильные и слабые стороны. Такие вопросы инициируют всплески дискуссий, где спорящие быстро забывают о спросившем и о его «расчетных» потребностях и начинают бурно обсуждать качественные и количественные характеристики пакетов, которые у всех на слуху: Mathcad, MatLab, Mathematica, Maple и др.

Своеобразная попытка «количественного» сравнения этих пакетов была предпринята, например, на сайте пользователей MatLab (http://www.matlab.ru/). Там велся онлайновый опрос посетителей – спрашивалось, какой пакет они используют для расчетов.

Естественно, полоска, визуализирующая процент приверженцев того или иного пакета, у слова «MatLab» всегда была самая длинная – ведь на этот форум в основном и заходят пользователи MatLab. Остальные либо заблудились, либо зашли на «чужой» форум из любопытства – что, мол, там обсуждают – такие же проблемы, с какими я сам сталкиваюсь в своем пакете, или что-то другое… Но все прекрасно понимают, что это никакой не опрос, а чистой воды пиаровская акция, а в это, увы, превращаются почти все опросы. С таким же успехом можно судить о доходах и потребительских предпочтениях россиян по результатам опроса москвичей у входа в дорогой супермаркет. Упоминаем же мы об этом опросе лишь потому, что там опять фигурировали «Mathcad, MatLab, Mathematica, Maple и др.» – «великолепная четверка» компьютерной математики.

Но в ряду программ нет самой востребованной программы расчетов на персональных компьютерах – электронных таблиц. А ведь, более 90% всех компьютерных расчетов проводятся в среде этого неотъемлемого компонента электронного инженерного офиса. Мы пока не будем говорить о степени сложности решаемых задач, об их особой специфике. Но даже если в нашей статистике учитывать некий коэффициент сложности задач (Excel – 1, Mathcad – 2… Mathematica – 10, к примеру, и т.д.), то все равно Excel «забьет» все остальное. Даже без учета бухгалтерских расчетов. Mathcad же займет в этом рейтинге «почетное» второе место. С количеством «разобрались». А теперь поговорим о качественной стороне вопроса.

Можно утверждать, что беда пакета Mathcad (беда в том смысле, что его все время пытаются сравнить с пакетами MatLab, Maple, Mathematica, а самих пользователей Mathcad непрерывно уговаривают перейти на более «серьезные» пакеты) в… его названии – в этом самом «Math», вернее только в «Ma». Пакет Mathcad (и на этом настаивают его разработчики) нужно сравнивать не с пакетами MatLab, Maple, Mathematica, а с электронными таблицами. Mathcad создавался как программное средство, альтернативное электронным таблицам. И не электронным таблицам современным, а тем, какие были на момент создания первых версий Mathcad. Хотя органические недостатки электронных таблиц, которые попытались обойти (нивелировать) разработчики Mathcad, так и остались в последних версиях Excel. Обрисуем их вкратце.

Электронные таблицы подкупают своей простотой, и это одна из причин их высокой популярности: берем содержимое двух ячеек (щелкнем по ним курсором мыши), сложим их, а ответ (сумму) поместим вот тут! На клавиатуре при этом нажимается всего лишь пара клавиш – «равно» и «плюс».

Но эта простота, как это часто случается, оказывается «хуже воровства»: в расчетах, созданных с помощью электронных таблиц, не сможет разобраться не только другой человек, желающий развить их или просто проверить правильность заложенных методик и формул, но зачастую и сам разработчик. Этот недостаток пытались исправить, интегрированием в электронные таблицы языков программирования (VBA для Excel, например) и других полезных инструментов. Но при этом получалось так, что «от чего ушли – к тому и пришли»: электронные таблицы, как, впрочем, и сам Mathcad создавались как прямая альтернатива языкам программирования – тому же языку BASIC, например. Но закрытость расчетов в электронных таблицах очень мешает их активному использованию (активному в смысле возможности изучения, проверки и модернизации) в первую очередь в сфере образования. А это основной потребитель математических пакетов. Бухгалтеру или инженеру, если он не создает свои собственные расчетные методики, достаточно ввести данные и считать ответ. Преподавателям же и студентам ответ, как правило, не очень и нужен – важно изучение пути к ответу. Написать одной строкой в текстовом режиме более-менее сложную формулу в ячейку Excel или строку VBA еще можно, но проанализировать ее, показать ее студентам для иллюстрации физического явления или технологического процесса, связанного с этой формулой, крайне трудно. В среде Maple, например, формула вводится тоже в текстовом режиме, но тут же переводится в вид, к которому человечество привыкло задолго до появления компьютеров.

За это Mathcad и хвалят (те, кто набил привык к такому графическому способу ввода формул), и ругают (естественно, те, кто так и не оторвался от текстового, DOS-овского интерфейса). А можно сказать и так – фирмы-разработчики, оставшиеся верными текстовому режиму ввода информации в формулах, были дальновидными, даже не осознавая это. Дело в том, что текст – это пока основной способ оперативной передачи данных в сети Интернет (см. далее рис. 2.7, например).

«Ахиллесова пята» пакета Mathcad в его названии, которое как бы авансом приписывает эту программу к «элитному клубу» математических пакетов. Вторая беда в том, что разработчики Mathcad, может быть, из-за желания отработать этот аванс все время «подтягивали» эту программу к математическим пакетам, встраивая в него все новые и новые математические инструменты. Многие из них оказались очень полезными и востребованными, а другие же только отягощали пакет. Так, например, в Mathcad 11 вставлены инструменты решения дифференциальных уравнений в частных производных (см. http://twt.mpei.ac.ru/mas/worksheets/pde_Temperature.mcd, например), хотя все понимают, что сколько-нибудь сложную задачу этими инструментами не решить. Можно только показать студентам, что это такое – дифференциальное уравнение в частных производных и как можно подойти к его решению. Для сложных и реальных задач нужно брать другие пакеты или даже (и скорее всего) разрабатывать индивидуальные алгоритмы, что, кстати, можно прекрасно делать и в среде Mathcad. Вот и начинают сравнивать пакет Mathcad с Maple или MatLab, где эти инструменты более развиты. И сравнение это, конечно, не в пользу Mathcad. В включением в Mathcad специализированных, а не общематематических инструментов разработчики Mathcad как бы сами подставляют себя под огонь критики и толкают пакет на тупиковый путь развития – на путь, который уже давно прошли «настоящие» матпакеты. Бьет это и по традиционным пользователям Mathcad, которые не так сильны в математике, да и не чувствуют особой нужды в ней для решения своих рутинных задач. Новые сложные инструменты новых версий Mathcad часто только смущают таких пользователей, лишний раз как бы упрекая их в незнании каких-то специальных разделов математики. Да и накладно все это в финансовом плане – новые версии Mathcad с несущественными изменениями появляются чуть ли не каждый год.

Здесь представляется оптимальным не подключать к Mathcad все новые и новые специализированные инструменты (для решения ДУ в частных производных, например, – см. выше), а идти уже опробованным путем создания отдельных специализированных приложений, которые пользователи при необходимости могли бы приобретать отдельно. Перечень таких приложений можно найти на сайте http://www.mathcad.com/library/Electronic_Books.asp. Еще раз подчеркнем, что некоторые специфические функции Mathcad открывают некий «ящик Пандоры» и вынуждают этот пакет претендовать на то, что ему никогда не принадлежало. В реальной практике инженера сложных задач не так уж много (к счастью, а может, к сожалению). Но очень много рутинных небольших задач, связанных, например, с использованием различных нормам и правилам. Так, по Интернет-адресу http://twt.mpei.ac.ru/mas/worksheets/Izol_Trub_Teploset.mcd хранится Mathcad-документ по расчету толщины теплоизоляции труб согласно СНиП («Строительные нормы и правила» – см. http://docinfo.ru/docs.html, например). И таких примеров множество. Особо сложной математики в них нет из-за того, что они ориентированы на ручные расчеты. С ними часто мучаются – считают каждый раз заново, ошибаются… Mathcad хорош тем, что расчет, выполненный с его помощью, может читать человек, ничего не знающий об этом пакете.

У фирмы MathSoft Engineering & Education. Inc, – у разработчика Mathcad есть, кстати, программный продукт без особых «математических» претензий, но со всеми достоинствами популярной и востребованной программы для рутинных инженерных расчетов на компьютере. Это пакет StudyWorks (http://www.studyworksonline.com/), который широко используется в старших классах школ США. Успех этого пакета объясняется и тем, что в него интегрированы электронные учебники по всем базовым школьным дисциплинам: математика, физика, химия, информатика и т.д. Возможности пакета во многом покрывают и программу высшей школы, по крайней мере, для тех вузов и специальностей, которым не нужна «особая» математика. Так, в меню Algebra (рис. 1.5; в среде Mathcad оно называется Symbolic) собраны необходимые команды символьной математики (решение уравнений, взятие производной, поиск первообразной и др.), но убраны специфические – интегральные преобразования, например. Ядро пакета небольшое, но при необходимости его можно «нарастить» электронными учебниками. Кроме того, пакет StudyWorks, как и Mathcad дополнен справочным материалом. Если этого не хватает для решения задачи (домашнего задания по математике, например), то есть on-line выход в Интернет (StudyWorks! On-line), включая и выход на специализированный форум (HomeworkHelp).

Сам же Mathcad, как отмечают многие пользователи и мы подчеркнули выше, очень перегружен, хотя до конца так и не «дорос» до «взрослых» математических программ. Если эту «перегрузку» снять – вынести, например, специализированные инструменты в обособленные пакеты (надстройки, электронные учебники), то и получится этот самый недорогой и неглючный StudyWorks, годный для ведения огромного количества рутинных научно-технических расчетов.

Судьба Mathcad довольно неопределенна и нестабильна. Вернее, скажем так – она очень волнует автора и многих других его коллег. Хорошо бы, если б этот пакет проглотила бы «всеядная» фирма Microsoft и сделала Mathcad, например, некой утилитой тех же электронных таблиц так, чтобы пользователь Excel мог в особом листе Excel-книги хранить сложные формулы, строить «научные» (а не «деловые») графики, работать с физическими величинами и т.д.

Другой сценарий: пакет Mathcad должен вернуться на рынок после существенной переработки и с новым названием – без ко многому обязывающей приставки «Math».

Третий сценарий. Разработчики Mathcad освободят основную массу пользователей от обязанности и потребности покупать сам пакет и регулярно обновлять его, а заодно обновлять (заменять) операционную систему и даже сам компьютер. Этот сценарий уже частично реализуется. Речь идет о так называемом Mathcad Application Server (см. www.mathcad.com/server, www.vpu.ru/mas), на котором проводятся расчеты разной степени сложности в режиме удаленного доступа. Связь же с этим сервером осуществляется через Internet: пользователь (клиент сервера) шлет на сервер свои данные и получает ответ. При этом у пользователя сохраняется полная иллюзия, что он открыл Mathcad-документ и работает с ним. Значительному количеству пользователей Mathcad нужен не для разработки собственных сложных алгоритмов, а для решения рутинных математических задач: построение графиков, решение уравнений и систем (алгебраических, дифференциальных), несложная статистика и т.д. и т.п. (см. раздел Разное в Приложении «Содержание MAS…»). Такие задачи не должны требовать разработки собственных программ – они давно уже разработаны и основательно протестированы. Основная проблема тут – доступ к этим программам, что является основной целью MAS.

Некую нестабильность пакета Mathcad в его настоящем виде ощущают даже его разработчики. Они, конечно, в этом открыто не признаются и даже обидятся на утверждающих это. Но эта нестабильность чувствуется по косвенным признакам. Главный из них – уже отмеченное неоправданно частое обновление версий Mathcad и посылаемые вдогонку «заплатки».

Но основное преимущество Mathcad (как, впрочем, и Excel) по сравнению с другими расчетными пакетами состоит в том, что Mathcad не требует особой компьютерной и математической подготовки для решения задач средней сложности. Если с пакетом Mathcad долго не работать, то навыки работы с ним не забываются и при необходимости можно сразу приступить к решению возникшей расчетной задачи. «Конкуренты» же Mathcad, реальные и мнимые требуют непрерывного тренажа иначе восстановить навыки будет довольно трудно.

Итак. Пакет Mathcad оторвался от несовершенных и примитивных, но, тем не менее, (или «тем самым») очень популярных электронных таблиц и стал «дрейфовать» в сторону «элитных» математических программ, но так и не добрался до них. Продолжая «корабельные» аналогии, можно утверждать, что у Mathcad есть свой собственный «курс» и довольно многочисленные «пассажиры», которые не собираются пересаживаться на другие корабли. Смущает этих «пассажиров» (не всех, конечно) и пассажиров других судов (судов другого класса) только то, что на корабле вывешен флаг с буквами «Math».