25,70
рейтинг
5 февраля 2015 в 16:05

Разработка → Mathcad Express — бесплатный математический редактор, про который мало кто знает tutorial

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

РТС Mathcad – это характерный пример математического ПО, предназначенного для осуществления, как численных, так и аналитических расчетов по формулам и визуализации их результатов в виде графиков. На протяжении последних лет Mathcad стал очень популярным, и его, на мой взгляд, по праву можно считать математическим пакетом №1 в мире.

Сначала несколько фактов о Mathcad, конечно, известных большинству читателей, т.к. Mathcad у нас уже не один десяток лет используется в ВУЗовском обучении, научных и инженерных расчетах. Скорее всего, вы использовали «старую» версию Mathcad (последняя – за номером 15), мало изменившуюся еще с прошлого века. В наши дни она вполне успешно сосуществует с более молодым семейством Mathcad, которое носит имя Mathcad Prime. Таким образом, разработчики несколько лет назад полностью переписали код программы, но заботиться о 100%-й совместимости не стали. Поэтому сейчас они благополучно поддерживают оба семейства – и «старый» Mathcad, и «новый» Mathcad Prime. Дальше и в этой статье, и в моем блоге, будем говорить именно о Mathcad Prime.



Сразу скажу, что русскоязычный дистрибутив, полнофункциональную 30-дневную версию Mathcad Prime вы можете скачать с сайта русского реселлера РТС. Если вы уже собрались попробовать ее в работе, мой совет – не торопитесь в Мастере установки согласиться с включением тестового 30-дневного периода. Дело в том, что Mathcad Prime, наряду с мощной полнофункциональной версией (окно которой вы видите сверху) имеет бесплатную ограниченную версию, которая называется Mathcad Express. Особенность Mathcad Express заключается в том, что большинство функций в этой версии выключено и являются недоступными. Тем не менее, в программе Mathcad Express остается довольно богатый функционал, достаточный, по крайней мере, для того, чтобы изучать математику в школе и на 1-м курсе технического ВУЗа.



Формулы можно вводить в документы либо с клавиатуры (если подходящие символы на ней есть), либо при помощи меню Математика. Давайте ради примера посчитаем интеграл от функции cos(x). Для этого выбираем символ интеграла, а потом — в соответствующие местозаполнители вводим (с клавиатуры) пределы интегрирования и подынтегральную функцию cos(x). Остается нажать клавишу «равно», чтобы сразу получить ответ.



Надо хорошо себе представлять, что происходит, когда мы вводим знак равенства. А именно, запускается соответствующий численный алгоритм вычисления интеграла: интервал интегрирования разбивается на некоторое число отрезков, в определенных точках которых вычисляется массив значений подынтегральной функции, который потом пересчитывается в соответствующую аппроксимацию интегральной суммы. Таким образом, большая часть расчетов скрыта и происходит «за кадром», а на экран выводится лишь конечный результат.

Ключевые инструменты Mathcad – это операторы и функции. Например, в наших расчетах мы использовали оператор интегрирования и функцию косинуса. Для выбора нужной встроенной функции удобно использовать меню Функции.

Давайте теперь определим пользовательскую функцию f(t), которая будет зависеть от переменной t. Будем использовать предназначенный для этого в Mathcad оператор присваивания (двоеточие со знаком равно).



Мы определили функцию f(t), как наш интеграл от cos(x) с переменным верхним пределом t. После того, как мы определили функцию f(t), можно посчитать ее значения в точках (для чего достаточно ввести аргумент и нажать клавишу «равно», чтобы вывести в документ ответ). Для ввода константы, например π, используется или меню Символы, или меню Константы.

В качестве аргумента можно использовать не только скалярную, но и векторную переменную. Определить ее можно так:



Тогда и результатом вычисления функции будет соответствующий вектор.

Наконец, одна из важных возможностей Mathcad Express – это возможность построения в документе графиков. Давайте выделим место в документе и вставим в это место XY-график (т.е. декартов график) нашей функции f(x).

Обозначаем на оси абсцисс имя переменной z (чтобы не путать с уже использованными ранее x и t), а на оси ординат – имя функции f(z), функцию, которую, как вы помните, мы определили, как интеграл от косинуса, равный конечно, sin(z). В итоге, получаем график этой функции.



Скажу еще, что в Mathcad Express (возможно, по недосмотру разработчика) остаются доступными матричные операции. Поэтому Mathcad Express — довольно мощный инструмент для решения задач линейной алгебры.



Переходя по документу вверх и вниз, мы можем просматривать свои расчеты, а управлять ими можно при помощи меню Расчет. По умолчанию, включена опция автоматического расчета (по мере ввода формул в документ, эти формулы сразу рассчитываются). Если эту опцию отключить, то для того чтобы рассчитать документ вручную, достаточно нажить кнопку Рассчитать.



Давайте я на этом остановлюсь, полагая, что задача знакомства читателя с Mathcad Express решена, и в следующих статьях блога, когда речь пойдет, собственно, о математике, я смогу использовать расчеты в Mathcad, не углубляясь в его интерфейс.

В заключение, адресую заинтересовавшегося читателя к своему видеокурсу по математическому анализу, который в формате МООС прошел на портале ИНТУИТ в 2014 году. Все лабораторные работы выполнены в Mathcad Prime и скачать их можно здесь. Все эти материалы на сайте Nerepetitor.ru бесплатные, регистрация не требуется.

PS. К своему удивлению столкнувшись с несколькими негативными комментариями, отмечу и несколько недостатков Mathcad (опять-таки, с моей точки зрения):
  • имеется только Windows версия
  • ресурсоемкий, работает медленнее«прошлых» Mathcad
  • интерфейс мог бы быть и более удобным
  • нельзя сохранить документ в прошлой версии (напр. из 3-й в формате 2-ю)
  • документы из «прошлых» Mathcad не всегда удается импортировать в Prime
Автор: @polybook
Нерепетитор.ру
рейтинг 25,70
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Комментарии (49)

  • +1
    Немало они интерфейс переработали. Чувствуется далёкое влияние Mathematica и Maple, которые уделяли интерфейсу и юзабилити всё же больше внимания.
  • +13
    можно считать математическим пакетом №1 в мире

    ну да, с конца
    Работает только под виндой, полностью сумасшедший подход к интерфейсу, дурной язык с достаточно корявой документацией, производительность… вы не захотите делать любые сложные вещи которые потребуют производительности, так что тормозить будет только GUI (я вижу баги рендера всё такие же).
    Абсолютно бесчеловечная концепция ввода формул которую стоило бы назвать WYSIGFY.
    Я конечно имел дело с более старой версией но я сомневаюсь что что-то радикально изменилось (нельзя из осла сделать самолёт).

    Я собственно говоря к чему — то, что вы делаете открытые уроки это хорошо, но может их стоит давать в более практичном инструменте, опыт работы с которым пригодится и в жизни?
    • –2
      А какой по-вашему №1? Ну, может, Mathematica (лично мне она нравится меньше). Matlab и т.д. — уже другого уровня. Все.
      С критикой производительности, GUI, только под Win и т.д. согласен. Но лучшего инструмента я не вижу.
      • +1
        Для простых операций и SMath Studio достаточно будет. Не номер 1, но Maxima может как плагин к себе подключить.
        • +2
          Посмотрел и присоединяюсь — очень симпатичный проект SMath Studio, хочется всяческого успеха ему пожелать.
      • +2
        • +1
          В бесплатной версии нельзя даже перемножить матрицы размером 8х8
          • –1
            Вот беда.
          • +2
            Wolfram Alpha просто не предназначена для этого. Хотите что-то посерьёзнее посчитать — используйте, скажем, не менее бесплатный Wolfram Cloud. Или вообще Maxima, которая весьма неплоха. Если активно работаете с матрицами, то можно, как вариант взять Matlab/Octave. Зато Wolfram Alpha весьма неплоха как база знаний.

            Нет никакого «лучшего математического пакета». У каждого свои цели, задачи (и цена).
        • 0
          Насколько я понимаю, это клон Mathematica? Я и говорю, что в своем классе, на мой взгляд — №1 (имею в виду функционал платных версий) — это или Mathcad, или Mathematica. По мне — однозначно Mathcad, но я человек ангажированный, 15 лет про него пишу.
          • +4
            Не клон, а родственный продукт.

            Почему или MathCAD, или Mathematica? Есть и другие системы компьютерной алгебры. Maple, Maxima и другие. SymPy+IPython, наконец. :) Да и по функционалу MathCAD до Mathematica далеко.
            • 0
              Возможно, Вы правы. Я всегда считал, что Maple — это скорее для аналитических вычислений и все-таки в расчете на программиста. Возможно, отстал от жизни или просто ошибаюсь. Посмотрел на Maxima — по-моему, она проигрывает Mathcad-у. Кто лучше -Mathcad или Mathematica можно спорить (ей в плюс еще харизма Вольфрама).
              Но честный факт такой — когда я год назад выбирал для своего курса мат.редактор — среди Mathcad, Maple, Octave и Mathematica — выбрал Mathcad. Это при том, что оригинальный курс MIT, на основе которого я делал свой — имел практикум на Maple.
              • +2
                Спорить тут не о чем, и харизма Вольфрама тут ни при чём. Я не говорю, что MathCAD плох. У него простой и симпатичный интерфейс, много функций для повседневного использования. Студентов-инженеров с его помощью проще учить каким-то маетма вещам, так как всё очень наглядно. Если вам нужен математический редактор, который может что-то посчитать, то MathCAD хорош. Если же вам нужна система компьютерной алгебры для решения сложных задач, то лучше взять что-то другое.

                Просто посмотрите на список функций MathCAD (это для 15-й версии, может, в Prime всё кардинально поменялось) и на документацию к Mathematica.

                Ну в самом деле, рассмотрим пример. Скажем, занимаетесь Вы машинным обучением. Что может предложить MathCAD кроме regress? А в Mathematica есть целый блок функций. И каждая включает в себя сразу несколько мощных алгоритмов. Например, Classify знает и про логистическую регрессию, и про байесовский классификатор, и про случайный лес.

                Умеет ли MathCAD решать неравенства, уравнения в частных производных, рекуррентные уравнения, дифференциальные уравнения с запаздыванием, вводить собственные символы для каких-то действий? Есть ли в нём pattern-matching, функциональное программирование, геометрические расчёты? Может, конечно, и есть, но я не видел.

                У MathCAD и Mathematica просто разные целевые аудитории.
                • 0
                  Я с Вами согласен почти во всем.
                  Моя мечта — написать цикл статей (возможно даже здесь на Хабре) по машинному обучению с Маткадовскими (правда, уже не Экспресс) примерами, взяв за основу пару американских открытых курсов.
                  Поверьте, при помощи Маткад можно решать и неравенства, и уравнения в частных производных, и обратные задачи, и жесткие ОДУ. И мне приходилось это делать. Позвольте еще раз порекомендовать свою книгу по вычислительной физике. Почти вся она (кроме томографии) посчитана на Маткаде 2001, и большая часть посвящена анализу данных и дифф.уравнениям. Ряд примеров из книги «вырос» из научной работы. Безусловно, применение Маткада ограничено ресурсоемкостью задачи. Типовая модель его использования — это быстрые расчеты «на коленке», разработка численных алгоритмов, самообучение, визуализация результатов. Как правило, в задачах, требовавших или работы с большими данными, и/или вычислительных мощностей — после Маткада шли руками программировать алгоритм на параллельную ЭВМ (уже не я, а коллеги).
      • 0
        > лично мне она нравится меньше
        Раз уж Вы говорите о личных пристрастиях, то надо было добавить, что MathCAD — № 1 в Вашем личном рейтинге. И никто бы не придирался.
        • 0
          Добавил (спасибо).
          • +2
            Он № 1 по порогу вхождения (ну, после Wolfram Alpha, где просто текстом можно сказать, что хочешь :)). Не зная практически ничего о программировании можно уже какой-то интеграл посчитать. Потому он и популярен, как мне кажется.
    • +4
      >> можно считать математическим пакетом №1 в мире
      > ну да, с конца
      Страшно подумать, что вы ответите на утверждение «Windows можно считать десктопной ОС №1 в мире»…
      • –2
        Да, отвечу, и Win 8 мне очень нравится. А Вы какую ОС назовете? Linux? Я в свое время для работы пробовал и — не смог. Это не голословно, например моя книга по вычислительной математике (вся на Маткаде посчитана) — написана и сверстана в ООО. polybook.ru/comma Но — через силу. Были реальные попытки перейти на свободный софт — не смог, все снес и вернулся к Майкрософту. Скрепя сердце, да.
        • +1
          O_o. Книга, по математике, сверстана в OOO??? LaTeX же. Как раз для книг по математике. + какой питон если нужно посчитать. Питон хорошо с латехом интегрируется.
          • –4
            Не смог я, ученый, работать с LaTeX-ом. Пробовал, не понравилось (в начале 2000-х). В OpenOffice прекрасный модуль для ввода формул — по мне, лучше Word-а. Слово Питон меня пугает немного.
    • +1
      >Я собственно говоря к чему — то, что вы делаете открытые уроки это хорошо, но может их стоит давать в более практичном инструменте, опыт работы с которым пригодится и в жизни?
      Пхп что ли?
      Поход к интерфейсу как раз в точку. Без него был бы очередной язык, а так неплохая штука сделать одновременно расчет и отчет. Порог вхождения как у Excel, но на порядок мощнее и нагляднее для определенных задач. И с единицами измерений на уровне языка. Под вайном, кстати, бодро летает. Был бы бесплатный еще.
      Альтернативы — только содранные клоны. Остальные пакеты — это вовсе не альтернативы, это как emacs с вордом сравнивать.
  • –2
    > На протяжении последних лет Mathcad стал очень популярным, и его по праву можно считать математическим пакетом №1 в мире

    Странный мир, в моём мире математические тексты почему-то верстают в TeX
    • +8
      Так то тексты. В Маткаде же — живые вычисления.
      • +1
        TeX + плагин для питона. Вот вам и живые вычисления сразу с оформлением.
        • 0
          Расскажите поподробнее пожалуйста! Я искал — не нашёл. Единственное, что я знаю сейчас похожее — sagetex, который лучше всего работает в sagemathcloud.
          • 0
            Например это как один из вариантов
            • 0
              Спасибо.
  • +4
    Переписали, а кроссплатформенность не реализовали — печаль.
    • 0
      Увы. И облачной версии нет, хотя раньше в этом направлении шли (был Mathcad Calculation Server)
  • +6
    MathCAD хорош на этапе обучения, чтобы показать студентам/школьником «вот, существуют системы компьютерной математики и они могут это, это и вот это».

    Что касается серьезной науки, то, на мой взгляд, лучше ориентироваться на более продвинутые системы. Тот же Maple генерирует вывод LaTeX (правда черезчур избыточно) и экспортирует графики в формат EPS, что дает возможность качественно оформить результаты. То же касается и Mathematica.

    Применительно к ориентации на визуальные концепции UI, думаю, что она не всегда оправдана — попробуйте нащелкать мышью сотню интегралов и трехэтажных преобразований. В свое время, готовя диссер к.т.н. выл от ворда. Перейдя на TeX вздохнул с облегчением. Но это всё имхо, ибо на вкус и цвет…
    • 0
      В маткаде интегралы отлично набиваются на горячих клавишах, нужно только привыкнуть.
    • 0
      В универе начиная с 2 курса все лабораторные, курсовые и диплом делал целиком в маткаде. Причем проходил в том числе и нормоконтроль, правда точки в десятичный дробях приходилось править ручками. Тогда меня сильно расстраивало, что маткад совсем не преподавали. Спасало то, что принимали пояснительные записки только в бумажной форме и напечатанная пз не отличалась от ворда внешне.
      В общем маткад спасал очень, позволяя полностью выполнить курсовик за вечер причем на несколько вариантов.
      п.с. начало 2000х
      • 0
        Вот это кстати большой косяк преподавания, когда вместо курсовых всем дают одно и то же под копирку, как 800 лет назад.
  • +2
    Согласен, что у каждого продукта — своя ниша. У Маткада — решение научных и инженерных задач без написания кода. (+ конечно, образование). Для ученых лет 15-20 назад было просто чудом появление продукта, при помощи которого можно было решать задачи самому, не обращаясь к программисту! Как показывает мой опыт (10 лет в МГУ, потом 10 лет в РАН) — для очень многих задач реального мира достаточно Маткада.
  • +1
    Еще раз — цель моей статьи — не убеждать и не переубеждать никого, что Mathcad лучше аналогов, а представить бесплатный продукт Mathcad Express. Дальше будут этюды, основанные на расчетах в Mathcad Express.
    • 0
      Что ж, в будущих статьях цикла было бы интересно, среди прочего, узнать, что может предложить данный пакет в плане автоматизации оформления полученных результатов, скажем при публикации статьи
  • +1
    Лично использую Маткад практически всегда для прототипирования всех своих идей (вычислительная электродинамика). Очень быстро получается пройти путь от формулирования проблемы до проверки способа ее решения. За что я люблю Маткад — это лист бумаги, который за тебя умеет считать. Это именно лист, на котором ты рисуешь формулы. И Mathematica, и Maple, и, тем более, Matlab — более ориентированы на программирование.
    Как только мне нужно генерировать результаты и замерять производительность я переношу все в C++ или Fortran. Поэтому промежуточное решение в виде других программных пакетов мне подходят не особенно.
    И посему, я бы сказал, любовь к Маткаду сильно зависит от процесса разработки и конечного продукта.
  • 0
    И Mathematica, и Maple, и, тем более, Matlab — более ориентированы на программирование.

    Немного не соглашусь — способ ввода команд, вида паскале/фортрано подобного языка != ориентированности на программирование. Насчет Mathematica точно не знаю, только начал с ней знакомится, а вот первый и последний имеют возможность визуального мышеориентированного ввода. Причем в Maple режим Document включен по умолчанию.
    • +1
      Дело не столько в способе ввода (может, в Mathematica и Maple он удобнее), сколько в представлении документа. Маткад представляет расчеты максимально приближенно к тому, как если бы вы написали их на листе бумаги. Например, «живые» формулы в последних версиях можно вставлять внутрь текста. Возможно я ошибаюсь, но в других мат.редакторах (внимательно смотрел на пару лет назад) расчет больше смахивает на код, нежели на журнальную статью.
      • 0
        Маткад представляет расчеты максимально приближенно к тому, как если бы вы написали их на листе бумаги

        Визуально это так. Но вы не пойдете же с файлом документа маткад в редакцию ВАКовского журнала?
        Например, «живые» формулы в последних версиях можно вставлять внутрь текста.

        Я тоже могу ошибаться, но касательно Prime, они по прежнему внедряются, в то же Word, в виде растровых изображений.
        • +1
          Конечно, Вы правы. Речь не о том, что Mathcad — средство для подготовки научных публикаций. Вовсе нет. И если Вы через буфер обмена делаете копипаст в тот же Word, то формулы и графики вставляются как обычная графика.

          Речь о представлении документа внутри самого Mathcad, и о том, что расчеты в нем будут понятны и непрограммисту, и (если они хорошо оформлены) даже простому читателю, не знакомому с Mathcad. Это очень важно для коллективной работы, построения базы знания предприятия, обучении и т.д.
        • 0
          Разумеется не пойду. Просто Маткад позволяет переключаться с листа бумаги на столе на лист бумаги в компьютере, который умеет считать без необходимости промежуточной абстракции в виде языка программирования. (в Маткаде, кстати, тоже почти все что очень нужно запрограммировать можно. Вопрос, насколько оно тебе нужно). У меня формулки и так непростые, и если вбивать их в математику или Матлаб, то мне проще сразу в С++ писать — не придется потом тратить время на перенос.

          Хотя я был бы более чем счастлив, если бы Маткад генерировал даже самую ужасную версию моего рабочего листа в LaTeX. Боюсь этой функции я бы очень быстро нашел практическое применение.
          • +1
            Мапл умеет непростые формулки нормально отображать, работать с символьными вычислениями мне больше нравится
            • 0
              Согласен. для символьные вычислений Maple лучший выбор. Если я не ошибаюсь, в Маткаде 15 символьный процессор был именно от Maple. Только в моей сфере деятельности символьные вычисления занимают 5%, а интерполяция, численное интегрирование и спец. функции занимают более 90%.
  • 0
    До сих пор, к сожалению, не смог подобрать себе пакет символьных вычислений, который умел бы нормально работать с матрицами в общем виде, а не поэлементно. Например, если я указал, что x — скаляр, а Y,Z — матрицы (не перечисляя все элементы, а некоторой символьной размерности n на m), то при упрощении надо учитывать, что xYZ=YxZ=YZx, но не xZY. Ну и тому подобное — контроль размерностей, транспонирование, дифференцирование матричных выражений.
    Prime так умеет?
    • 0
      Сомневаюсь
    • 0
      Навскидку не могу сказать, что умеет Маткад, а что нет — надо конкретную задачу смотреть. Про матрицу без перечисления элементов — вряд ли.

      Контроль размерностей есть, в последних версиях даже чересчур навязчивый (опять же — зависит от задачи, хорош или плох). А вообще, символьные возможности Mathcad 15, мне кажется, лучше, чем в Prime.
      Но символьный процессор — в платной версии (в Экспрессе выключен).
    • 0
      Mathematica, например, умеет работать с произвольными объектами задавая правила работы с ними.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка