Иллюстрированный самоучитель по Mathematica 3/4

Использование файлов других языков программирования. Запись определений.

Из функций для работы с файлами особо надо отметить следующую функцию-директиву:

  • Splice [ "file.mx" ] – вставляет в файлы на других языках программирования вычисленные выражения системы Mathematica, которые должны быть записаны в скобках вида <* и *>;
  • Splice ["infile", "outfile"] – читает файл infile, интерпретирует фрагменты, содержащиеся между скобками <* и *>, и записывает результат в файл outfile.

Эта возможность особенно существенна при использовании программ на языках программирования С (расширение .me), Fortran (расширение .mf) и ТеХ (расширение .mtex), для форматов которых Mathematica имеет средства конвертирования выражений (CForm, FortranForm и TexForm соответственно). Таким образом, имеется возможность экспорта выражений системы Mathematica в программы, составленные на этих языках.

Поясним применение функции-директивы Splice. Пусть имеется экспортированная программа на языке С, которая должна рассчитывать численное значение некоторого интеграла, и мы хотим получить формулу для этого интеграла средствами системы Mathematica. Допустим, она представлена файлом demo.me. Его можно просмотреть следующим образом:

!!demo.me
#include "mdefs.h"
double f(x)
double x; 
{
    double y;
    y = <* Integrate[Sin[x] ^ 5, x] *> ;
    return (2 * y - 1);
}

После исполнения функции Splice ["demo.me"] программа будет записана в файл demo.с, в котором выражение в скобках <*…*> заменено вычисленным значением интеграла (в форме CForm). Файл при этом будет выглядеть так:

!!demo.c
#include "mdefs.h"
double f(x)
double x; 
{
    double y;
    y = -5 * Cos(x) / 8 + 5 * Cos(3 * x) / 48 - Cos(5 * x) / 80;
    return (2 * y - 1);
}

Запись определений

Из простых функций, обеспечивающих создание файлов с заданными определениями, надо отметить также функцию Save:

Save["filename", symb1, symb2, ...]

Она добавляет определения символов symbi к файлу filename (возможны упрощенные формы Save).

Приведем пример ее использования:

f[x_] = Sin[x] + y
y + Sin[x]
y = a
a
Save["demo1", f] 
!!demo1
f[x_] = y + Sin[x]
y = a
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.