Mathcad
Mathcad — система компьютерной алгебры из класса систем автоматизированного проектирования, ориентированная на подготовку интерактивных документов с вычислениями и визуальным сопровождением, отличается легкостью использования и применения для коллективной работы.
Mathcad был задуман и первоначально написан Алленом Раздовом [3] из Массачусетского технологического института (MIT), соучредителем компании Mathsoft, которая с 2006 года является частью корпорации PTC (Parametric Technology Corporation).
Mathcad имеет интуитивный и простой для использования интерфейс пользователя. Для ввода формул и данных можно использовать как клавиатуру, так и специальные панели инструментов.
Некоторые из математических возможностей Mathcad (версии до 13.1 включительно) основаны на подмножестве системы компьютерной алгебры Maple (MKM, Maple Kernel Mathsoft). Начиная с 14 версии — использует символьное ядро MuPAD.
Работа осуществляется в пределах рабочего листа, на котором уравнения и выражения отображаются графически, в противовес текстовой записи в языках программирования. При создании документов-приложений используется принцип WYSIWYG (What You See Is What You Get — «что видишь, то и получаешь»).
Несмотря на то, что эта программа в основном ориентирована на пользователей-непрограммистов, Mathcad также используется в сложных проектах, чтобы визуализировать результаты математического моделирования, путем использования распределённых вычислений и традиционных языков программирования. Также Mathcad часто используется в крупных инженерных проектах, где большое значение имеет трассируемость и соответствие стандартам.
Mathcad достаточно удобно использовать для обучения, вычислений и инженерных расчетов [4] . Открытая архитектура приложения в сочетании с поддержкой технологий .NET и XML позволяют легко интегрировать Mathcad практически в любые ИТ-структуры и инженерные приложения. Есть возможность создания электронных книг (e-Book).
Количество пользователей в мире — около 1.8 млн.
Основные возможности

Трёхмерный график, построенный в Mathcad
Mathcad содержит сотни операторов и встроенных функций для решения различных технических задач. Программа позволяет выполнять численные и символьные вычисления, производить операции с скалярными величинами, векторами и матрицами, автоматически переводить одни единицы измерения в другие.
Среди возможностей Mathcad можно выделить:
- Решение дифференциальных уравнений, в том числе и численными методами
- Построение двумерных и трёхмерных графиков функций (в разных системах координат, контурные, векторные и т. д.)
- Использование греческого алфавита как в уравнениях, так и в тексте
- Выполнение вычислений в символьном режиме
- Выполнение операций с векторами и матрицами
- Символьное решение систем уравнений
- Аппроксимация кривых
- Выполнение подпрограмм
- Поиск корней многочленов и функций
- Проведение статистических расчётов и работа с распределением вероятностей
- Поиск собственных чисел и векторов
- Вычисления с единицами измерения
- Интеграция с САПР системами, использование результатов вычислений в качестве управляющих параметров
С помощью Mathcad инженеры могут документировать все вычисления в процессе их проведения.
Сравнительная характеристика
Назначение
Mathcad относится к системам компьютерной алгебры, то есть средств автоматизации математических расчетов. В этом классе программного обеспечения существует много аналогов различной направленности и принципа построения. Наиболее часто Mathcad сравнивают с такими программными комплексами, как Maple, Mathematica, MATLAB, а также с их аналогами MuPAD, Scilab, Maxima и др. Впрочем, объективное сравнение осложняется в связи с разным назначением программ и идеологией их использования.
Система Maple, например, предназначена главным образом для выполнения аналитических (символьных) вычислений и имеет для этого один из самых мощных в своем классе арсенал специализированных процедур и функций (более 3000). Такая комплектация для большинства пользователей, которые сталкиваются с необходимостью выполнения математических расчетов среднего уровня сложности, является избыточным. Возможности Maple ориентированы на пользователей — профессиональных математиков; решения задач в среде Maple требует не только умения оперировать какой-либо функции, но и знания методов решения, в неё заложенных: во многих встроенных функциях Maple фигурирует аргумент, задающий метод решения.
Тоже самое можно сказать и о Mathematica. Это одна из самых мощных систем, имеет чрезвычайно большую функциональную наполненность (есть даже синтезирование звука). Mathematica обладает высокой скоростью вычислений, но требует изучения довольно необычного языка программирования.
Разработчики Mathcad сделали ставку на расширение системы в соответствии с потребностями пользователя. Для этого назначены дополнительные библиотеки и пакеты расширения, которые можно приобрести отдельно и которые имеют дополнительные функции, встраиваемые в систему при установке, а также электронные книги с описанием методов решения специфических задач, с примерами действующих алгоритмов и документов, которые можно использовать непосредственно в собственных расчетах. Кроме того, в случае необходимости и при условии наличия навыков программирования в C, есть возможность создания собственных функций и их прикрепления к ядру системы через механизм DLL.
Mathcad, в отличие от Maple, изначально создавался для численного решения математических задач, он ориентирован на решение задач именно прикладной, а не теоретической математики, когда нужно получить результат без углубления в математическую суть задачи. Впрочем, для тех, кому нужны символьные вычисления и предназначено интегрированное ядро Maple (с версии 14 — MuPAD). Особенно это полезно, когда речь идет о создании документов образовательного назначения, когда необходимо продемонстрировать построение математической модели, исходя из физической картины процесса или явления. Символьное ядро Mathcad, в отличие от оригинального Maple (MuPAD), искусственно ограничено (доступно около 300 функций), но этого в большинстве случаев вполне достаточно для решения задач инженерного характера.
Более того, опытные пользователи Mathcad обнаружили, что в версиях до 13 включительно есть возможность не слишком сложным способом задействовать почти весь функциональный арсенал ядра Maple (так называемые «недокументированные возможности»), что приближает вычислительную мощность Mathcad к Maple [5] .
Интерфейс
Основное отличие Mathcad от аналогичных программ — это графический, а не текстовый режим ввода выражений. Для набора команд, функций, формул можно использовать как клавиатуру, так и кнопки на многочисленных специальных панелях инструментов. В любом случае — формулы будут иметь привычный, аналогичный книжному, вид. То есть особой подготовки для набора формул не нужно. Вычисления с введенными формулами осуществляются по желанию пользователя или мгновенно, одновременно с набором, либо по команде. Обычные формулы вычисляются слева направо и сверху вниз (подобно чтению текста). Любые переменные, формулы, параметры можно изменять, наблюдая воочию соответствующие изменения результата. Это дает возможность организации действительности интерактивных вычислительных документов.
В других программах (Maple, MuPAD, Mathematica) вычисления осуществляются в режиме программного интерпретатора, который трансформирует в формулы введенные в виде текста команды. Maple своим интерфейсом ориентирован на тех пользователей, кто уже имеет навыки программирования в среде традиционных языков с введением сложных формул в текстовом режиме. Для пользования Mathcad можно вообще не быть знакомым с программированием в том или ином виде.
Mathcad задумывался как средство программирования без программирования, но, если возникает такая потребность — Mathcad имеет довольно простые для усвоения инструменты программирования, позволяющие, впрочем, строить весьма сложные алгоритмы, к чему прибегают, когда встроенных средств решения задачи не хватает, а также когда необходимо выполнять серийные расчеты. [6]
Отдельно следует отметить возможность использования в расчетах Mathcad величин с размерностями, причем можно выбрать систему единиц: СИ, СГС, МКС, английскую, или построить собственную. Результаты вычислений, разумеется, также получают соответствующую размерность. Пользу от такой возможности трудно переоценить, поскольку значительно упрощается отслеживание ошибок в расчетах, особенно в физических и инженерных.
Графика
В среде Mathcad фактически нет графиков функций в математическом понимании термина, а есть визуализация данных, находящихся в векторах и матрицах (то есть осуществляется построение как линий так и поверхностей по точкам с интерполяцией), хотя пользователь может об этом и не знать, поскольку у него есть возможность использования непосредственно функций одной или двух переменных для построения графиков или поверхностей соответственно. Так или иначе, механизм визуализации Mathcad значительно уступает таковому у Maple, где достаточно иметь только вид функции, чтобы построить график или поверхность любого уровня сложности. По сравнению с Maple, графика Mathcad имеет ещё такие недостатки, как: невозможность построения поверхностей, заданных параметрически, с непрямоугольной областью определения двух параметров; создание и форматирование графиков только через меню, что ограничивает возможности программного управления параметрами графики. [6]
Однако следует помнить об основной области применения Mathcad — для задач инженерного характера и создание учебных интерактивных документов, возможностей визуализации вполне достаточно. Опытные пользователи Mathcad демонстрируют возможность визуализации сложнейших математических конструкций, но объективно это уже выходит за рамки назначения пакета.
См. также таблицы сравнения систем компьютерной алгебры: [7] , en:Comparison of computer algebra systems.
Расширение функциональности
Возможно дополнение Mathcad новыми возможностями с помощью специализированных пакетов расширений и библиотек, которые пополняют систему дополнительными функциями и константами для решения специализированных задач:
- Пакет для анализа данных (англ.Data Analysis Extension Pack ) — обеспечивает Mathcad необходимыми инструментами для анализа данных.
- Пакет для обработки сигналов (англ.Signal Processing Extension Pack ) — содержит более 70 встроенных функций для аналоговой и цифровойобработки сигналов, анализа и представления результатов в графическом виде.
- Пакет для обработки изображений (англ.Image Processing Extension Pack ) — обеспечивает Mathcad необходимыми инструментами для обработки изображений, анализа и визуализации.
- Пакет для работы с функциями волнового преобразования (англ.Wavelets Extension Pack ) — содержит большой набор дополнительных вейвлет-функций, которые можно добавить в библиотеку встроенных функций базового модуля Mathcad Professional. Пакет предоставляет возможность применить новый подход к анализу сигналов и изображений, статистической оценки сигналов, анализа сжатия данных, а также специальных численных методов. Функциональность включает одно- и двухмерные вейвлеты, дискретные вейвлет-преобразования, мультианализ разрешения и многое другое. Пакет объединяет более 60 функций ключевых вейвлетов. Включены ортогональные и биортогональные семейства вейвлетов, среди прочего — вейвлет Хаара, вейвлет Добеши, симлет, койфлет и B-сплайны. Пакет также содержит обширную диалоговую документацию по основным принципам вейвлетов, приложения, примеры и таблицы ссылок.
- Библиотека строительства (англ.Civil Engineering Library ) — включает справочник англ.Roark’s Formulas for Stress and Strain (Формулы Роарка для расчета напряжений и деформаций), настраиваемые шаблоны для строительного проектирования и примеры тепловых расчётов.
- Электротехническая библиотека (англ.Electrical Engineering Library ) — содержит стандартные вычислительные процедуры, формулы и справочные таблицы, используемые в электротехнике. Текстовые пояснения и примеры облегчают работу с библиотекой — каждый заголовок имеет гиперссылку на оглавление и указатель, и его можно найти в системе поиска.
- Библиотека машиностроения (англ.Mechanical Engineering Library ) — включает справочник англ.Roark’s Formulas for Stress and Strain (Формулы Роарка для расчета напряжений и деформаций), содержащий более пяти тысяч формул, вычислительные процедуры из справочника McGraw-Hill и метод конечных элементов. Текстовые пояснения, поисковая система и примеры облегчают работу. В состав библиотеки включена электронная книга Дэвида Пинтура «Введение в метод конечных элементов».
Взаимодействие с другими программами
Mathcad интегрируется с программами SmartSketch, VisSim/ Comm PE, Pro/ENGINEER.
Приложение SmartSketch позволяет инженерам, дизайнерам, архитекторам, чертежникам, системным и сетевым администраторам работать с точными чертежами и графиками.
VisSim/Comm PE — это Windows-приложение для моделирования аналоговых, цифровых или смешанных систем сообщения на сигнальном или физическом уровне.
Использование компонентов
В документах-программах Mathcad есть возможность вставки модулей (component) других приложений для расширения возможностей визуализации, анализа данных, выполнение специфических вычислений.
Для расширенной визуализации данных предназначен компонент Axum Graph. Для работы с табличными данными — Microsoft Excel.
Компоненты Data Acquisition, ODBC Input позволяют пользоваться внешними базами данных.
Предлагаются также бесплатные модули (add-in) для интеграции Mathcad с программами Excel, AutoCAD.
Для статистического анализа предназначен компонент Axum S-PLUS Script.
Значительное расширение возможностей пакета достигается при интеграции со сверхмощным приложением MATLAB.
История версий
Mathcad 1.0-5.xx
Версии Mathcad с 1.0 по 4.хх работали в операционной системе DOS, имели небольшой общий размер исполняемых файлов (до 1 Мб) и незначительные (по современным меркам) системные требования (оперативная память до 1 МБ, IBM PC-совместимый компьютер) . Возможности позволяли выполнять операции как с элементарными математическими функциями, так и специальными (статистическими, булевыми, комплексными и т. п.). Уже в первых версиях присутствовала возможность использования размерностей в расчетах и построения 2D-графики.
3D-графика появилась в версиях 2.5х и выше, возможности которой, впрочем, существенно сдерживались незначительными вычислительными возможностями ЭВМ того времени.
Объединив усилия с фирмой Waterloo Maple Software и введя в свои системы ядро мощной системы символьной математики Maple V, MathSoft Inc. научила свою систему (начиная уже с версии 3.0) основам компьютерной алгебры (символьной математики). Однако, из многочисленных функций ядра Maple V и его расширений (их было около 2500 в Maple V R3 для Windows) привлечено лишь мизерную часть распространенных функций символьной математики. Между тем, появилась возможность использовать функции ядра Maple V с вызовом их из системы Mathcad.
Возможности программирования ограничивались функциями if и until, позволявшие реализовывать лишь две основные алгоритмические конструкции — выбор и повторение. Но эти функции не могут иметь в качестве аргументов блоки составных операторов. Поэтому для реализации даже несложного алгоритма нужно было подключать механизм вложенных функций, существенно осложняющего программирование.
Версии с 5-й и выше уже работали на платформе Windows. Начиная с пятой версии Mathcad пользователям была представлена возможность объявления в среде Mathcad новых встроенных функций. Их нужно было написать на языке С, откомпилировать 32-разрядным транслятором и прикрепить к Mathcad через механизм DLL.
В пятой версии также появились инструменты решения обыкновенных дифференциальных уравнений (ОДУ) и их систем.
Mathcad 6
Версии Mathcad 6.0 и PLUS 6.0 были рассчитаны на работу с ОС Windows 95 и были полноценными 32-разрядными приложениями, которые могли полностью использовать новые возможности микропроцессоров серий 486/Pentium. Интерфейс системы был улучшен, повышена скорость выполнения операций, введены многочисленные новые графические возможности, новые функции и новые возможности программирования.
Вариант системы 6.0 Standard Edition рассчитана на обычных пользователей, к которым относятся ученые, инженеры, преподаватели и студенты вузов, уважающие математику, но не считающие всё же её главным своим занятием. Система ориентирована на ПК класса 386DX и выше с емкостью RAM не менее 4 Мб и свободным пространством на диске не менее 12 Мб для файла подкачки и ещё 20 Мб для установки самой системы.
Второй вариант системы — PLUS 6.0 — ориентирован на пользователей-профессионалов, которым требуется более мощный математический помощник. Для реализации расширенных возможностей становится необходимым RAM с емкостью не менее 8 Мб. Mathcad PLUS 6.0 имеет заметно расширенный набор функций (20 новых матричных функций, 13 функций для решения дифференциальных уравнений различного типа, ряд новых статистических функций и т. д.), расширенные возможности символьных вычислений и мощную графику. Стоимость Mathcad 6.0 составляла 129$, а Mathcad PLUS 6.0 — 495$. Были также версии для студентов и школьников (Mathcad 6.0 BASIC, 90$), Mathcad 6.0 Standart (240$). Для версий Standart и PLUS дополнительно включалось средство рисования технических и бизнес-диаграмм Visio Express корпорации Visio.
Mathcad 7
В версии Mathcad 7.0 PRO были следующие доработки и нововведения: отсутствие проблемы 2000 года; интерфейс, существенно переработанный и приближенный к интерфейсу текстового процессора Word 95/97; выделения частей выражений мышью; задание впервые для данной переменной её значения или значений нажатием клавиши = (при этом на экране выводится знак присваивания :=), при повторном использовании клавиши = для этой же переменной выводится её текущее значение; быстрое построение (QuickPlot) графиков в декартовых и полярных координатах с автоматической установкой пределов изменения независимых переменных; новая палитра символьной математики с расширенными операторами; удобным и наглядным синтаксисом символьных операций; возможность обработки ошибок в ходе вычислений; новые инструкции on error, continue, return; применение в программах операторов символьных операций; новый тип строковых данных, констант и переменных; восемь новых функций для работы со строковыми данными; задачи размерных величин в системе СИ; возможность подготовки сложных документов различными пользователями, работающими в разных местах, с помощью Collaboratory; возможность обмена документами через Интернет; появление более оперативного центра ресурсов (Resource Center) вместо «быстрых шпаргалок» QuickSheet, электронных книг, самоучителя и др.; моделирование (симуляция) работы сложных систем, построенных из функциональных блоков, с помощью системы MathConnex, имеющая 16 компонентов; возможность использования функций других систем (Excel, Axum, MATLAB и др.) и фактическая интеграция с ними.
Некоторые из указанных изменений были скорее из разряда приятных мелочей, например расширено действие знака = (ранее для присвоения переменным значений нужно было вводить только комбинированный знак :=). Другие изменения, такие как интеграция с другими системами и применение системного интегратора MathConnex, были серьёзными дополнением системы, открыли множество новых возможностей.
Mathcad 8
Версия Mathcad 8.0 PRO предоставила ещё целый ряд полезных возможностей: около 50 новых математических функций (элементарных, специальных статистических и др.); новые функции оптимизации maximize и minimize; решения задач линейного программирования, новые функции контроля типа данных; улучшенный блок решения систем нелинейных уравнений — снято ограничение на полное число уравнений (ранее было не более 50), теперь их число достигло 200; введение набора методов численного интегрирования с возможностью выбора конкретного метода через контекстное меню; возможность проведения бинарных вычислений; эффективные средства сглаживания данных; улучшенные средства ввода и форматирования текста; команды редактирования Find (найти) и Replace (найти и заменить); новая возможность блокировки и сокрытия областей; улучшенное вывода таблиц; возможность записи документов в формате HTML, возможность записи документов в формате предыдущих версий; поддержка новой графики OpenGL и ActiveX, применение мастеров для создания сложных трехмерных графиков; существенно улучшены средства форматирования графиков; просмотр графиков в увеличенном масштабе; применения функциональной окраски поверхностей; возможность изображения на одном трехмерном графике поверхностей и фигур разного типа; возможность изображения на одном трехмерном графике разных объектов, с пересечением в пространстве; возможность вращения трехмерных графиков в пространстве мышью; анимация трехмерных графиков.
Mathcad 2000 (версия 9)
Версия Mathcad 2000 добавила к существующим возможностям ещё ряд новых и существенных отличий: улучшенный интерфейс системы, в частности интеграция с Интернетом перенесена в центр ресурсов; введен ряд новых функций для финансово-экономических расчетов, создания матриц трехмерных поверхностей, численного решения дифференциальных уравнений в составе блока Given, контроля типа размерных переменных и др.; введен набор функций для выполнения регрессии — экспоненциальной, логарифмической, синусоидальной и др.; введен набор логических операторов; расширенные возможности функции root — теперь она может искать корень не только по заданному приближению (функция с двумя параметрами), но и в заданном интервале (функция с четырьмя параметрами); введено ускоренное и упрощенное построение трехмерных графиков; предусмотрено наложение надписей на блоки документов, в частности графические; введена трассировка ошибок; существенно обновлен набор примеров в центре ресурсов; обеспечен контроль орфографии англоязычных текстов на трех диалектах английского языка.
Mathcad 2001 (версия 10)
В версии Mathcad 2001 ещё более возросла производительность вычислений и расширились возможности. Внедрена поддержка Windows 2000. Созданы четыре модификации с учетом специфики использования.
Основные нововведения: расширение совместимости с другими популярными приложениями; обработка единиц измерения в реальном времени; ограничения рекурсивного спуска в процессе вычислений (выигрыш в скорости до 5-20 раз по сравнению с предыдущими версиями); оптимизированы вычисления, особенно для итераций, суммирования, интегрирования и дифференцирования; новые логические алгоритмы, основанные на зависимостях от областей изменения переменных и большая согласованность между аналитическими и численными расчетами; улучшенное управление памятью и обработка объектов рабочего документа, которые удаляются; новый режим публикации в сочетании с основанными на MathML возможностями электронных публикаций; включение последней версии IBM Techexplorer Professional Edition для чтения и редактирования MathML, TeX и LaTeX.
Существенно усовершенствованы инструменты для создания приложений с использованием Mathcad: улучшенные объекты программирования сценария для создания новых модулей из программируемых OLE и COM объектов, а также хранение их для повторного использования и распространения. Поддерживаются стандартные языки программирования сценариев, такие как VBScript и JScript.
Mathcad 2001i («интерактивный»)
Mathcad 2001i получил полную поддержку Windows XP, расширены возможности сбора данных от внешних устройств, повышенную защищенность Mathcad-документов введением современной криптографии, упрощенную публикацию в Интернет, расширенное число алгоритмов решения задач и набор опций пользовательских настроек.
- Включение современных методов криптографии файлов для защиты содержания документов до того момента, пока они не поступят в руки адресатов, кроме того, при распространении документов добавлена возможность заблокировать все области Mathcad с конструкциями и вычислениями, то есть распространять результаты не открывая сути идей. Mathcad 2001i также предоставил возможность пользователям задавать новые опции секретности для защиты от внесения в документы кодов опасных для пользовательских компьютерных систем;
- Введена поддержка сбора данных от аналоговых DAQ-плат и улучшенную совместимость с платами устройств компании National Instruments;
- Добавлено несколько опций для повышения комфортности работы, основываясь на множестве запросов пользователей, в частности: опция цветной сетки для двумерных графиков, включения и надписи на трехмерных графиках, региональные установки и печать текущей страницы;
- Двунаправленная поддержка MathML, поддержка интерактивных данных, улучшенная графика и, с помощью дополнительных Интернет-шаблонов, упрощенная публикация в Интернет;
- Новый, быстрый и точный алгоритм Radau решения обыкновенных дифференциальных уравнений. Блоки решения обыкновенных дифференциальных уравнений теперь поддерживают системы дифференциальных уравнений и дифференциальные алгебраические уравнения, в то же время вложенные блоки теперь поддерживают более сложные задачи оптимизации;
- Улучшены интерфейсы автоматизации для встроенных приложений. Новые интерфейсы Mathcad приложений, рабочие документы, окна и области обеспечивают более широкий набор опций для настройки Mathcad с целью выполнения повторяющихся задач.
Mathcad 11-11.2a
При создании Mathcad 11 основное внимание было обращено на увеличение скорости и мощности работы системы. Цель состояла в том, чтобы улучшить ядро Mathcad, расширить и улучшить удобства работы с Mathcad.
- Расширенные компоненты ввода-вывода для импорта и экспорта данных в виде строк и столбцов, а также возможности чтения-записи смешанных текстово-числовых файлов; обеспечена глубокая интеграция с Microsoft Excel; используя простые команды copy/paste можно создавать и отображать смешанные данные непосредственно в форме матриц и таблиц; обеспечена новая поддержка чтения/записи для равномерных, произвольных и однородных файлов двоичного формата (READBIN и WRITEBIN), что дает пользователям большую гибкость в операциях импорта или экспорта данных, чем их преобразование в ASCII-коды; обеспечена новая поддержка для прохождения строковых данных через UserEFI-интерфейс (функции, определенные пользователем; DLL).
- На основе ODE-вычислительных блоков (для решения обыкновенных дифференциальных уравнений) Mathcad 2001i, Mathcad 11 теперь поддерживает PDE-вычислительные блоки (для решения дифференциальных уравнений в частных производных); обеспечена новая поддержка для комплексных аргументов функций floor, ceil, round и trunc; добавлены комплексные функции Бесселя и Ганкеля; расширенные возможности функции genfit, которая обеспечивает аппроксимацию кривыхнелинейными функциями общего вида; введена новая sinc функция для вычисления точных значений sin(x)/x в пределе при х, стремящемся к 0; новый доступ к «зерновым» значениям в генераторах случайных чисел.
- Улучшенный формат текста RTF позволяет вставлять фрагменты из документа Mathcad в такие прикладные приложения как Microsoft Word без дополнительного переформатирования; улучшена поддержка протокола HTTP, который позволяет открывать удаленные файлы Mathcad, размещенные на Веб-сервере, с помощью команды File/Open; улучшен HTML-образный формат для вставки в интернет страниц с колонтитулами, ссылками и картинками; обеспечена возможность сохранять документы как интернет-страницы.
Mathcad 12
Новая версия пакета получила более совершенное математическое ядро, а также дополнительные опции, позволяющие сохранять и публиковать документы Mathcad в различных форматах.
- Возможность трассировки вычислений: промежуточные данные могут быть выведены как для всего документа в целом, так и для его отдельных областей, что позволяет эффективно контролировать выполнение исходных кодов Mathcad.
- Дополнительные возможности публикации результатов вычислений благодаря новому формату данных XML: XSL-HTML-конвертер позволяет генерировать веб-страницы лучшего качества; опция XSL-FO позволяет сохранять данные в формате PDF; внутри XML изображения хранятся в специальном экономичном формате, что позволяет значительно уменьшить объём на диске для файлов с большим количеством графики.
- Двойная ось ординат на двумерных графиках, что позволяет представить на одном графике функции, которые значительно различаются по величине, а также увеличить допустимое количество графиков, которые могут одновременно отображаться в одном блоке, до 32 (по сравнению с 16 в предыдущих версиях).
- Mathcad Application Server: формы и кнопки для веб-приложений, поддерживаемых Mathcad Application Server.
- Новые возможности по импорту данных из файлов созданных другими программами: поддержка большого количества новых форматов данных; функция READFILE позволяет импортировать данные внутри программных циклов.
Mathcad 13-13.1
- Мощные средства отладки программ, включая возможность вставки меток и пошагового выполнения программных циклов.
- Новая функция автосохранения позволяет исключить возможность потери выполненной работы.
- Новый указатель математических ошибок позволяет устранять ошибки, которые без него могли бы быть пропущены.
- Поддержка нелинейных единиц измерения, таких, как Фаренгейт, Цельсий и децибел; возможность создания собственных единиц измерения с помощью простого меню.
- Существенно повышена производительность вычислений по сравнению с предыдущими версиями.
- Включен новый мощный класс возможностей определения «происхождения», которые дают возможность предприятиям точно определить источник конкретных расчетов, величину или результат. Это позволяет контролировать и отслеживать выполняемую работу.
Mathcad 14
Mathcad 14 — первая с момента приобретения Mathsoft Inc. компанией PTC версия Mathcad (релиз состоялся 12 февраля 2007). Реализована возможность двусторонней интеграции с основным продуктом PTC — пакетом Pro/ENGINEER. Базовые величины, рассчитанные в системе Mathcad, могут быть переведены в параметры и размеры CAD-модели для управления геометрическим объектом. Параметры из модели Pro/ENGINEER также можно ввести в Mathcad для последующих инженерно-конструкторских расчетов.
Существенные изменения коснулись также математического ядра системы, которое теперь использует символьную систему MuPAD. Это позволило во многих случаях повысить точность символьных вычислений и их детализацию, но есть и негативные последствия, связанные, в первую очередь, с совместимостью символьных алгоритмов с предыдущими версиями (вычисления, которые работают в предыдущих версиях, могут не выполняться в новой и наоборот).
- Интернационализация: введена полная поддержка шрифтов Unicode и азиатских локализаций операционных систем. Интерфейс переведен на девяти языках (английский, французский, немецкий, итальянский, испанский, японский, корейский, упрощенный и традиционный китайский), поддерживается проверка орфографии на 15-ти языках.
- 2D-графики: добавлена возможность выбора формата отображения чисел на шкалах координатных осей. При использовании полярной системы координат является возможность применения отрицательных значений функции на радиусе.
- Инструментарий решения дифференциальных уравнений дополнена тремя новыми алгоритмами — по методам Адамса (англ.Adams ), BDF (англ.backward differentiation formulas, формулы обратного дифференцирования ) и комбинированным Adams/BDF.
- Новая функция statespace (наряду с новыми функциями Эйри) позволяет решать ОДУ, записанные в матричной форме.
- Добавлен оператор, который возвращает значение градиента функции в виде вектора отдельных производных функции многих переменных.
- есть возможность сравнения изменений в двух документах Mathcad (XMCD-файлы), что позволяет выявлять математические и текстовые элементы, которые были добавлены, удалены или изменены с соответствующей цветовой разметкой. Есть возможность выявления изменений результатов вычислений при разнице в настройках и алгоритмах между версиями Mathcad.
- поиск и замена возможны в скрытых областях документа;
- изображения можно сохранять в формате JPEG с настройкой качества, что позволяет уменьшить размер документов;
- активация заменена на использование лицензионного файла, получаемой через интернет при установке.
Версии Mathcad с 12-й включительно, в связи с использованием формата данных XML, а также с постепенным ростом функционального инструментария, имеют ограниченную обратную совместимость документов с предыдущими версиями, но могут почти без ограничений открывать документы, созданные в старых версиях. Как следствие, импорт также имеет ограничения: документ, созданный в Mathcad 14 можно сохранить в формате версии не ниже 11-й.
Mathcad 15
Основные новые возможности:
- Добавлено 25 функций для расчетов по планированию экспериментов (design of experiments (DoE)). Также имеются шаблоны для проведения нескольких экспериментов, при наличии нескольких уровней эксперимента (режимов тестирования) и различных условий;
- Интеграция с базой данных KnovelMath (инженерные и технические стандарты);
- Интеграция с программным обеспечением Kornucopia (позволяет применять шаблоны процессов для оценки данных натурных экспериментов и результатов расчетов);
- Интеграция с базой данных Truenumbers (от True Engineering Technology), предоставляющий доступ к различным справочным материалам и данным (результаты из Mathcad просто передаются в различные форматы документов, что облегчает передачу данных в цепи разработчиков);
- Поддержка операционной системы Microsoft Windows 7;
- Поддержка Microsoft Excel 2007.
Mathcad Prime 1.0
Mathcad Prime 1.0 является последним релизом компании PTC в программном обеспечении для инженерных расчетов. Основные отличия нового Mathcad Prime 1.0 [9] :
- Изменён интерфейс пользователя, который теперь выполнен в стиле последних версий MS Office.
- Среда вычислений, ориентированная на работу с документами, позволяет пользователям быстро и просто создавать детализированные технические документы, которые включают сложные вычисления, используя «живые» математические примечания с текстом, изображениями и диаграммами. Подобные документы легко читаются и воспринимаются сотрудниками, которые не знакомы с данным программным решением, помогают поддерживать эффективную коммуникацию в рамках проектов и передачу технического знания внутри предприятия.
- Полный пакет дополнительных функций численной математики (включая новый пакет по планированию эксперимента) позволяет быстро и качественно решить любую вычислительную задачу, экономя время и средства.
- Динамическая проверка размерных величин предоставляет полную поддержку размерных величин и единиц их измерения по всем расчетам, созданным в Mathcad Prime 1.0. Векторы и матрицы Mathcad Prime 1.0 теперь могут содержать величины разной размерности, что повышает эффективность процесса разработки продукции, помогая избегать многих ошибок.
- Интуитивно понятный редактор уравнений, работающий в режиме полного соответствия (что видите на экране, то и получаете на бумаге), позволяет пользователям описывать условия и решения в естественном математическом виде, сосредотачиваясь на вычислениях, а не на работе с документом.
- Mathcad Prime 1.0 написан на совершенно новой программной основе, имеет максимальную производительность, а также полную поддержку Windows 7 и последнего релиза MS Excel.
Комплектации
Версии Mathcad могут отличатся комплектацией и лицензией пользователя. В разное время поставлялись версии Mathcad Professional, Mathcad Premium, Mathcad Enterprise Edition (отличаются комплектацией). Для академических пользователей предназначена версия Mathcad Academic Professor (обладает полной функциональностью, но отличается лицензией пользователя и имеет в несколько раз меньшую стоимость).
Некоторое время выпускались также упрощенные и заметно «урезанные» студенческие версии программы.
Развитие
Дальнейшее развитие технология Mathcad получила при создании Mathcad Application Server (MAS). Суть технологии MAS — в реализации удаленного доступа к программному обеспечению Mathcad или уже готовым Mathcad-документам через веб-интерфейс (технология Web Calc). Пользователь MAS не нуждается в покупке Mathcad, не требуется скачивать и запускать exe-файлы (но это не исключается и определяется уровнем доступа).
Системные требования
- Процессор: 32-битный или 64-битный (x86-64, EM64T) с тактовой частотой 400 МГц или выше (рекомендуется 700 МГц).
- 256 МБ оперативной памяти (рекомендуется 512 Мб).
- 1,75 Гб свободного дискового пространства (350 Мб для Mathcad, 1,4 Гб для временных файлов во время установки).
- Привод CD-ROM или DVD (только для установки с диска).
- Графическая картаSVGA или выше.
- МониторXGA с разрешением 1024×768 (или выше) c 24-битными (или больше) цветами.
- Мышь или другое совместимое указывающее устройство.
- Операционная система: Windows XP (SP1, SP2, SP3), Windows Vista (SP1), Windows 7 или Windows XP x64 (SP2), Windows Vista x64 (SP1), Windows 7 x64
- Microsoft .NET Framework 3.5
- MSXML 4.0 SP2
- Microsoft Data Access Components 2.8
- Internet Explorer 5.0
См. также
Примечания
- ↑Mathcad Language Support — PTC.com (англ.)
- ↑Релиз Mathcad 15.0 (англ.)
- ↑www.razdow.com (англ.)
- ↑The Global Standard for Engineering Calculations (англ.)
- ↑Коробов В., Сясев А. Недокументированная символьная математика Mathcad/Maple (рус.)
- ↑ 12Очков В. Ф. Cказ про то, как Maple задачу решал (Сравнение Maple и Mathcad). (рус.)
- ↑Maple Comparison Chart — Adept Scientific plc
- ↑Видеопрезентация новых возможностей Mathcad 14
- ↑Mathcad Prime 1.0
Ссылки
- Ресурсный центр Mathcad (англ.)
- Официальный сайт MAS (англ.)
- Сайт MAS В. Очкова (рус.)
- Сайт Exponenta. ru — раздел Mathcad (рус.)
- Полный список книг проф. Дьяконова В. П., включая 11 книг по системе Mathcad (рус.)
- Видеокурс «Высшая математика на Mathcad» в Интернет Университете Информационных Технологий (рус.)
- 30-дневная триал версия Mathcad Prime 1.0
- Ресурсный центр Mathcad
- Сравнительный анализ MathCAD и Smath Studio Desktop
- Укороченная бесплатная версия Mathcad Prime — Mathcad Express
Математическоепрограммное обеспечение Open source Символьные вычисления: Axiom • GAP • Maxima • ; Численные вычисления: Fityk • FreeMat • GNU Octave • gretl • LabPlot • QtiPlot • R • Sage • SciDAVis • Scilab • Proprietary Символьные вычисления: Mathcad • Maple • Mathematica • SMath Studio ; Численные вычисления: GAUSS • LabVIEW • MagicPlot • MATLAB • Origin • SigmaPlot • Speakeasy • VisSim Системы компьютерной алгебры Retail ClassPad Manager • LiveMath • Magma • Maple • Mathcad • Mathematica • MuPAD • TI InterActive! Свободные Axiom • CoCoA • GAP • GiNaC • Macaulay2 • Mathomatic • Maxima • OpenAxiom • PARI/GP • Reduce • Sage • SINGULAR • SymPy • Xcas • Yacas Бесплатные/shareware Fermat • KANT Discontinued CAMAL • Derive • Macsyma • muMATH Категория • Сравнение - Программное обеспечение по алфавиту
- Программное обеспечение для Windows
- Программное обеспечение для MS-DOS
- Системы компьютерной алгебры
Wikimedia Foundation . 2010 .
Mathcad
MathCAD — продвинутое специализированное программное решение, которое позволяет его пользователям производить математические и технические расчеты различной сложности. На первый взгляд интерфейс приложения кажется необычным и запутанным, но уже через час-другой работы с программой вы поймете, насколько она проста и интуитивна. MathCAD включает в себя несколько панелей инструментов, дающих возможность работать с формулами и таблицами. Кроме того, приложение поддерживает более сотни операторов и логических функций, а также позволяет развязывать задачи, имеющие как числовое, так и символьное решение. Если вы посчитаете весь вышеописанный функционал недостаточным для комфортной работы, то сможете в любой момент скачать дополнительные модули для программы с официального сайта разработчика. В общем, MathCAD — это отличный помощник для людей технических профессий.
Автор обзора : Сергей Нечаев, 15.07.2022
Математический пакет для Android своими руками
Мне понравилась дискуссия, развернувшаяся по поводу этой статьи. Однако мне более интересен немного иной аспект дискутируемой проблемы, а именно: нужна ли система компьютерной алгебры на смартфоне или планшете, или это такой странный таракан в голове околоайтишного инженера?
Постановка проблемы
Как известно, тяжела и неказиста жизнь простого программиста. Около года назад, когда я осознал вычислительные возможности своего китайфона с четырьмя ядрами на платформе Android, захотелось тряхнуть своей научной стариной и что-нибудь посчитать на телефоне. Play-маркет может все, подумалось тогда.
Каких-то особых ограничений не было, за свою научную карьеру я успел попользовать и Mathcad с MATLAB, и Математику, и FEM-системы (Ansys). Поэтому для начала стал смотреть все подряд.
- Matlab Mobile, как расширение лицензионной копии десктопного варианта. У меня таковой дома не оказалось, поэтому этот вариант, к сожалению, отпал;
- Сервис Wolfram Alpha и туча обучалок от Wolfram Group — не совсем то, что у меня ассоциируется со словами «посчитать самостоятельно»;
- Клоны «Матлаба» и «Октавы» под Android — уже теплей, но писать код на экране в 5 дюймов не очень-то удобно;
- Огромное количество научных калькуляторов разной степени навороченности. Их всех объединяет одно — ввод и представление результатов организованы как в классическом (хардверном) графическом калькуляторе. Основной минус такой идеи — это отсутствие «документа», который можно сохранять, изменять и пересчитывать вновь и вновь;
- Ничего, что походило бы на Маткад, тогда найти не удалось.
- На небольшом экране устройства с пальце-ориентированным интерфейсом все-же удобней работать с формулой, если она записана в естественном математическом виде, а не в виде кода на скриптовом языке;
- Мобильное устройство хорошо подходит для того, чтобы что-то быстро попробовать. Поэтому от мобильной математической системы требуется удобный интерфейс, но не требуется серьезных вычислительных возможностей;
- В идеале, в такой системе нужна функция «Я пиарюсь». То есть не только быстро записать сложную формулу и построить пару графиков, но и удобно опубликовать это во всех своих социальных сетях. Формулы в естественной математической нотации здесь тоже более удобны, чем скрипт.
То есть я бы с удовольствием установил бы Mathcad mobile на свой смартфон. Но вот его-то (в смысле «Маткада», а не смартфона) на Play-маркете и не оказалось. Отсюда и родилась идея разработать нечто подобное самостоятельно.
Формулировка задачи
Итак, я решил написать с нуля Андроид-приложение, предназначенное для создания и работы с математическими вычисляемыми документами.
- Максимально широкий охват поддерживаемых устройств. Отсюда минимальный API level 8;
- Поддержка экранов различных разрешений и ландшафтной/портретной ориентации;
- Формат хранения документов — свой на основе XML;
- Подробная документация. Чтобы не плодить сущностей, для документирования используется тот же самый формат, в котором хранятся сами документы;
- Для создания печатной документации предусмотреть экспорт в LaTeX, так как он удобен для записи формул и дает возможность сгенерировать PDF;
- Математика безгранична. Все не реализовать. Поэтому начальный функционал включает в себя функции многих переменных, графики (2D и 3D), численное интегрирование и дифференцирование, логический оператор. Далее в зависимости от хотелок пользователей;
- Возможность вставки текста и изображений, но функционал редактирования текста для начала минимальный;
- Удобность использования и качество имеют приоритет над функционалом;
- Языки только те, что знаю сам и смогу развивать и поддерживать без обращения к переводчику.
И, наверное, самое главное. Это — хобби. Поэтому важно оставаться реалистом и не замахиваться на то, что невозможно реализовать одному человеку за разумное время в режиме 5-6 дней в неделю по 2 часа.
- Я решил не ограничивать себя в разумных тратах на технику/продвижение/услуги, если таковые потребуются;
- Такие цели, как «Заработать любой ценой» и «Оказаться в топе» не ставятся, поэтому я решил не добавлять рекламу в приложения и отказаться от продвижения через мотивированные загрузки.
- Само приложение является платным и распространяется только через Play-маркет;
- Имеется бесплатная версия с идентичным внешним видом и интерфейсом, но с урезанной математикой. Причем этот функционал не деактиварован, а отсутствует на уровне кода. То есть бесплатную версию физически нельзя переключить в полный режим и она распространяется везде, где только можно.
Такая модель легко реализуется с использованием системы контроля версий (в моем случае SVN), где основная ветка предназначена для экспериментов и разработки, а две дочерние — для релизов платной и бесплатной версий соответственно.
На этом можно подвести черту под вводными данными и приступить к обсуждению реализации.
Метод решения
На мой взгляд, самый главный вопрос такой — как организовать на смартфоне ввод и редактирование формул, которые можно вычислять (для начала только численно), но при этом они представлены в естественном математическом виде? Как скомпоновать из этих формул, графиков, текста и загружаемых из файла картинок единый документ, способный самовычисляться?
Многие из вас наверняка использовали вордовский редактор формул. На большом экране, да с клавиатурой и мышкой под рукой все очень просто. На экране видны различные математические палитры (или легко доступны из меню), мышкой позиционируется курсор, а далее либо с клавиатуры, либо мышкой из палитры вводится нужный символ. Часть формулы можно легко выделить мышкой, скопировать, заменить или перетащить в другое место. Сами формулы как плавающие объекты можно перетащить мышкой в любую часть документа. Знакомо, да?
А теперь то же самое на сенсорном экране, без мышки, без хардверной клавиатуры, где виртуальная клавиатура перекрывает треть (в ландшафтной ориентации половину) экрана?
- Каждый объект имеет свои координаты и объекты могут располагаться относительно друг друга произвольно, как в векторном графическом редакторе. Именно этот вариант реализован в самом Маткаде. Под Андроидом можно использовать для этого устаревший AbsoluteLayout, но при этом необходимо реализовать выравнивание/распределение объектов и групп объектов. То есть в этом варианте нужен дополнительный пользовательский интерфейс, не относящийся к основной задаче. Для настольного компьютера это не критично, однако юзабилити мобильного приложения, на мой взгляд, от этого будет хуже;
- Расположение в ячейках таблицы, как в MS Excel. Этот вариант я отмел сразу, так как математический документ — это все что угодно, но только не таблица;
- Простой список, где каждый объект в своей строке. Именно так устроены большинство научных калькуляторов. Именно это я и реализовал в первой версии приложения. Дешево и сердито. На что получил вполне резонные замечания пользователей, что такой метод очень неудобен, так как есть объективная потребность группировать некоторые формулы по строкам;
- В результате получилась упрощенная версия RelativeLayout, этакий двумерный список, где по умолчанию объекты добавляются вертикально (снизу выделенного объекта), но с помощью одного единственного окна можно добавить объект как справа, так и слева от выделенного:
Пока я отказался от режима захвата и перетаскивания объектов при движении пальца по экрану, так как такой интерфейс в случае двумерного списка требует некоторой проработки. Вместо этого реализована возможность группового выделения объектов и групповые операции через контекстное меню: удаление, копирование в буфер и замена выделенного объекта содержимым из буфера.
Следующий вопрос связан со вводом информации. Многие калькуляторы имеют для этого свою виртуальную математическую клавиатуру. Мне же этот подход не кажется оптимальным. К примеру, я сам использую планшет с внешней USB клавиатурой, и в этом случае он имеет ландшафтную ориентацию. Выкатывать в такой ситуации виртуальную клавиатуру, которая занимает половину экрана, не совсем логично. Поэтому я изначально нацелился на то, что приложение будет работать со стандартной системной клавиатурой и не требовать специальных клавиатурных расширений. То есть абсолютно все математические символы можно ввести в виде кода с клавиатуры, и эта идея опять же позаимствована из Маткада. Для ввода греческих символов я просто добавил греческий язык к клавиатурным раскладкам.
Однако вынуждать пользователя запоминать все коды — не есть хорошая идея. Поэтому внизу экрана, вне зависимости от ориентации, расположена вторая панель инструментов, по оформлению и размерам идентичная верхней основной. Все математические символы, коих сейчас около 50-ти, расположены в одну линию на этой панели, а сама она прокручивается вправо и влево. При коротком нажатии символ вводится. При долгом нажатии на символ всплывает подсказка, что это и какой код ему соответствует:

В подтверждение этой идеи хочу процитировать отзыв одного из пользователей: «Beeing able to use shortcuts instead of symbolic buttons (but not beeing forced to do so) makes the app perfect».
А куда вводятся коды или символы? Здесь опять все похоже на Маткад. При добавлении объекта появляются пустые поля ввода. В них можно вводить текст, числа или символы. При вводе, например, символа деления вместо поля ввода появляется дробь с двумя полями, в одно из которых перекочует текст, введенный ранее в удаленном поле. Это основной режим ввода, который хорош, когда точно знаешь последовательность набора нужной формулы:

А если не знаешь или нужно что-то изменить в формуле? Контекстное меню в помощь. Оно активируется при долгом нажатии на часть формулы и предоставляет доступ к буферу обмена. Кроме этого, там есть кнопка расширения области выделения. С нижней панели инструментов можно ввести символ, который будет применен к выделенному блоку:

Получилась своего рода кооперация. Пользователь, вводя формулу таким методом, сам же и выполняет основную работу по ее синтаксическому разбору. А приложение в благодарность за это формулу просчитает.
-
Во-первых, это иерархия вложенных лайаутов, которые содержат как поля ввода, так и математические обозначения. Визуально это обычная формула.

Подводные камни
И вот здесь меня поджидала серьезная засада. Де-факто в Андроиде есть ограничение на количество вложенных лайаутов, связанное с размером стека вызова процедур. Компилятор в этом случае ничего не скажет, но во время работы (в методе android.view.View.draw одного из вложенных лайаутов) приложение валится с исключением типа StackOverflowErrors. Подробнее об этом здесь.
Отловить это исключение реально, так как у меня имеется собственная реализация метода onDraw() в самом начале этой цепочки вызовов, но при этом, начиная с определенной сложности формулы, она просто перестанет прорисовываться. Пришлось вручную контролировать глубину вложений элементов формулы, и, начиная с некоторой критической глубины (подобранной экспериментально), выдавать несимпатичное, но все-же необходимое сообщение «К сожалению, достигнут предел глубины формулы для данной версии Андроида».
- если API level < 15 (Андроид 2.2.x — 4.0.x), то максимальная глубина составляет 7 вложенных уровней лайоутов;
- если API level от 15 до 17 (4.1.x — 4.2.x), то 9 уровней;
- если API level > 17 (4.3.x и выше), то 15 уровней.
Вторая проблема — отсутствие стандартной компоненты, которая бы сочетала в себе горизонтально-вертикальный скроллинг и масштабирование. Эти действия вроде как поддерживаются WebView, но вот сама WebView мне никак не подходит. Решение топорное, но работает — я взял исходники стандартных ScrollView и HorizontalScrollView, объединил их в одну компоненту и прикрутил детектирование и обработку изменения масштаба. Что я при этом так и не смог довести до ума — это корректное позиционирование в документе после изменения масштаба.
Документация и локализация
Читая отзывы пользователей на Play-маркете про различные научные калькуляторы, я обнаружил, что одним из слабых мест большинства калькуляторов является отсутствие документации. Иногда полное. Поэтому я решил уделить документации достаточно много внимания. И добавил ее как в само приложение (для этой цели удобным оказалось боковое меню NavigationDraver), так и выложил в сети в виде PDF и добавил в приложение ссылки для прямой загрузки.


В приложении разделы документации хранятся в XML и открываются как отдельные фреймы. Имеется функция конвертации документа в LaTeX. Утилита pdfletx на рабочем месте довершает дело. Результат не стыдно выставить на всеобщее обозрение.
Теперь пару слов про локализацию. Разработка по старой привычке ведется на английском. Когда программа откомпилировалась и запустилась (то есть готова к продаже), интерфейс и документация вновь добавленной фишки переводятся на два других языка, один из которых русский.
И вот тут я был приятно удивлен статистикой загрузок в консоли разработчика. Математика в Рунете в почете! К слову сказать, русскую версию я выпустил не сразу, а когда количество загрузок приблизилось к тысяче. Но это практически не увеличило и без того высокий процент загрузок из России и стран ближнего зарубежья. На текущий момент распределение загрузок для бесплатной версии по языкам и странам выглядит так:

То есть Россия, Украина и Казахстан вместе обеспечивают более 40% загрузок. Платная версия дает другую картину: загрузки из России доминируют лишь с незначительным отрывом.
Заключение
Ну что же, написано уже много, пора закругляться. С вычислительной точки зрения очень многие нужные вещи еще не реализованы: нет комплексных чисел, нет поддержки массивов, нет даже примитивной матричной арифметики, нет решения уравнений. Но тут возникает резонный вопрос — а надо ли это на телефоне? Интересно услышать мнение уважаемой аудитории.
Что касается ближайших задач, то пока основные пожелания пользователей касаются наращивания экспортных возможностей. К примеру, один из последних комментариев: «Интересует такой вопрос, есть хоть какая нибудь возможность связать документ с маткадом? Что бы была возможность доработать документ на ПК». По поводу Маткада лично я сомневаюсь, так как формат проприетарный, но такие вещи, как экспорт в HTML (буквально сегодня обнаружил фреймворк MathJax), в PDF, или какой-нибудь открытый офисный формат можно реализовать.
На этом хочу хочу поблагодарить за внимание всех, кто дочитал до конца, и с чувством выполненного долга откланяться. Буду рад вопросам, если таковые появятся.
- математика
- разработка приложений
- андроид
- проектирование интерфейсов
- юзабилити
- Разработка мобильных приложений
- Разработка под Android
- Математика
Как эффективно интегрировать расчеты из MathCAD’f в MS Word 2019?
По учебе необходимо часто считать (использую MathCAD 15.0, но есть и Prime 5.0) и делать отчеты. Меня интересует вопрос: можно ли как-то «умно» интегрировать вычисления из MathCAD’а в Word, чтобы при редактировании входных данных в Word’е сразу же производилась автокорректировка и отображался пересчитанный результат?
Либо, если ни в одной из версий MathCAD’а это невозможно, я с радостью рассмотрю любые другие варианты.
Спасибо за внимание!
- Вопрос задан более трёх лет назад
- 1031 просмотр
2 комментария
Средний 2 комментария
Qwerty1117 @Qwerty1117
Каждое глубокое деяние, повлиявшее на судьбу человечества, совершается во имя Мечты.
Когда-то я был простым автором-исполнителем и была у меня Мечта.
Как было бы хорошо, если бы автоматизировать процесс решения задач по математике!
Имеется в виду нормальная автоматизация, с генерацией отчета в ворде, и чтобы формулы – в редакторе формул (либо в Math Type, как кому нравится).
Долгое мучение различных систем компьютерной алгебры (Mathcad, Maple, …) привело лишь к выводу, что автоматизация в указанном смысле («на все готовенькое») непосредственно из того же Mathcada невозможна. Однако, это возможно через еще одну «промежуточную станцию», имя ей – Miktex (Latex).
Генерируется с помощью Mathcada код редактора Latex, дальше этот код верстается в редакторе Latex, и третий шаг – получившийся результат (с помощью специальной программы GrindEQ, которая позволяет открывать в Worde файлы с расширением .tex) переносится в ворд.
При этом каждая формула – в редакторе формул, допускает дальнейшее редактирование, таблицы имеют привычный вид, не говоря уже о тексте. Можно отрегулировать размер шрифта, межстрочные интервалы и т.д.
Как это происходит на практике, можно посмотреть здесь
https://youtu.be/zqmGQyMn3XQ
Решение, например, системы из 4 линейных уравнений методом Крамера занимает меньше минуты. И перед нами готовый результат – файл в ворде, который неотличим от того же файла, если решать «вручную».
Вот список задач, на примере которых здесь демонстрируется этот метод
1) Сложение и вычитание 2 матриц любой одинаковой размерности
2) Умножение числа на матрицу любой размерности
3) Умножение матрицы любой размерности на соответствующую матрицу, на которую умножение возможно
4) Нахождение обратной матрицы для квадратной матрицы любой размерности
4.1) Приведение данной матрицы любой размерности, у которой число строк меньше или равно числу столбцов, к ступенчатому виду и приведенному ступенчатому виду путем эквивалентных преобразований над строками. Этот же способ позволяет найти ранг матрицы (который равен числу единиц на главной диагонали матрицы приведенного ступенчатого вида либо числу ненулевых строк матрицы ступенчатого вида). Алгоритм пункта 4.1 работает где-то в 90 % случаев, если матрица не имеет «особенностей» (например, чрезмерное количество нулевых строк)
5) Нахождение определителей 2 и 3 порядка – по правилу Саррюса, более высокого порядка (4, 5, 6, …) – по правилу эквивалентных преобразований над строками. Возможно нахождение определителей 2 и 3 порядка не по правилу Саррюса, а по правилу эквивалентных преобразований над строками
6) Решение систем линейных уравнений с любым числом переменных по правилу Крамера, Гаусса, Жордана-Гаусса и матричным методом
7) Решение матричных уравнений вида XA = B
На практике, однако, есть некоторые ограничения.
1) Работа идет с целыми и рациональными числами (что составляет около 95 % практических задач)
2) Найти обратную матрицу размерности 5 на 5 уже занимает несколько страниц, и дальше ситуация становится только хуже (размер отчета растет лавинообразно с увеличением размерности матрицы)
3) Latex не может отобразить матрицы размерности больше 10 на 10, как снять это ограничение – интернет-поисковик в помощь
4) При решении систем уравнений неявно предполагается, что система имеет единственное решение, то есть рассматриваются только системы, у которых rank A = rank A(расширенная) = n. Чтобы решить системы, для которых это не так, надо сначала привести расширенную матрицу системы к приведенному ступенчатому виду (см п. 4.1)
5) Для корректной работы рекомендуется установка Mathcad 15.
В 14 версии точно глючит, 13 работает нормально, но там проблема с русскими шрифтами. В более высоких версиях, чем 15 не проверялось (возможно, будет работать)
6) Для корректной работы MikTex необходимо после установки вручную докачать пакеты, которых нет в программе по умолчанию. Докачивал все пакеты, какие было возможно, это по объему заняло намного больше, чем сама программа (папка в меню пуск MikTex -> Maintance -> Package Manager)
Файл Mathcad выложу в магазине авторских работ
Но и без покупки этого файла, пользуясь приведенной методикой, вполне можно автоматизировать процесс решения многих задач (не только линейной алгебры, и многих других разделов, особенно легко это достигается для аналитической геометрии на плоскости и в пространстве, векторной алгебры и невероятно трудно (но возможно) для, например, задачи исследования функции произвольного вида). Не обязательно программировать в Mathcad, можно в любой среде, которая удобна и привычна
Хочу отдельно обратиться к начинающим авторам. Даже не зная основ математики, овладев этой методикой, Вы сможете сразу успешно (и с приличной скоростью) решать определенное число задач по строгим рецептам. Глубокого понимания, однако, так не достичь, подобные методы могут рассматриваться только как вспомогательные. Работать над собой, увы, надо )
