Математические пакеты
В данной статье мы постараемся выяснить, что собой представляют популярные математические пакеты Maple, Matlab, Mathematica и Mathcad. Основное внимание будет уделено их возможностям и тем типам задач, которые они решают. К сожалению, нам не удалось достучаться до разработчиков Maple и Matlab. Но это не беда — ведь Maple и Matlab, пожалуй, самые популярные в России пакеты математических вычислений. О них нам любезно согласились рассказать эксперты журнала Exponenta Pro .
Mathcad
На наши вопросы отвечает Диана Эшфилд (Diane Ashfield), менеджер по маркетингу компании Mathsoft.
TanaT: Расскажите немного о своей компании.
Диана Эшфилд: Частная компания Mathsoft была основана в 1984 году. Наши штаб-квартиры расположены в городах Кембридж (штат Массачусетс, США), около технологических центров Массачусетского Технологического Института и Гарвардского Университета (Harvard University). Нынешний владелец компании приобрел контрольный пакет акций в январе 2001 года. Таким образом, Mathsoft превратилась из государственной компании в частную. Это позволило ей сохранить место ведущего поставщика корпоративного программного обеспечения для организаций, занимающихся интенсивными инженерными расчетами, а также для правительства и сферы образования.
Mathsoft — это единственный поставщик вычислительного ПО и документации, который дает возможность инженерам-конструкторам работать с помощью универсального языка инженерной математики. Наш флагманский продукт, Mathcad, призван ускорить разработку продуктов и технологических исследований, гарантируя высокое качество вычислений.
В Mathcad реализована технология самодокументирования, соответствующая всем издательским стандартам. Это позволяет инженерам создавать и заново использовать результаты уже проведенных вычислений, а также обмениваться ними с коллегами. Более полутора миллиона пользователей по всему миру используют Mathcad. Он почти стал промышленным стандартом.
TanaT: Кто является основными пользователями Mathcad?
Диана Эшфилд: Электротехники, строители и механики; автомобильная, авиационная, космическая промышленность, электросвязь, конструкторские бюро и архитекторы. Также Mathcad широко используется в высших учебных заведениях.
TanaT: Сколько стоит Mathcad и где его можно купить в России?
Диана Эшфилд: Лицензия Mathcad 11 для одного пользователя стоит $999, существует множество скидок при продаже большого количества пакетов Mathcad Enterprise. Мы также делаем скидки для образовательных учреждений и студентов. Вот наши представители в России:
SoftLine Corporation
Shvernika Street. Bldg.4
117036, Moscow, Russia
Tel: +7-(095)232-0023
Fax: +7-(095)232-0023
Email: info@softline.ru
WWW: http://www.mathcad.ru
Если потребуется, они ознакомят вас со всеми ценами.
TanaT: В чем состоит особенность Mathcad? И чем он отличается от таких конкурентов, как Maple, Matlab, Mathematica?
Диана Эшфилд: Проводя вычисления с помощью Mathcad, кажется, что вы просто работаете с обыкновенной бумагой. Для четкого и понятного изложения метода и всех сделанных допущений можно вставлять столько комментариев, сколько потребуется. Рабочие листы Mathcad можно легко перепроверить, все документировано так четко, что понять не составляет труда. Благодаря интеллектуальным технологиям Mathcad, вы никогда не ошибетесь с размерностями, несовместимыми модулями. Рабочие листы защищены от такого рода ошибок, так что допустить ошибку на начальном этапе расчетов очень сложно. Вычислительные процедуры и важные для проекта параметры выносятся так, чтобы их можно было легко менять и следить за результатами. Например, легко определить, на какие вычисления в проекте повлияло изменение процедуры или параметра. Mathcad позволяет представлять результаты расчетов таким образом, что их поймут и инженеры, и менеджеры, и покупатели, и служба поддержки и проверяющие.
Maple, MATLAB и Mathematica — это языки программирования. Языки программирования гибкие и мощные, но трудные в использовании и требующие длительного времени на изучение. Поэтому, пользовательский интерфейс сложен, в нем легко допускать ошибки, которые вынуждают проверять и отлаживать весь код. Программирование не визуально и не интерактивно. Невозможно поменять несколько строк в программе и автоматически увидеть результаты. Для этого вам потребуется перекомпилировать и перезапустить программу. Также сложно разделить работу, а потом понять и использовать решения коллег. Не программисты не смогут снова использовать результаты. Даже если вы являетесь программистом, повторное использование чьих-то вычислений требует всестороннего инженерного анализа, чтобы понимать те процессы, которые скрываются за полученными результатами.
TanaT: Вы не могли бы назвать ваших основных конкурентов?
Диана Эшфилд: Мы полагаем, что электронные таблицы — наши самые главные конкуренты. Некоторые организации используют электронные таблицы или языки программирования для выполнения вычислений. Но ни те, ни другие не справляются с задачей, когда дело доходит до обработки полученных данных. Электронные таблицы разработаны для бухгалтерских дел, а не для инженерных расчетов. Для этого они не очень удобны: уравнения спрятаны в ячейках, сложно вставить комментарии. Это делает работу довольно затруднительной, а устранять ошибки и разбираться в чьих-то вычислениях вообще сложно. Электронные таблицы трудны для понимания и повторного использования другими членами организации.
TanaT: Каковы основные особенности Mathcad? Какие задачи данный пакет решает?
Диана Эшфилд: Вот краткий обзор вычислительных возможностей Mathcad:
Числовые операции: суммирование, произведение, логические операции, дифференцирование, интегрирование.
Числовые функции: тригонометрические, экспоненциальные, гиперболические, другие функции и преобразования.
Символьные операции: упрощение, дифференцирование, интегрирование и алгебраическое преобразование выражений. Mathcad запатентовал автоматический перевод символьных выражений в алгебраические.
Векторы и матрицы представлены в виде массивов, что позволяет выполнять всевозможные операции линейной алгебры, например, находить собственные значения и собственные вектора, производить поиск элементов в массивах.
Статистика и анализ данных: генерация случайных чисел или гистограммы, данные, соответствующие встроенным и общим функциям, интерполированные данные. Также можно строить вероятностную модель распределения.
Решение дифференциальных уравнений, а именно: решение обыкновенных дифференциальных уравнений, систем дифференциальных уравнений. Задачи с краевыми значениями можно решать в командной строке или в блоках решений. Последние позволяют использовать комментарии, чтобы точно изложить метод решения дифференциальных уравнений и уточнения.
Существуют переменные и постоянные реальные, мнимые и комплексные числа с вспомогательными модулями или без них.
Высокоэффективные средства вычислений обеспечивают скорость и сложное управление памятью.
Подробности можно узнать на сайте: http://www.mathcad.com/products/Mathcad.asp
TanaT: Какая последняя версия Mathcad? Каковы основные изменения в ней?
Диана Эшфилд: При создании Mathcad 11, мы сосредоточили усилие на повышении скорости и мощности. Наша цель состояла в том, чтобы укрепить ядро Mathcad и повысить его практичность. Упрощение обработки данных, улучшение редактирования рабочих листов, улучшение взаимодействия с другими программами и повышение функциональных математических возможностей — суть последнего усовершенствования.
TanaT: Когда будет выпущена новая версия, и какие в ней планируются изменения?
Диана Эшфилд: Мы не собираемся выпускать новую версию Mathcad раньше весны/лета 2004 года и у нас еще нет планов на возможне изменения.
TanaT: Вы помогаете российским пользователям? Если да, то в чем заключается ваша поддержка?
Диана Эшфилд: Наш дистрибьютор — SoftLine — обеспечивает техническую поддержку российским пользователям, но у нас нет российской локализированной продукции.
TanaT: Спасибо, что уделили нам время!
Mathematica
На наши вопросы отвечает Кэтрин Киммер (Catherine Kimmer), менеджер продукта Mathematica в компании Wolfram Research.
TanaT: Расскажите немного о вашей компании.
Кэтрин Киммер: Компания Wolfram Research разрабатывает программное обеспечение для технологических расчетов. Рынок пользователей Wolfram Research на сегодняшний день, насчитывает около двух миллионов человек по всему миру, его большая часть принадлежит флагманскому продукту компании — Mathematica. Также, программное обеспечение компании получило множество промышленных наград за техническое превосходство. Частная компания Wolfram Research была основана в 1987 году Стивеном Вольфрамом (Stephen Wolfram). Ее штаб-квартира находится в городе Шампань, штат Иллинойс. Также есть офисы в Европе и Японии. Подробную информацию о компании Wolfram Research и ее продукции вы сможете получить, посетив наш сайт http://www.wolfram.com .
TanaT: Кто является основными пользователями Mathematica?
Кэтрин Киммер: Наибольшая часть пользователей Mathematica — это технические профессионалы. Также Mathematica широко используется в образовании. Сейчас несколько тысяч курсов на основе этого продукта читаются во многих учебных заведениях, начиная от средней школы и заканчивая аспирантурой. На сегодняшний день Mathematica используется в 50 самых крупных университетах по всему миру и в группе компаний Fortune 500, а также во всех 15 основных министерствах правительства США.
TanaT: Где ее можно купить в России и сколько она стоит?
Кэтрин Киммер: Коммерческая лицензия Mathematica стоит $1317.75. Для клиентов из сферы образования мы предлагаем Russian Mathematica Grant. Он создан для образовательных учреждений России и бывших стран СССР. Университетам предоставляется большая скидка на лицензию Mathematica 4.2. С помощью этой программы Wolfram Research способствует развитию технологий в России.
Лицензия на весь университет стоит $3000 не считая дополнительных транспортных расходов. Wolfram Research обеспечивает университет сетевой лицензией на 100 мест. 100 студентов могут одновременно на разных компьютерах использовать Mathematica.
Персональную копию Mathematica можно купить за $100 не считая дополнительных транспортных расходов. Если учреждение купит более 13 единичных пользовательских лицензий, оно получит 25% скидку.
Чтобы подробнее узнать о Mathematica, напишите письмо по адресу info@wolfram.com или свяжитесь с нашим российским дистрибьютором SoftLine Co. по телефонам +7-(0)095-232-00-23 и +7-(0)095-126-90-65 или по адресу: info@softline.ru
TanaT: Расскажите об особенностях Mathematica?
Кэтрин Киммер: Mathematica объединяет в единое целое числовое и символьное вычислительное ядро, графическую систему, язык программирования, систему документации и возможность взаимодействия с другими приложениями.
TanaT: Как вы считаете, кто ваш главный конкурент?
Кэтрин Киммер: Для всей среды Mathematica нет единственного конкурента. Вообще говоря, конкуренты делятся на следующие группы: численные пакеты, системы компьютерной алгебры, приложения дл набора текста и подготовки документации, графические и статистические системы, традиционные языки программирования (средства разработки интерфейсов) и электронные таблицы. С тех пор, как Mathematica впервые появилась, другие математические пакеты существенно расширили спектр собственных возможностей, первоначально они предназначались для решения задач, относящихся лишь к одной или двум вышеперечисленным категориям. Например, системы компьютерной алгебры научились решать задачи численно. Несмотря на это, Mathematica уникальна, потому что она неизменно объединяет все эти возможности.
TanaT: Каковы основные особенности Mathematica и какие задачи она решает?
Кэтрин Киммер: Mathematica имеет несколько основных особенностей и предназначена для решения широкого спектра задач. Вот некоторые классы задач, решаемых с помощью Mathematica:
Работа с символьными комплексными вычислениями, использующими сотни тысяч или миллионы членов.
Загрузка, анализ и визуализация данных.
Решение обычных и дифференциальных уравнений, а также задач численной или символьной минимизации.
Численное моделирование и имитация, построение систем управления, начиная от простейших и заканчивая столкновениями галактик, финансовыми убытками, сложными биологическими системами, химическими реакциями, изучением влияния на окружающую среду и магнитными полями в ускорителях элементарных частиц.
Простая и быстрая разработка приложений (RAD) для технических компаний и финансовых учреждений.
Создание профессиональных, интерактивных, технических отчетов и документов для распространения в электронном виде или на бумаге.
Подробная техническая документация, например, для патентов США.
Проведение специальных презентаций и семинаров.
Иллюстрирование математических или научных концепций для учащихся, начиная от колледжа и заканчивая аспирантурой.
TanaT: Какая последняя версия Mathematica? Каковы основные изменения в ней?
Кэтрин Киммер: Mathematica 4.2 — последняя версия. Mathematica 4.2 содержит новые функции и расширенную связь с Java, XML и сетью. Она предлагает новые усовершенствованные возможности для линейного программирования, статистики, оптимизации, комбинаторики и теории графов.
Более подробную информацию об этих и других новейших возможностях Mathematica 4.2 вы можете узнать, посетив наш сайт http://www.wolfram.com/products/mathematica/newin42 .
TanaT: Вы оказываете поддержку российским пользователям?
Кэтрин Киммер: Наш партнер в России проводит конференции и семинары, посвященные Mathematica. Wolfram Research собирается посетить города России в 2004 году, чтобы прочесть лекции и провести обучающие семинары по Mathematica. Мы собираемся съездить в различные университеты, компании и научно-исследовательские лаборатории. Если кто-нибудь из ваших читателей захочет быть спонсором лекций по Mathematica в своем институте, пусть напишут нам письмо по адресу info@wolfram.com. Мы свяжемся с ним, чтобы включить в план лекций.
TanaT: Большое спасибо, удачи вам и вашему продукту!
Maple и Matlab
На наши вопросы согласились ответить В.В. Анохин (к.ф.-м.н., гл. редактор журнала «Exponenta Pro. Математика в приложениях», компания SoftLine) и Р.И. Ивановский (д.т.н., профессор Санкт-Петербургского Государственного Политехнического Университета).
Maple в работе
TanaT: Можно ли считать, что Maple и Matlab способны решать одни и те же типы задач? Или у одного из этих пакетов спектр возможностей шире? Иногда возникает ощущение, что использование Matlab позволяет полностью отказаться от Maple, так как ядро работы с символьными переменными из Maple используется в Matlab. Как вы считаете, это действительно так?
В.В. Анохин: Maple и MATLAB — принципиально разные пакеты. У них есть пересечение в символьной математике, а именно: MATLAB имеет расширение Maple, но на этом сходство заканчивается. Maple — чисто математический пакет, а MATLAB — это язык, на котором разговаривают ученые на международных симпозиумах, т. к. MATLAB используется и математиками, и химиками, и биологами, и многими, многими другими специалистами.
Одно из многочисленных окон Matlab
TanaT: Matlab всегда способен перевести свою программу в код на языке С? Или в некоторых случаях он испытывает затруднения?
В.В. Анохин: Вопрос не совсем некорректен, версии MATLAB’а обновляются, как правило, не реже раза в год. С каждой версией ограничений становится меньше. Пока, например, нельзя транслировать программы, в которых есть операторы обращения к клавиатуре и вызова функций (feval и т.п.).
Поверхности в Matlab
TanaT: Очень часто при решении той или иной задачи (например, СЛУ) математический пакет сам выбирает, каким методом ее решать. Как бы вы оценили интеллект пакетов вообще? Они способны проводить тонкий анализ и применять самые эффективные методы? Или по-прежнему необходимо проводить анализ самому?
Р.И. Ивановский: Думается, что попытка исключить пользователя из вычислительного процесса не приведет к положительному результату. Мне бы и дальше хотелось самому принимать решение по выбору метода. Если эту функцию поручить системе, у пользователя останется справедливое недоверие к действиям системы. Всегда останется вопрос: «А действительно хороший метод предложен системой?». Нельзя полностью заменить интеллект пользователя компьютером. Выбор метода трудно формализовать, он зависит от «тонкой структуры задачи», ее порою скрытых свойств.
Экспорт модели из Maple
TanaT: Понимаю, что вопрос, возможно некорректный, но все-таки хотелось бы узнать мнение опытного человека: вы не считаете, что среди четырех известных пакетов (Maple, Matlab, Mathematica и Mathcad) есть один — самый лучший? Или у каждого свои сильные и слабые стороны?
В.В. Анохин: Это зависит от вашей профессии, а также от навыков работы с компьютером. Однако если перед вами стоит серьезная задача, стоит внимательно прочитать Help MATLAB и воспользоваться его удивительными Toolboxes.
TanaT: Спасибо, что уделили нам время!
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.
Execute mathcad from Matlab
Thanks. Your code is useful but it seems I cannot get the variable to be updated. I am posting here the code and the attached mathcad file.
h = actxserver( ‘Mathcad.Application’ )
h.visible=1 % make the application visible!
h.methods % these are the methods that are available at this level
h.invoke % these are the actions that can be invoked at this level
inspect(h) % more investigation of the application inteface
h.worksheet.invoke % One level down in the interface — the worksheet level
sht = h.worksheet.Open( ‘Enter your path here . \test.xmcd’ )
sht.GetValue( ‘A’ ) % Works .
val = sht.GetValue( ‘A’ ).Integer % Answer 5 — Works .
SetValue(sht, ‘A’ ,7) % Does not Work — A variable is not set to 7 .
val = sht.GetValue( ‘C’ ).Integer % Should be 7+2 = 9 Does not Work .
Any help is appreciated on why the variable ‘A’ cannot be changed.
Thomas on 21 Mar 2017
Direct link to this comment
Cancel Copy to Clipboard
Direct link to this comment
Cancel Copy to Clipboard
Finally got it to work. FOr Matlab to assign a value to a variable into Mathcad, you need to make sure that the Variable is not pre-assigned in Mathcad.
If you want Matlab to assign the value 2 to the variable A into Mathcad. Matlab will not be able to change the variable value if Mathcad has A:=1 or any other value. For Matlab to work you need A=1 or any other value or A by itself.
I am enclosing the example.
Hope this helps others.
John D’Errico on 21 Mar 2017
Direct link to this comment
Cancel Copy to Clipboard
Direct link to this comment
Cancel Copy to Clipboard
Edited: John D’Errico on 21 Mar 2017
Geez. Is MathCad still around? I used it for a bit in the 80s. My impression at the time was it used low quality numerical algorithms. (Admittedly, it was quite new at the time.) Then when I contacted the people who wrote it, explaining the problems they had and how to fix them, they seemed to be a bit clueless about things like algorithm design, etc. Yes, that was around 30 years ago, and after a few years the software simply seemed to have disappeared. I imagine the company probably got bought out.
I’m sure that since it has somehow survived, things got better. One thing different about MATLAB is that from the very beginning I was always extremely confident the creators of MATLAB knew what they were doing.
Marie Carmen Landivar Guartatanga on 19 Sep 2019
Direct link to this comment
Cancel Copy to Clipboard
Direct link to this comment
Cancel Copy to Clipboard
John, you had be surprised. At least in my branch of work, a teacher did a survey, and 7 out of 10 companies used mathcad. Only one used matlab. It depends really. My career is full of calculations with long formulas. Yes, they can be done in matlab, but mathcad offers the visual part, plus you can do simple algoriths if needed. Though, programming in mathcad is a pain compared to matlab. It depends a lot in what you are working at.
Kevin Merene on 7 Jul 2021
Direct link to this comment
Cancel Copy to Clipboard
Direct link to this comment
Cancel Copy to Clipboard
If I wanted to get the values of an entire array rather than just a lone integer, how would I do so?
Answers (1)
Kapil Gupta on 8 Jul 2021
Direct link to this answer
Cancel Copy to Clipboard
Direct link to this answer
Cancel Copy to Clipboard
I assume you want to know how you can execute mathcad from MATLAB. The following links have similar queries, you can check these out:
Что представляют собой matlab mathcad
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
Showing results for
Search instead for
Did you mean:
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
Showing results for
Search instead for
Did you mean:
The PTC Community email address has changed to community-mailer@ptc.com. Learn more.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
MathCad vs. Matlab?
JohnRudnicki
14-Alexandrite
Jun 11, 2012 11:29 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Jun 11, 2012 11:29 AM
MathCad vs. Matlab?
Can someone (or several) offer some comments about advantages of one vs. the other? I realize that could be a long answer and I am just looking for some general guidance.
I have been a longtime MathCad user (though not necessarily a particularly adept one). Recently I decided to learn Matlab and started doing this by rewriting some Matlab programs in MathCad (although the reverse might seem more sensible). Although MathCad has obvious advantages for combining text and calculations in a more or less free form way, my impression is that MatLab offers many programming advantages. For example, fzero seems to work more robustly than root, MathCad seems to have no function equivalent to fminsearch or fminbnd, it treats NaN differently (MathCad returns 0).
Attached is a MathCad worksheet and the equivalent (?) Matlab files.
- Tags:
- mathcad_programming
Matlabfiles.zip
BasketballExample.mcd.zip
- All forum topics
- Previous Topic
- Next Topic
12 REPLIES 12
rschor
Jun 11, 2012 12:44 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Jun 11, 2012 12:44 PM
I’ve used all of the «M» systems (MathCad, MatLab, Mathematica, and Maple). It really depends on what you need to do in deciding which system is «best». Here are some considerations that I’ve used .
I started with MathCad first. I needed something that would let me express mathematics to do some simple analysis, make a few plots (for my own edification and for teaching purposes), and, most important, would let me create documents that combined text, math (meaning equations, usually), and graphics that could be used for teaching or other didactic purposes.
At a certain point, I needed to analyze a lot of data, often multi-channel analog samples from a variety of sources. In some cases, complicated calculations involving these data needed to be performed. For example, I might want to know the 3-D orientation of an object (roll, pitch, yaw), given voltages measured by coils fixed to the object inside a stationary magnetic field. I used MathCad to develop and test the equations to take the signals (voltages) and convert them (through multiple steps, including getting «scaling» information from other files) into a series of three components representing roll, pitch, and yaw (these eventually were converted to rotation vectors). For doing the «number-crunching», involving multiple files and megabytes of data, I used MatLab, as I found it easier to handle the «point the program at the following directory and let ‘er rip» with MatLab than with MathCad.
A number of years ago, I started working on an even more complicated problem involving vector-like objects in a six-dimensional space. I needed to be able to «point it at data», like MatLab, but needed more sophisticated math ability, like MathCad. However, the MathCad at the time (12? 13? I’m not sure) didn’t seem up to the task. So I bit the bullet and tried Mathematica. This definitely has all of the «power» that I could imagine, particularly in the «solving» arena (which is where MathCad had let me down). However, its ideosyncratic syntax (basically, you need to learn an entirely different set of «rules» for things like parentheses, square and curly brackets, upper and lower case) gave it an extremely steep (and rocky!) learning curve, not something I would want to turn to for a simpler problem. While it does support the creation of documents that combine text and math, the math is in Mathematica syntax rather than looking more like equations we can intuitively grasp, as MathCad provides.
At this point, needing the math capability of Mathematica but wanting the syntax and ease-of-use of MathCad, I decided to try Maple, which I understood to be a MathCad «parent». I must confess I probably did not give it a fair trial, as I was put off by the difficulty of entering «math» into the system (compared to MathCad), and the relative lack of transparency and intuitiveness of the system.
I’ve just downloaded and installed MathCad Prime 2.0 (I «passed» on Prime 1.0 because it lacked 3-D plots and symbolics (both of which I use). I’m hoping and planning to «get re-acquainted» with MathCad for my algorithm development, modelling, and data analysis (not of the «number-crunching» variety, but I might decide to «give it a try» . ).
Fred_Kohlhepp
23-Emerald I
Jun 11, 2012 12:50 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Jun 11, 2012 12:50 PM
I like Mathcad! It’s easy to learn to use (once you’ve climbed the «learn the editor» hill. You don’t have to learn a programming language. (I’ll concede that Matlab is much easieer than FORTRAN, but it’s still a programming language.) Mathcad handles units. And I can do in Mathcad practically whatever others can do in Matlab.
In my experience, Matlab handles file I/O better than Mathcad. (Some people have been writing DLL’s and scripts to address that, you can find a wide assortment here.) And I suspect that Matlab may have an advantage with HUGE quantities of data. (Mr. Jackson may have an input.) Matlab can create a page of graphs as a stand alone image; I really wish Mathcad could do that. But I can read a Mathcad sheet and understand it—it looks like hand written math. Pray tell, what is fzero? fminsearch? (Admitted: soome of the Mathcad functions can get isoteric too.)
Depending on your setup, cost may be an issue. According to my IT accountant, a Mathcad «seat» is much cheaper than a Matlab «seat.»
From someone who has been advocating Mathcad for a long time.
JohnRudnicki
14-Alexandrite
Jun 11, 2012 04:23 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Jun 11, 2012 04:23 PM
Thanks for the interesting comments.
Like Fred, I have been happy with MathCad and been able to do most of what I needed to do. But in my world (ivory tower academia), MatLab seems to be a much more popular platform. I put off learning it for a long time, but my recent motivation was in some MatLab programs for analyzing errors in shooting a basketball. I started out rewriting them in MathCad just to make sure I understood them. Along the way I realized I needed learn some MatLab – which led to my question. MatLab does seem to have advantages for certain operations (some mentioned by Bob), but I will likely need much more persuasion to be a convert. Nevertheless, it has been helpful and interesting to know a bit more about MatLab (though, as you may have judged by my previous posts, I am not by any means an expert in MathCad). As someone who cut his teeth on Fortran many decades ago, I have been happy to leave that in the past. I have friends who swear by Mathematica, but I am not about to tackle that or Maple.
KarlBogha
12-Amethyst
Nov 10, 2016 07:01 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Nov 10, 2016 07:01 AM
Sometimes there is more to a product than we know about it.
I had seen some programming steps written for a protection relay response, the Mathcad file plus it had a data file associated to it. I was surprised to see the level of programming similar to Fortran for instance. I realised then that it had its ability to be a cad like and programming software. That was in a formal course at Uni of Idaho. Now I am getting into signals and systems thru a tutorial book for Mathcad, plus an engineering textbook.
So it takes me a while to get the entries and syntax right, slowly I am making progress. I say to myself there cant be anything more Mathlab can do for what I am doing now, and if it could it would be more of a GUI input.
So thus far I am pleased with Mathcad but I need to study its programming side. I got me a textbook with some Mathlab files in it too, but I have to do the signals and systems in Prime first. Then hopefully I will be able to do the coding for filters and other topics for the relay algorithm in the textbook in Prime.
I dont know if Prime student version has the full programming features, because I had not seen anything like how to write a function pass the values etc.
I am on a slow and steady rate which need NOT be accelerated!
I had the same question John Rudniki had, and also asked it on a portal called Stack Exchange Signal Processing, the moderator there felt it was a personal preference and the replies would be opinions and requested I rewrite the question I wanted to post in the group.
I would suggest if your’e young in the 30s and 40s and are using Mathcad or Prime, that you should also pick up with Mathlab if the area you are involved in has those packs in Mathlab.
I say Mathcad has many features and areas that are applicable to electrical engineering, more so than other fields. From probability to signal processing, transforms, and lots more. I am comfortable with Mathcad Prime but would not mind learning Mathlab for some speciality area where industry might have preference.
In the tutorial book on Mathcad it has a very short chapter on interface with National Instrument as well.
My conclusion start with Mathcad Prime and when need arise study Mathlab.
Programming in Mathlab is closer to programming in a language like Fortran Python etc while in Mathcad for me so far its not programming but how to effectively use the few commands in the student version.
Reply also intended to John.
ptc-4695363
Aug 21, 2012 12:20 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Aug 21, 2012 12:20 AM
I am a PhD student at the University of Kansas. Today was the first day of class. My Probability professor recommended that we purchase Mathematica. Before I go down that road, I thought I’d ask your opinion on which one of the discussed M software packages would be best suited for a PhD student majoring in civil engineering with an emphasis in transportation?
Any information that you guys can give is greatly appreciated.
-a lost PhD student
ValeryOchkov
24-Ruby III
Aug 21, 2012 01:44 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Aug 21, 2012 01:44 AM
I think if your professor knows Mathematica he recomends you this M software.
And if your professor knows Mathcad he recomends you this M software etc.
But I think Mathcad is better for future civil engineers!
rschor
Aug 21, 2012 03:28 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Aug 21, 2012 03:28 PM
In my opinion, Mathematica is best for mathematicians. If you are going to be doing a lot of «number-crunching», particularly if your numbers are ASCII strings in a file, and you are doing fairly simple things with them and want something quick, MatLab isn’t a bad bet. It is basically an «interpreter» (like BASIC), and is definitely a «text-based» language (so you’ll have some syntax to learn).
However, if you are going into engineering (as you are), and are likely to be doing a mix of data analysis (which includes number-crunching) and possibly some theoretical/experimental work (I notice you’re taking a Probability class, so you might do some Monte-Carlo type simulations, such as estimating pi by figuring out the probability that a needle lands on a line when dropped onto a set of evenly-spaced parallel lines spaced the length of the needle), you’ll probably find that MathCad is more intuitive, easier to learn, and has tools (such as the ability to create «text» documentation, to have the «program» and graphs be readable by people who don’t know MathCad, and to include units to prevent mixing inches and meters inappropriately) that get the software «out of the way» of solving the (engineering) questions you really want to ask.
ValeryOchkov
24-Ruby III
Aug 22, 2012 04:21 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Aug 22, 2012 04:21 AM
Mathematica is best for mathematicians
Mathcad is best for mathcadians
Is this word (mathcadians) in Webster?
May by in future!
Ninetrees
Aug 23, 2012 07:32 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Aug 23, 2012 07:32 AM
I am a physics PhD student @ UNH. I own (30+ years)and operate my own scientific engineering company. (Coming back to school is a journey in itself after so long, but that is for another time.
I have been using Mathcad for decades (since the mid 1980s? V1). I am an early adopter of tools that show promise, and Mathcad was one of those. For some time, it was the only tool that did what I needed, though other tools had/have their own strengths. I now use Mathcad 14/15 (1st choice), MATLAB (2nd choice), Maple (3rd), and just began looking into Mathematica. I use Mathcad 15 rather than Prime 2.0 because of shortcomings in Prime, but Prime is now getting up to steam, so I try to develop in parallel until Prime fails me, then I switch back to M15. The problem with that approach is that there is no converter for Prime > M15, but there is M15 > Prime, so I will not commit any serious work at this point to a draft in Prime, expecting that I will want to redo it in M15. Prime 2.0 is not the tool for you as a PhD candidate.
I find Maple very powerful as a math analysis tool. much more so than Mathcad. Great solvers and plotting features. But the user interface is arcane, units are handled in a manner that seems unique to Maple, and is not a clean process (through Maple 16, at any rate), and documents are not easy to format unless one accepts the Maple presentation style. All these items have been on the table for years with the folks at Maple, so I don’t expect changes soon.
MATLAB is very powerful, and includes data handling features that I need in my work (space plasma physics) that are not available in Mathcad. In addition, programming is more intuitive in MATLAB for me (extensive background w 3G, 4G programming languages) than Mathcad. It is fast, well supported by MathWorks, has a great user community, has a student license, and is far, far, far, far, easier to manage, license-wise, than any PTC product. The same goes for Maple. I currently run several versions of Maple and MATLAB side-by-side on the same platform, with no problems.
Mathcad 15 is the fastest to prototype models in, and the units checking is one of the most valuable features. I recently «checked» a published equation that I wanted to use, only to find that it contained en error, an error that would have been much more difficult to find without unit checking. (Complicated expression involving current-voltage characteristics of swept Langmuir probes in tenuous plasma.)
One of MATLAB’s weaknesses is its graphics capability (can’t even get sub-tick grid lines on plots). Here at the U, math and physics folks disdain Mathcad as a toy, and prefer Maple. Over in Engineering, folks use Mathcad extensively. I have been «sneaking» my work by in Mathcad, while some of my peers think that I am using MATLAB. As a result of Mathcad’s (14/15) better document features, I have been erroneously dubbed the king of MATLAB OTOH, I am currently working with data files in CDF (Common Data Format), not available in Mathcad.
MATLAB offers a very intuitive, text-based programming environment, comfortable for me because of my history. I consider the programming UI in Mathcad unintuitive in many instances, and even after years of [infrequent] use I find myself stumbling and coming here for advice.
In summary, I find Mathematica to be an intriguing prospect for the future, with it’s own direction that fills an important niche. If you were an undergad or a math major, I might recommend Maple (different reasons for each case). I recommend getting a student license for both Mathcad and MATLAB, and using them regularly. Use M15, not Prime. Use the Mathcad and MATLAB forums often for browsing and seeking help. My experience is that help is very forthcoming when one shows a good faith effort to solve the problems. All of the tools have their peculiarities, and all will require a learning curve. I consider Mathcad and MATLAB to have the shortest curves, with the biggest ROI.