Главная  Длительная эволюция 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [ 71 ] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]


Заметим, что предварительное существование файла fileS.val не предполагается, он создается функцией OpenWrite. Рассмотрим пример, где требуется сохранить матрицу

т={{1,2}, {а,Ь}};

Предварительно конвертируем ее в строку следующего вида:

mstring = ToString[TableForm[m, TableSpacing -> {0,1}]] 1 2 а b

и записываем mstring:

WriteStrmg[stream, mstring]

Close [stream];

!!flle8.val

10.2. Обмен данными с другими программами

В „Математике" предусмотрены средства, позволяющие отформатировать выражения так, чтобы они стали непосредственно доступными для таких программ, как ТеХ, С и Fortran. Соответствующими функциями являются TeXForm, CForm и FortranForm. Их следует применить к тому выражению, которое вы хотите записать в файл для обработки нужными программами.



Itex = TeXForm[l]

\{ {{с-2} \ot;er 3}, {{d-2} \over 3} \}

Выражение Itex можно записать или добавить в соответствующий файл

Itex >>> file9.tex

и после обработки транслятором ТеХа получить в тексте формулу в том виде, как она представлена на экране (в данном случае). Посмотрим теперь, как выглядит вычисленное выражение 1 в С- и Fortran-форматах.

1с = CForm[l]

List{Power{c,2)/3, Power{d,2)/3)

Ifortran = FortranFormp]

List{c**2/3, d**2/3)

Выражения Ic и Ifortran можно поместить в соответствующие С- или Fortran-файлы.

Еще одна интересная возможность взаимодействия „Математики" и рассматриваемых программ предоставляется функцией Splice. Можно в файлы, содержащие программы на языках С или Fortran, а также в ТеХ-файлы вставлять выражения „Математики", ограничивая их слева и справа с помощью знаков <*,*>, и использовать „Математику" для того, чтобы вычислить вставленное выражение и поместить результат на место исходного выражения. Для этого нужно программу, содержащую выражения „Математики", поместить в файл с расширением тс, mf или mtex и обработать этот файл с помощью функции Splice, т.е. вычислить выргшение Splice["flle.mx"]. Обработанная программа будет помещена в файл с именем file.x, где х стоит вместо с, / или tex. Вот соответствующий пример Fortran-программы со вставленным выражением „Математики".



!!fort.mf

example real х, у 1 = 1.

у =< *Integrate[x/{х + 1),а;]* >

write{*,*)y

stop end

Splice["fort.mf"]; !!fort.f

example real X, у 1 = 1.

y = x**3/3-ArcTan{{-Sqrt{2)+2*x)/Sqrti2))/{2*Sqrt{2))-ArcTan{{Sqrt{2) + 2*x)/Sqrt{2))/{2*Sqrt{2))-Log{l- Sqrt{2) *x + x**2)/{4* Sqrt{2)) + Log{l + Sqrt{2) * x +1 * *2)/(4.Sqrt{2))

write{*,*)y

stop

10.3. Форматирование выходных ячеек

В первой главе мы рассматривали три формата выражений „Математики": входной, в котором выражение записывается в одну строчку с использованием, если удобно, префиксной, инфиксной и постфиксной форм функций „Математики", внутренний и выходной, значительно более, чем входной приближающийся к обычной форме математических выражений. Здесь мы обсудим различные приемы, позволяющие устанавливать специальные выходные форматы результатов вычислений, т.е. форматы выходных ячеек. Отметим, что вычисляющее ядро „Математики" имеет дело только со внутренней, или полной, формой выражений, такой, как она может быть пред-



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [ 71 ] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]

0.0011