Методы для преобразования математических формул в код в Matlab, C ++ и т. Д.? - PullRequest
10 голосов
/ 31 июля 2010

У меня есть базовый вопрос ко всем математическим экспертам.

«Если у меня есть академическая статья, какой самый простой способ преобразовать простое математическое уравнение в работающий код Matlab (или C ++)?»

В идеале, должен быть инструмент преобразования Latex >> Matlab (или C ++).

Однако, если этого не сделать, есть ли «шпаргалка», которая содержит все общие математические символы и их эквивалентные ключевые слова реализации в Matlab (или R, или C ++)?

Ответы [ 5 ]

9 голосов
/ 31 июля 2010

Я никогда не видел такого. Большая часть математических обозначений написана для понимания человеком (по крайней мере) разумного интеллекта, поэтому она часто пропускает все виды деталей, которые были бы необходимы для создания рабочего кода. Если бы у вас был такой инструмент, я сомневаюсь, что он даст полезные результаты более (возможно) в 10% случаев.

Обратное кажется гораздо более разумным - создание читабельных математических обозначений из кода (особенно из чего-то вроде Matlab) звучит гораздо более разумно. Гораздо проще пропустить информацию, которая присутствует, чем пытаться синтезировать информацию, которая отсутствует.

8 голосов
/ 19 декабря 2011

Использование Mathematica Символьные вычисления .

Вы можете вводить математические уравнения прямо в Mathematica, а затем экспортировать результат в виде кода C.

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

Вы можете даже делать классные вещи, такие как попросить его дифференцировать уравнение - и он произведет дифференциал, и распечатает полученный результат.уравнение.

Вы можете вызывать Mathematica с любого языка, включая .NET, Q, Python, Java и т. д.

Вы даже можете скомпилировать программу Mathematica в сборку .NET и встроить ее вваше приложение.

Mathematica также выдаст код Java или C, который соответствует математической формуле, которую вы только что ввели.

3 голосов
/ 31 января 2015

Есть статья с кодом проекта о Преобразовании математических уравнений в C # , выраженном как MathML

1 голос
/ 31 июля 2010

Это невозможно. Как правило, математические выражения в документах сделаны для того, чтобы люди могли понять, как сказал Джерри Коффин. Из-за этого возникают всевозможные проблемы. Один из них, я думаю, на макушке головы - это оптимальность. (Математический) код для потребления человеком редко бывает оптимальным, плохим примером является последовательность Фибоначчи. Никто не будет писать код Фибоначчи, как его понимают люди.

Итак, даже если вы проанализировали код, у вас все равно будет так много работы, что все равно, что написать его самостоятельно.

0 голосов
/ 05 декабря 2016

Вопрос основан на базовом предположении - компьютеры делают все лучше. Это не тот случай.

Компьютеры и, в частности, вычислительные машины, как правило, выполняют итеративные задачи лучше, чем люди, а когнитивные задачи хуже. Математика, которую вы пытаетесь преобразовать, итеративная или когнитивная? Если это итеративно, то стандартная процедура - для x сделать n раз или в то время как (критерий) - и т. Д. - будет простой в использовании для итерационных задач Если вы углубляетесь в ИИ и машинное обучение, вы найдете много информации о том, как компьютеры должны делать ИИ и делать это хорошо. Я предполагаю, что спрашивающий просит помощи из когнитивного смысла, а не итеративно. Отсюда проблема - и отсутствие решения. Если задача является когнитивной для реализации, вычислительные машины вам не помогут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...