ЧЕБЫШЕВСКИЙ СБОРНИК Том 13 Выпуск 1 (2012)
Труды IX Международной конференции Алгебра и теория чисел: современные проблемы и приложения, посвященной 80-летпю профессора Мартина Давидовича
Г риндлингера
LyX и системы символьной математики1
Есаян А. Р., Якушин А. В.(г. Тула)
Аннотация
Application LyX possesses unique possibility, allowing to execute in the editor of a command of some systems of symbolical calculations. In article it is described as to organise and carry out such calculations.
TeX - язык полиграфического оформления документов, созданный Дональдом Кнутом в 1984 году, допускающий возможность использования макросов.
ЬаТеХ - расширяемая система компьютерной верстки документов, разработанная Лэсли Лампортом в 1985 году. Фактически, это пакет макросов, основанный на ТеХ.
LyX - визуальный текстовый процессор, созданный Маттиасом Эттрихом в 1995 году для подготовки документов ЬаТеХ. В первом релизе программа имела имя Lyrix. В настоящее время LyX является свободно распространяемым кросс-платформенным программным обеспечением с готовыми сборками для Windows, Мае OS X и различными дистрибутивами для Linux. При работе с LyX знание синтаксиса и семантики языка LaTeX, вообще говоря, не требуется. Процессором LyX используется концепция WYSIWYM, основой которой является тесная связь визуального и логического. Слово WYSIWYM составлено из первых букв слов What You See Is What You Mean - “вы, видите то, что и имели в виду”. Концепция WYSIWYM в некоторой степени противопоставляется концепции WYSIWYG, ориентированной на полную текущую визуализацию содержимого документа. Слово WYSIWYG составлено из первых букв слов What You, See Is What You Get - “что вы, видите, то и получаете”. Некоторые компоненты LyX построены на концепции WYSIWYG. Для выполнения приведенных ниже примеров нами использована последняя версия LyX 2.0.3, работающая под управлением ОС Windows.
1Работа выполнена по гранту РФФИ №11-01-00571а
Приложение LyX обладает уникальной возможностью, позволяя выполнять в редакторе команды некоторых систем символьных вычислений. Речь идет
о свободно распространяемых продуктах Maxima и Octave, а также коммерческих продуктах Mathematica и Maple. Доступными в LyX являются далеко не все средства этих приложений, а лишь простейшие из них. Используемое совместно с LyX приложение предварительно должно быть инсталлировано на данном компьютере. Вычисляемые в LyX-редакторе выражения необходимо размещать в математических областях. Делать это можно в синтаксисе LyX или в синтаксисе самого приложения. Результат вычислений появляется справа от соответствующего выражения после вставленного системой знака равенства. Редактировать можно обе части полученной формулы. Никакой актуализации вычислений при этом не происходит.
Поговорим о реализации описанной выше возможности выполнения в LyX команд символьной математики. Для определенности будем считать, что речь идет о приложении Maxima. Прежде всего, в установках LyX требуется указать путь до системы Maxima. Делается это на странице “Пути” панели “LyX: Настройки”. открываемой через меню командой “Инструменты/Настройки/Пути”. На указанной странице к содержимому поля “Префикс пути” необходимо добавить путь до папки с запускающим файлом системы Maxima. Например, так:
содержимое поля “Префикс пути”; С1: \Program Files\Maxima — 5.26.0\bin (1)
После нажатия на кнопку “Сохранить” LyX будет знать, где искать запускающий файл Maxima. Пусть, далее, в LyX вставлена математическая область.
например, щелчком левой кнопки мыттти по кнопке “ ^ ” панели инструментов “Обычный”, и в ней набрано некоторое выражение ехрг. Для вычисления этого выражения требуется выполнить через меню следующую команду:
.
В результате вычислений математическая область в LyX будет выглядеть так:
ехрг = полученный результат, (2)
где правая часть (2) является интерпретацией ГеХ-кода результата вычислений, полученного в Maxima. В общем случае процедуру взаимодействия LyX и Maxima можно представлять себе следующим образом:
1. выражение ехрг, набранное в математической области LyX, переводится в ГеХ-код;
2. ГеХ-код ехрг передается в Maxima и там по нему формируется соответствующее М (га'та-вьтражение;
3. М(га'?ва-выражение выполняется в Maxima и там же результат вычислений преобразуется в ГеХ-код;
4. TeX-код результата из Maxima передается в ЬуХ;
5. В ЬуХ ТеХ-код результата преобразуется в LyX-выражение, которое и размещается в математической области ехрг, справа от ехрг, вслед за знаком равенства (см. 2).
Описанная процедура возможна только потому, что Maxima умеет преобразовывать свои выражения в TeX-код и наоборот ТеХ-код в Мажгта-выражения.
Графики таким способом не выводятся.
Функции в ЬуХ вводятся с математической панели “Функции”. Некоторые функции можно набирать вручную. Операторы сумм и интегралов вводятся кнопками соответствующих математических панелей. Отметим, что если некоторое выражение не вычисляется в одной системе, то это не значит, что его нельзя вычислить в какой-либо другой системе.
Путь до запускающего файла в системах, отличных от Maxima, может быть, например, таким:
в Octave - C:\Program Files\Octave-3.6.1\bin;
в Mathematica - C:\Program Files\Wolfram Research\Mathematica\8.0\bin.
Приведем простые примеры, в основном для приложения Maxima, иллюстрирующие тип возможных вычислений в ЬуХ. Будем считать, что путь до требуемого приложения указан.
Пример 1. Вычислить: 5 + 3 (а), 5/3 (6), 5.0/3 (с), 1 + 2 + sin(3) (d). Найти наибольший общий делитель чисел 78 и 24 (е). Найти наименьшее общее кратное чисел 78 и 24 (/).
Решение, а) В математической области ЬуХ набираем выражение 5+3. Выполняем команду “Правка/Математика/Использовать систему ... / Maxima” и получаем выражение 5+3 = 8.
b) В математической области ЬуХ набираем 5/3. Выполняем команду “Правка/. ..” и получаем выражение 5/3 = |.
c) В математической области ЬуХ набираем 5.0/3. Выполняем команду “Правка/ ...” и получаем выражение 5.0/3 = 1.666666666666667.
d) В математической области ЬуХ набираем 1 + 2 + sin(3). Выполняем команду “Правка/ ...” и получаем выражение 1 + 2 + sin(3) = 3 + sin3.
e) В математической области ЬуХ набираем gcd(78, 24). Выполняем команду “Правка/ ...” и получаем число 6.
/) В математической области ЬуХ набираем 1ст(78, 24). Выполняем команду “Правка/ ...” и получаем: “1ст(78, 24) =”. Иными словами, вычисления не удались. В Octave или в Mathematica это сделать можно. Например, если в синтаксисе Mathematica набрать выражение LCM[78, 24], и воспользоваться для вычислений системой Mathematica, то получим 312.
Пример 2. Вычислить: (1 + 5^k = i kk-1) (а), предел lim sin(3’^ (6), опре-
x ^ 0 x
1 2 3 \
делитель матрицы I 2 5 6 I (с), определенный интеграл fa sin(x)3dx (d),
3 4 7 У
выражение L^J + [ж] (“пол” х плюс “потолок” х) (е).
Решение, а) Вариант А. В математической области ЬуХ набираем выражение в синтаксисе LyX, то есть в виде (1 + ^к = 1 к Л (к — 1)) Л 2. Символ суммы вводим через панель “Формула”. Для набора нижнего и верхнего индексов суммы используем соответственно ключи “_” и “ ”. Верхние индексы в выражении под знаком суммы при наборе автоматически располагаются на нужных местах. Выполняем команду “Правка/ ...” и получаем выражение (1 + 3 = 1 кк-1)2 =
169.
Вариант В. В математической области LyX набираем выражение в синтаксисе Maxima, то есть в виде (1 ■ sum(k (к-1), к, 1. 3)) 2. Выполняем команду
“Правка/ ...” и получаем: (1 + sum(kk-i, к, 1, 3))2 = 169.
b) Вариант А. В математической области LyX в синтаксисе LyX набираем выражение Итж ^ о 81П(~3*ж) ■ Функции lim и sin вводим с математической панели “Функции”. Выполняем команду “Правка/ ... ”. В результате вычислений получаем: Итж ^ 0 ^^3^ = 3. Для того, чтобы запись х ^ 0 располагалась ниже слова lim, выражение предела следует набирать в вьтключном режиме или после его набора во внутристрочном режиме преобразовать к вьтключному режиму с помощью ключа Shift ■ Ctrl ■ т.
Вариант В. В математической области LyX в синтаксисе Maxima набираем выражение limit (sin (3 * .х*) /л', х, 0). Выполняем команду “Правка/ ...” и получаем: И mi t (s in (3 * ) / ar, x, 0) 3.
c) Вариант А. В математической области LyX в синтаксисе LyX набираем
I 123 I
выражение det I 2 5 6 I . Функцию вычисления определителя det вводим с 347
математической панели “Функции”. Матрицу можно указывать в квадратных скобках или без них, а формируется она на панели “LyX: Матрица”, открьт-
nun
ваемой кнопкой “ ” панели Анструменаов “Формула”. Выполняем команду
I 123 I
det 2 5 6 I = — 2 347
Вариант В. В математической области в LyX синтаксисе Maxima набираем выражение determinant(matrix([l;2;3], [2,5,6], [3,4,7])). Выполняем команду “Правка/ ...” и получаем:
determinant(matrix([l, 2, 3], [2, 5, 6], [3, 4, 7])) -2.
(I.) Вариант А. В математической области ЬуХ в синтаксисе ЬуХ набираем выражение ¡¡а 8іп(ж)3^ж. Выполняем команду “Правка/ ...” и получаем:
гЬ 3 cos3 b — 3 • cos b cos3 a — 3 • cos a
sin(x) ax = —
3 3
Отметим, что при вычислении определенных интегралов наклонное начертание оператора дифференцирования d до вычислений нельзя преобразовать в прямое начертание. Сделать это можно после вычислений, выделив d и применив ключ {Alt+c, г}.
Вариант В. В математической области LyX в синтаксисе Maxima набираем выражение integrate (sin (х) Л3, х, а, Ь). Выполняем команду “Правка/ ...” и получаем:
3 cos3 b — 3 • cos b cos3 a — 3 • cos a
mtegrate(sm(x) , x, a, b) = —
33
e) Система Mathematica. В математической области LyX в синтаксисе Mathematíca набираем выражение: {х = 5.3, Floor[x]+Ceiling[x]}. Здесь мы делаем попытку передать значение переменной х выражению Floor[x]+Ceiling[x], используя список. Выполнение команды “Правка/ ...” в данном случае не приводит к желаемому результату, хотя отдельно выражения {Floor[5.3]+Ceiling[5.3]} и Floor[5.3]+Ceiling[5.3] вычисляется в системе Mathematíca правильно.
Система Octave. В математической области LyX в синтаксисе Octave набираем выражение \х : 5.3, floor(x)+ceil(x)]. Заметим, что здесь используется не список, а вектор-столбец. Выполнение команды “Правка/ ... ”, как и в случае с приложением Mathematíca, не дает желаемого результата, хотя отдельно выражения [floor(5.3)+ceil(5.3)] и floor(5.3)+ceil(5.3) в системе Octave вычисляется правильно.
Система Maxima. В математической области LyX в синтаксисе Maxima набираем выражение [х : 5.3, floor(x)+ceiling(x)]. Выполняем команду “Правка/ ...” и получаем список [5.3, 11]. В данном случае вычисления проведены праВИЛЬНО.
Пример 3. Решить уравнение ж3-11.x2-14.Ж+24 = 0 (а). Разложить на простейшие дроби выражение 2д4+дЗ++++4 (&)•
Решение, а) В математической области LyX в синтаксисе Maxima набираем выражение soive(|.r 3-1Г":.г 2-1Г:.г 21|. [ж]). Выполняем команду “Правка/ ...” и получаем: solve([:r3-l 1.x2-14.Ж+24, [ж]) = [х = 12, х = -2, х = 1].
Ь) В математической области LyX в синтаксисе Maxima набираем выражение partfrac((2:r3+2:r2+x+4)/(:r4+:r3+:r+l), х). Выполняем команду “Правка/ ... ” и получаем:
partfrac((2:r3+2:r2+£+4)/(ж4+:г3+ж+1), х) = x2-1х+1 + ^
СПИСОК ЦИТИРОВАННОИ ЛИТЕРАТУРЫ
[1] Donald Е Knuth. The TEXbook. Addison Wesley, 1984.
[2] Leslie Lamport. LaTeX: a document preparation system. Addison-Wesley, second edition, 1994.
[3] Справочная информация к системе LyX 2.0.3 в электронном виде, 2012.
Тульский государственный педагогический университет им. Л. Н. Толстого Получено 17.04.2012