Вы здесь

15. Mathematica как составляющая Вашего программного обеспечения

Mathematica как составляющая Вашего программного обеспечения

Система Mathematica имеет модульную архитектуру, которая легко позволяет использовать ее как мощную составную часть программного обеспечения.

Пример ввода/вывода в стандартном интерфейсе системы Mathematica.

wpe1D.jpg (1271 bytes)

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

Integrate[Sqrt[Log[x]], x]

  1

-(-) Sqrt[Pi] Erfi[Sqrt[Log[x]]] + x Sqrt[Log[x]]

  2  

Протокол MathLink обеспечивает связь между системой Mathematica и внешними программами.

Это код языка C для посылки некоторого выражения из внешней программы в систему Mathematica.

/* Integrate[Sqrt[Log[x]], x] */ MLPutFunction( stdlink, "EvaluatePacket", 1); MLPutFunction( stdlink, "Integrate", 2); MLPutFunction( stdlink, "Sqrt", 1); MLPutFunction( stdlink, "Log", 1); MLPutSymbol( stdlink, "x", 1); MLPutSymbol( stdlink, "x"); MLEndPacket( stdlink);

Эта команда  подключает компилируемую внешнюю программу C, которая выполняет поразрядные операции с целыми числами.

link=Install["bitops"];

Выполнение внешней функции BitAnd.

BitAnd[22222,33333]
516

Отключение внешней программы.

Uninstall[link];

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

Microsoft Word в качестве интерфейса системы Mathematica.

wpe3D.jpg (17264 bytes)

Web-страница, устанавливающая связь с системой Mathematica.

wpe3E.jpg (22098 bytes)

Microsoft Excel, связанный с системой Mathematica.

wpe3F.jpg (14966 bytes)

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

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

:Begin: :Function: anneal :Pattern: TSPTour[r:{{_, _}..}] :Arguments: {First[Transpose[r]], Last[Transpose[r]], Length[r], Range[Length[r]]} :ArgumentTypes: {RealList, RealList, Integer, IntegerList} :ReturnType: Manual :End:

Создание в системе Mathematica трехмерного графика.

[Graphics:softgr10.gif]

Это изображение было получено с использованием возможностей внешнего графического редактора, в который оно было передано из системы Mathematica через протокол MathLink.


wpe40.jpg (25034 bytes)

 

Вы можете использовать MathLink, чтобы управлять интерфейсом системы Mathematica из ее ядра.

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

FrontEndTokenExecute["ColorSelectorDialog"]

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

На большинстве компьютерных систем (обычно исключение составляет Macintosh) эта команда запускает дополнительное ядро системы Mathematica на  Вашем компьютере.

link=LinkLaunch["MathKernel -mathlink"];

Команда чтения данных из дополнительного ядра.

LinkRead[link]
InputNamePacket["In[1]:= "]

Запись команды в дополнительное ядро.

LinkWrite[link,Unevaluated[$SessionID]]

Считывание $SessionID из вспомогательного ядра.

LinkRead[link]
ReturnPacket[20002811790628968292]

Значение $SessionID в Вашем главном ядре будет отличаться.

$SessionID
20000841219624707995

Закрытие дополнительного ядра.

LinkClose[link];

 

 


Top.Mail.Ru