Как эффективно интегрировать расчеты из MathCAD'f в MS Word 2019?
Здарова, ребята!
По учебе необходимо часто считать (использую MathCAD 15.0, но есть и Prime 5.0) и делать отчеты. Меня интересует вопрос: можно ли как-то "умно" интегрировать вычисления из MathCAD'а в Word, чтобы при редактировании входных данных в Word'е сразу же производилась автокорректировка и отображался пересчитанный результат?
Либо, если ни в одной из версий MathCAD'а это невозможно, я с радостью рассмотрю любые другие варианты.
Каждое глубокое деяние, повлиявшее на судьбу человечества, совершается во имя Мечты.
Когда-то я был простым автором-исполнителем и была у меня Мечта.
Как было бы хорошо, если бы автоматизировать процесс решения задач по математике!
Имеется в виду нормальная автоматизация, с генерацией отчета в ворде, и чтобы формулы – в редакторе формул (либо в 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, можно в любой среде, которая удобна и привычна
Хочу отдельно обратиться к начинающим авторам. Даже не зная основ математики, овладев этой методикой, Вы сможете сразу успешно (и с приличной скоростью) решать определенное число задач по строгим рецептам. Глубокого понимания, однако, так не достичь, подобные методы могут рассматриваться только как вспомогательные. Работать над собой, увы, надо )
Qwerty1117, спасибо за такой развернутый ответ и ссылку на видео. К сожалению, для чуть более сложных задач такой метод не подойдет, как минимум из-за того, что страдает заполнение таблиц и вывод графиков (графики выводятся только растровые, а мне бы векторные).
обе платформы поддерживают автоматизацию, microsoft word - скрипты visual basic, любыми способами настраиваете коммуникацию между приложениями (ole/dde/сокеты или вручную через файлики) и радуетесь
Виктор Инкогнито, увы как поставлена задача так и ответил
вам к фрилансерам, формулируйте правила/формат размещения исходных данных в документе microsoft world/excel или что там у вас, куда их поместить и прочее.
Если вы делаете расчеты в matcad то вам должны известны базовые основы программирования. Попробуйте сами изучить вопрос, ибо на каждый чих обращаться к кому то левому тупо не эффективно.
Самое простое, работайте через файлы, наверняка matcad умеет использовать те же csv либо его исходные данные представляют какой-нибудь простой текстовый формат, вам виднее, т.е. достаточно в скриптах офиса обновлять этот файл и запускать matcad (или как то еще посылать сигнал ему, это уже в документации по matcad читать)
Note The OLE automation interface is supported in Mathcad 7.02 and higher and supersedes the DDE
interface supported in Mathcad 5 and 6. For information on the interface, see the Developer’s
Reference under the Help menu in Mathcad. For specific examples, see TRAJECTORY.XLS
in the \SAMPLES\EXCEL and DOUGHNUT.EXE in the \SAMPLES\VBASIC in your
Mathcad installation