У меня нет опыта работы с мостом Mathematica / .NET, но я использовал мост Mathematica / Java, который, судя по документации, довольно похож. Конечно, один вопрос, на который я не могу ответить, - насколько хороша реализация интерфейса с точки зрения стабильности и производительности.
Концептуально я нашел интерфейс Java для вызова Mathematica довольно хорошим. У вас есть набор объектов и методов, которые позволяют вам запускать сеансы Mathematica и отправлять выражения Mathematica в них для оценки. Вы можете отправить текст (что легко в простых случаях, но сложно, если вы хотите что-то нетривиальное) или более структурированные Expr
объекты, которые отражают структуру синтаксического дерева. Эти выражения позволят вам делать практически все, что угодно: оценивать интегралы численно или символически, брать производные, решать ODE и т. Д.
Единственная область, где она падает, - обработка ошибок. Mathematica не имеет исключений как таковых; вместо этого он генерирует «сообщения», когда сталкивается с проблемами и продолжает пытаться оценить выражение, над которым работает. Это имеет некоторый смысл в свете довольно необычной семантики Mathematica (где он работает с выражениями с повторными переписываниями правил), но набор методов по умолчанию для связи с Mathematica не позволяет вам легко отслеживать эти сообщения изнутри Java (или, похоже, .NET), хотя можно написать свои собственные методы, которые лучше справляются с этой задачей.