Как использовать функции Mathematica в программах Python? [закрытый]

Я хотел бы знать, как я могу вызвать функции Mathematica из Python.

Я ценю пример, например, использование функции Mathematica премьер -.

у меня был поиск о MathLink но как использовать его в Python немного неясно для меня.

Я попытался использовать библиотеку Mathematica-Python под названием pyml но у меня не было успеха, может быть, потому, что этот lib выглядит очень старым (в учебник говорит Mathematica 2 или 3).

попытался скомпилировать источник в Wolfram/Mathematica/8.0/SystemFiles/Links/Python но закончилось несколькими ошибками при использовании python 2.6 (документация говорит, что должна работать только с python 2.3).

Pythonika интересно, но, похоже, это просто использовать в ноутбуках Mathematica, и я хотел бы написать .py файлы, вызывающие функции Mathematica.

Итак, кто-то знает хороший способ писать программы python, которые используют функции Mathematica и могут дать мне пример?

2 ответов


вы можете вызвать функцию Mathematica в Python, используя модуль Python MathLink (источник, который вы нашли .../ SystemFiles / Links / Python), хотя вам нужно будет отредактировать несколько файлов установки, чтобы запустить его (support@wolfram.com должен быть в состоянии помочь вам там).

чтобы использовать Prime из Python, вы должны запустить что-то вроде:

ядра.ready ()

0

ядра.putfunction ("Prime", 1)

ядра.putinteger(10)

ядра.flush ()

ядра.ready ()

1

ядра.nextpacket ()

3

packetdescriptiondictionary[3]

'ReturnPacket'

ядра.getinteger()

29


Я нашел решение.

действия:

1-Создайте скрипт с именем runMath содержание:

#!/usr/local/bin/MathematicaScript -script

value=ToExpression[$ScriptCommandLine[[2]]];

(*The next lime prints the script name.*)
(*Print[$ScriptCommandLine[[1]]];*)

Print[value];

2 - я дал привилегию на выполнение файла.

sudo chmod +x runMath

3-переместил файл в путь выполнения

sudo mv runMath /usr/bin/

4-создан новый скрипт под названием выполнить содержание:

#!/usr/bin/python
from subprocess import *
from sys import *

command='/usr/bin/runMath'
parameter=argv[1]

call([command,parameter])

5-перемещено на исполнение путь

sudo mv run /usr/bin

6-наконец, протестировал его:

$run Prime[100]
541

$run 'Sum[2x-1,{x,1,k}]'
k^2

$run Integrate[Log[x],x]
-x + x*Log[x]

$run 'Zeta[2]'
Pi^2/6

вы можете использовать С или без '. The ' необходимы для команд с пробелами.

$run 'f[n_] := f[n] = f[n - 1] + f[n - 2]; f[1] = f[2] = 1; Table[f[n],{n,5}]'
{1, 1, 2, 3, 5}

счастливая!