4.3. Смена окружения
Разрешается многократно изменять окружение по своему усмотрению. Однако при этом необходимо каждый раз сменять окно вывода, которое ограничивает размер компилируемой части программы.
Все объекты, которые были созданы в других окружениях, сохраняются. Если выполняются операции над разными типами чисел, то результат автоматически приводится к тому из этих числовых типов, который может иметь погрешность больше. Имеется оператор преобразования объекта к типу чисел текущего окружения: \ toNewRing().
4.4. Постоянные окружения
Можно устанавливать или менять значения следующих постоянных.
MOD32 (268435399)- характеристика поля вычетов Zp32. Она не превосходит 231 .
MOD (268435399)- характеристика поля вычетов Zp. Может быть произвольным простым числом.
RADIAN (1)- определяет меру для углов: радианы (1) или градусы (0).
TIMEOUT (15) - максимальное время (в сек.), которое отводится для вычислений.
STEPBYSTEP (0) - включает режим вывода промежуточных результатов (1) или выключает его (0).
EXPAND (1) - включает режим раскрытия всех скобок во входном выражении (1) или выключает его (0).
SUBSTITUTION (1) - включает режим замены в каждом выражении всех известных переменных их значениями (1) или выключает его (0).
FLOATPOS (2) - число десятичных знаков после запятой, которые выводятся на печать.
MachineEpsilonR64 (36) - машинное эпсилон для чисел типа R64. Число, абсолютное значение которого меньше, чем 2-MachmeEpsdonR64 считается машинным нулем.
ACCURACY (25) - определяет число точных десятичных позиций после запятой для чисел типа R и C в операциях умножения и деления.
MachineEpsilonR (20) - машинное эпсилон для чисел типа R. Число, абсолютное значение которого меньше, чем io-MachineEpsilonR считается машинным нулем. Должно выполнялось неравенство ACCURACY > MachineEpsilonR: io-ACCURACY < i0-MachineEPsii°nR .
При установке MachineEpsilonR происходит автоматическая установка нового значения ACCURACY = MachineEpsilonR + 5. Если ввести MachineEpsilonR= n/m, то будет установлено: MachineEpsilonR = n, ACCURACY = m.
В командах смены постоянных окружения используется знак равно и целые числа, например, MOD32 = 17.
5. Основные классы функций
5.1. Элементарные функции и математические символы
Определены следующие математические символы: \i - мнимая единица i, \e - число e , \pi - число п,
\infty - знак бесконечности то , \emptyset - пустое множество 0
Определены следующие элементарные функции: \exp() - экспоненциальная функция, \ln() - натуральный логарифм,
2030
\^() - десятичный логарифм,
\log(a, Ъ) или ^_а(Ь) - логарифм числа Ь по основанию а, \sgrtQ - корень квадратный, \сиЪН() - корень кубический, \rootof (а, п) - корень из числа а степени п, \sinQ) - синус, \cosQ - косинус, ^д() - тангенс, \ctg0 - котангенс, \arcsin0 - арксинус, \arccos0 - арккосинус, \arctgO - арктангенс, \arcctg0 - арккотангенс, \-shQ - гиперболический синус, \сЬ() - гиперболический косинус, - гиперболический тангенс, \cthQ - гиперболический котангенс, \arcshQ - гиперболический арксинус, \arcch0 - гиперболический арккосинус, \arctgh0 - гиперболический арктангенс, \arcctghQ - гиперболический арккотангенс, ^с() - секанс, \cscQ - косеканс, \arcsec0 - арксеканс, \arccscQ) - арккосеканс.
5.2. Операции над числами
\max(a, Ъ) - максимальное из двух чисел, \min(a, Ъ) - минимальное из двух чисел,
\sign(a) - знак числа или знак старшего коэффициента у полинома, \absa - абсолютное значение числа или модуль для комплексного числа: \floora - наибольшее целое число, которое не превосходит данное, \сеИ(0) - наименьшее целое число, которое не меньше данного числа, \rounda - округление к ближайшему целому числу,
5.3. Операции над целыми числами
^юЯет^, Ъ) - целая часть частного и остаток при делении а на целое число Ь, Ъ) - целая часть частного при делении целого числа а на число Ь, \гетт) - остаток при делении а на т,
\mod(a, т) - остаток от деления а на нечетное число т, который заключен в интервале от -(т-1)/2 до (т-1)/2,
\facta = a\ - факториал целого числа а.
5.4. Операции с дробями и рациональными функциями
\num(fr) - числитель дроби, \denom(fr) - знаменатель дроби, \cancel(fr) - сократить дробь,
\properForm(fr) - выделить целую часть и правильную дробь,
2031
\quotientAndRemainder(fr) - частное и остаток при делении числителя дроби на знаменатель,
\quotient(fr) - частное при делении числителя дроби на знаменатель, \remainder(fr) - остаток при делении числителя дроби на знаменатель.
5.5. Операции над многочленами многих переменных
\value(f, [xo,yo]) - подставить в многочлен f значения переменных x = x0 , y = y0 и вычислить его,
\expand() - раскрытие всех скобок в алгебраическом выражении, \f actor () - разложение многочлена на множители, \GCD() - вычисление НОД полиномов, \LCM() - вычисление НОК полиномов,
\groebner(fl,f2,..,fc) - вычисление базиса Гребнера идеала, порожденного многочленами
fl, f2,--, fc •
\reduceByGB(g, [fl, f2,.., fc]) - редукция полинома g с помощью полиномов fl, f2,.., fc . Если эти полиномы составляют базис Гребнера, то результатом будет редукция по идеалу (fl, f2, fc) , который они порождают.
\solveNAE(fi, f2,fc) - решение системы нелинейных алгебраических уравнений (fi =
= 0, f2 = 0,.., fc = 0 ),
\solve(p(x)) or \solve(p(x) =0) - найти корни полинома в области, которая определена окружением SPACE: Если SPACE определено над действительными числами, то ищутся все действительные корни, а если над комплексными числами, то ищутся все комплексные корни, в остальных случаях ищутся (при возможности) корни, содержащие знаки радикала и/или буквенные параметры, если они присутствуют в коэффициентах. \quotientAndRemainder(a, b) - частное и остаток при делении a на b, \quotient(a, b) - частное при делении a на b, \remainder(a, b) - остаток при делении a на b.
В трех последних функциях можно добавлять третий параметр - это имя переменной, которая является главной в этой операции.
Оценки сложности полиномиальных алгоритмов можно найти в работе [7].
5.6. Функции нескольких аргументов
Некоторые функции от двух аргументов: \log(a, Ъ) - логарифм ^а(Ъ) , \rootOf (Ъ, п) - корень из Ъ степени п ,
\value(f, [х0,уо]) - подставить в функцию f значения переменных х = х0 , у = у0 и вычислить ее,
\value(f, ^0^1]) - произвести замену переменных в функции f : х — g0 , у — gl . ) dx - интеграл от f по х (первообразная без произвольной постоянной), х) - производная функции f по переменной х , х'п) - производная порядка п функции f по переменной х ,
х'п у'^) - смешанная производная функции f по переменной х порядка п , по переменной у порядка m,
\lim_{x\to a}(f) предел функции f при х стремящемся к a, \Ъinom(n, к) - число сочетаний из п по к .
Матрицы и векторы \ 0_{п,т} — нулевая матрица размера п х m ; \ 1_{п,т} — п х m матрица с единицами на главной диагонали. \ 0_{п}. \ еЬагРо1упот(), \ кегпе1(), \ ^апвро8е() или А~{Т} , — транспонированная матрица;
2032
\ conjugate() или Л"{\а8;} — сопряженная матрица; \ toEchelonForm() — эшелонная (ступенчатая) форма; \ ёе^) — определитель;
\ 1пуег8е() или ЛГ{ —1} — обратная матрица; \ adjoint() или Л"{\8;аг} — присоединенная матрица;
\ genInуerse() или Л"{+} — обобщенная обратная матрица Мурра-Пенроуза; \ с^игеО или Л^^шев} — замыкание, т.е. сумма I + Л + Л2 + Л3 + .... Для классических алгебр это эквивалентно (I — Л)-1 ;
\ ЬБи() — треугольная ЬБИ-факторизация матрицы. Результатом являются пять матриц [Ь, О, и, Р, Q} . Произведение ЬОи равно исходной матрице. Здесь Ь — нижняя треугольная матрица, и — верхняя треугольная матрица, О — матрица перестановок, умноженная на диагональную матрицу, Р и Q - матрицы перестановок. При этом РтЬР и QTиQ - это нижняя и верхняя треугольные матрицы, РтDQ - это диагональная матрица, у которой все нулевые диагональные элементы собраны в нижних строках.
\ BruhatDecomposition() — разложение Брюа матрицы. Результатом являются три матрицы [У^,и\ , V и и — верхние треугольные матрицы, и> — матрица перестановок, умноженная на диагональную матрицу, при этом произведение VwU равно исходной матрице. Здесь использовались матричные алгоритмы из работ [7-11].
5.7. Преобразование Лапласа и решение систем линейных дифференциальных уравнений с постоянными коэффициентами
\laplaceTransfогт() - прямое преобразование Лапласа, \inversebaplaceTransf огт() - обратное преобразование Лапласа,
^о1ьеЬОЕ(Б, 3) — решение системы линейных дифференциальных уравнений с постоянными
коэффициентами 5 при начальных условиях 3. Вот примеры задания 5 и 3.
\systЬDE(\d(x, + х — 4у = f2\exp(2t)), 7\с1(у, Ь) — 2х — 2у = З^хр^Ь) +Ь); - пример задания
„ „ Г х'+ + х — 4у = ^в21, системы дифференциальных уравнений 5 :< —
I 7у± 2х 2у = oe +1.
\тиСопд,(\д,(х^, 0, 0)=2, 0, 0) = 0); - пример задания начальных условий 3 для реше-
ния системы дифференциальных уравнений. Здесь используются обозначения:
Ь) - обозначение для производной функции f по переменной ^ \d(f, Ь, к) - обозначение для к -той производной функции f по переменной Ь . \d(f, Ь, к, Ь0) - обозначение для к -той производной функции f по переменной Ь в точке . Если к = 0 , то это обозначение для функции f в точке Ьо .
Если система дифференциальных уравнений дана в матричном виде, то можно использовать оператор решения с тремя аргументами:
\solveЬDE(Л, В, С) . Здесь матрица А - это левая часть системы дифференциальных уравнений после преобразования Лапласа, вектор В - правая часть системы после преобразования Лапласа и С - это матрица начальных условий.
С алгоритмами можно ознакомится по работам [12-14].
5.8. Функции теории вероятностей и математической статистики 5.8.1. Функции непрерывных случайных величин
Для непрерывной случайной величины с плотностью распределения f (х) , заданной на интервале (а,Ь), определены следующие функции: \mathExpectation(a, Ь, (х)) - математическое ожидание,
2033
\dispersion(a, Ь, f (х)) - дисперсия,
\meanSquareDeviation(a, Ь, f (х)) - среднее квадратичное отклонение.
5.8.2. Функции дискретных случайных величин
Дискретная случайная величина задается двустрочной матрицей: в первой строке записаны значения случайной величины, во второй — соответствующие им вероятности. Сумма всех элементов второй строки равна единице. Например, а=[[1,2,3,4,5],[0.4,0.1,0.1,0.2,0.2]].
Для дискретных случайных величин определены следующие функции: \mathEx'pectation() - математическое ожидание, \dispersionO - дисперсия,
\meanSquareDeviationO - среднее квадратичное отклонение,
\addQIJ(о, Ь) - сумма двух дискретных случайных величин,
\multiplyQU(о, Ь) - произведение двух дискретных случайных величин,
\covariance(a, Ь) - коэффициент ковариации двух дискретных случайных величин,
\correlation(a, Ь) - коэффициент корреляции двух дискретных случайных величин,
\simplifyQU() упрощение записи дискретной случайной величины, если в ней присутствуют
повторяющиеся значения.
5.8.3. Функции для выборок
Выборка задается как вектор, например, Б=[1,7,10,15]. Для выборок определены следующие функции:
\sampleMean(S) - выборочное среднее, \sampleDispersion(S) - выборочная дисперсия,
\covarianceCoef ficient(Sl, >в2) - коэффициент ковариации для двух выборoк, \correlationCoef ficient(Sl, S2) - коэффициент корреляции для двух выборoк.
5.9. Создание случайных объектов: чисел, полиномов, матриц. Функция времени.
\randomNumЬer(k) - случайное число, содержащее к бит.
\randomPolynom(nx,ny,пх,denP,k) - случайный полином, у которого коэффициенты - это числа, содержащее к бит, степени по переменным х, у, г не превосходят пт, пу, пх , соответственно, и плотность полинома равна с^пР процентов. Плотность полинома - это отношение числа ненулевых коэффициентов к максимально возможному числу коэффициентов (nx + + 1)(пу + 1)(п2 + 1) .
\randomMоШх^, п, denM, к) случайная числовая матрица m х п с плотностью denM (процентов), элементы которой - это к битные числа. Плотность матрицы - это отношение числа ненулевых элементов к общему числу элементов mn .
\randomMatrix(m,n,denM,nx,ny,пх,denP,k) случайная полиномиальная матрица с плотностью denM , элементы которой - это случайные полиномы, которые создаются оператором \randomPolynom(nx,ny, пх, denP, к) .
\timeQ - время в миллисекундах. Чтобы измерить время некоторого процесса, нужно вычесть время возвращаемое этой функцией в конце и в начале этого процесса.
6. Вычисления в тропической математике 6.1. Идемпотентные алгебры
Кроме классических числовых алгебр с операциями + , -, * и операцией "делить" для полей, можно производить вычисления в идемпотентных алгебрах (в тропической матема-
2034
тике). В таких алгебрах первая операция является идемпотентной. В названии тропической алгебры сразу указываются алгебраические операции. При выборе такой алгебры происходит переназначение символов + и *, и порядка на числовом множестве. В них вводится порядок, согласованный со сложением:
x < y & x ф y = y .
Поэтому нейтральный элемент по сложению является наименьшим элементом по порядку, но при этом он может отличаться от числового нуля. Можно задавать следующие идемпотентные полуполя:
1) ZMaxPlus, ZMinPlus - на множестве целых чисел Z,
2) RMaxPlus, RMinPlus, RMaxMult, RMinMult - на множестве действительных чисел R,
3) R64MaxPlus, R64MinPlus, R64MaxMult, R64MinMult - на множестве действительных чисел R64.
Можно задавать следующие идемпотентные полукольца:
1) ZMaxMin, ZMinMax, ZMaxMult, ZMinMult - на множестве целых чисел Z,
2) RMaxMin, RMinMax - на множестве действительных чисел R,
3) R64MaxMin, R64MinMax - на множестве действительных чисел R64.
Всего 18 разных типов алгебр. Вот примеры операторов устанавливающих тропическое окружение: SPACE = ZMaxPlus [x, y, z]; SPACE = RMaxMin [u, v]. Пример простой задачи в полукольце ZMaxPlus:
a = 2; b = 9; c = a + b; d = a * b; \print(c, d)
В результате будет c = 9, d =11, т. к. произошло назначение операций: знаком плюс обозначается бинарная функция максимум, а знаком умножить обозначается операция сложения.
Помимо бинарных операций сложения и умножения доступна унарная операция замыкания. Обозначается она так: \closure(a) , где a — это число или матрица. В результате вычисляется выражение 1 + a + a2 + a3 + ...
6.2. Операторы в тропических алгебрах
В тропических алгебрах имеются следующие операторы: \solveLAETropic(A, b) — частное решение системы уравнений Ax = b. \BellmanEquation(A) — решение однородного уравнения Беллмана Ax = x; \BellmanEquation(A,b) — решение неоднородного уравнения Беллмана Ax + b = x; \BellmanInequality(A) — решение неравенства Ax < x; \BellmanInequality(A, b) — решение неравенства Ax ф b < x.
Если для графа задана матрица A расстояний между смежными вершинами, то для нее в алгебрах Min-Plus определены еще два оператора:
\searchLeastDistances(A), — находит кратчайшие расстояния между всеми вершинами, \findTheShortestPath(A,i,j)) — находит кратчайший путь между вершинами i и j .
7. Построение 2D и 3D графиков
7.1. Построение графиков функций на плоскости
Графическое окружение задается командой set2D(). У нее могут быть следующие параметры:
\set2D(x0, x1), \set2D(x0, xl,' title'), \set2D(x0, x1,y0, y1), \set2D(x0, x1,y0, yl,' title'), \set2D(x0, x1,' title',' nameOX',' nameOY'), \set2D(x0, x1,y0, y1,' title',' nameOX',' nameOY').
2035
Здесь x0, x1, y0, y1 - это границы графика, title, nameOX, nameOY - заголовок графика и наименование его осей.
Последними в списке параметров могут стоять BW и ES: BW устанавливает черно-белый цвет графика, ES устанавливает равенство масштаба по шкале x и шкале у.
Полный формат для команды set2D() предполагает 3 группы параметров, каждая из которых пишется в квадратных скобках: set2D([x0,x1, y0, y1],['xTitle','yTitle','title'] ,[0,1,12,3,5]).
Первая квадратная скобка определяет границы графика. Эта скобка должна обязательно присутствовать. Если в первой скобке указаны только границы по оси абсцисс, то границы по оси ординат рассчитываются автоматически.
Вторая квадратная скобка - это надписи к осям координат и подпись ко всему рисунку.
Третья квадратная скобка содержит 5 чисел: 1) 1 — означает: установить режим черно-белый (0 - цветной), 2) 1 — означает: установить равный масштаб по обеим осям (0- золотое сечение), 3) это размер шрифта для подписей, 4) это толщина линий графиков, 5) это толщина координатных осей. Есть для этой скобки и 3 сокращенных варианта:['ES'],['BW'],['ESBW']. Они, соответственно, устанавливают в значение 1 или первый параметр, или второй параметр, или оба. Любая из квадратных скобок, кроме первой, может не присутствовать.
Параметрами изображаемой линии могут быть: dash (пунктир), arrow (стрелки) и dashAndArrow (пунктир и стрелки). Эти параметры могут стоять в конце списка параметров функций plot, tablePlot, и paramPlot. Например, \plot(sin(x),dash) .
Три способа задания графиков: \plot(f) ,где f=f(x) - функция, заданная явно,
\paramPlot([f, g], [x0,xi]), где f=X(x), g=Y(x) — функции, заданная параметрически, а [x0,xi] — интервал изменения параметра.
\tablePlot(T) , где T = [[xl, .,xnn], [fl,.., fn],.., [gi,..,gn]] - это одна или несколько таблично заданных функций, записанных в виде матрицы: первая строка - значение абсцисс, а вторая и следующие - значения функций в этих точках. Каждая функция записывается в одну строку.
Можно изобразить несколько графиков на одном рисунке. Для этого нужно заранее определить эти графики, например, P1 = \plot(x2); P2 = \plot(x3 + 1) . Тогда \showPlots([P 1, P2]) - дает изображение нескольких графиков на одном рисунке. Параметры, которые могут стоять в конце всех параметров showPlots: 'noAxes' — вывод графика без осей и 'lattice' — вывод графика c сеткой.
7.2. Построение 3D графиков функций
7.3. 3D графики функций, которые заданы явно
Для построения 3D графика функции f=f(x,y) используется команда \plot3d(f, [x0,x1,y0,y1]) , где [x0,x1] — интервал по оси OX, [y0,y1] — интервал по оси OY.
Перемещение мыши с нажатой левой кнопкой приводит к вращению системы координат графика. Перемещение мыши с нажатой левой кнопкой и нажатой клавишей Shift приводит к изменению масштаба изображения.
7.4. 3D графики функций, которые заданы неявно
Для построения графика функции f(x,y,z)=0 используется команда \implicitPlot3d(f, xMin, xMax, yMin, yMax, zMin, zMax) , где числа xMin, xMax, yMin, yMax, zMin, zMax задают область в пространстве, имеющую форму параллелепипеда, в которой изображается неявная функция.
Можно дополнительно указывать координаты источника света (lightX, lightY, lightZ), цвет (color) и число точек на сетке (gridSize). По умолчанию принимается на сетке 50 точек на
2036
каждом ребре параллелепипеда. Цвет в формате RGB (красный, зеленый, голубой) задается числом color=R*256*256+G*256+B, где каждая буква обозначает неотрицательное целое число не превосходящее 255. Например, 255*256*256 — красный цвет, а 255*256*256+255*256 — желтый (красный+зеленый). Допустимые наборы аргументов команды implicitPlot3d: (f,xMin,xMax,yMin,yMax,zMin,zMax,gridSize), (f,xMin,xMax,yMin,yMax,zMin,zMax,lightX,lightY,lightZ,gridSize), (f,xMin,xMax,yMin,yMax,zMin,zMax,lightX,lightY,lightZ,color,gridSize).
8. Сервис пользователя
8.1. Загрузка и исполнение операторов
Основной способ ввода текста - это ввод текста пользователем в поле рабочей тетради в окне браузера. Можно вводить и сохраненный раннее текст, если имеется соответствующий текстовый файл. Такой текст сразу появится на экране.
Имеется возможность ввода больших математических объектов, которые не надо выводить на экран. Например, матриц или векторов большого размера. Для этого предусмотрен ввод математического объекта из файла пользователя. Предварительно этот математический объект должен быть записан в языке Mathpar и сохранен в виде текстового файла.
Оператор a= \ fromFile(fileName) присвоит переменной a объект из файла пользователя с именем fileName. При этом вывод объекта на экран не происходит.
8.2. Вывод и сохранение результатов
Поле, в котором появляются результаты вычислений, находится в рабочей тетради в окне браузера сразу под окном ввода. Сервис рабочей тетради обеспечивает добавление или удаление дополнительных окон для ввода. В каждом таком отдельном окне можно исполнять команды и получать результаты вычислений независимо от остальных. При этом все ранее введенные объекты сохраняются в памяти и могут быть использованы в любом окне.
Имеется возможность сохранить в одном текстовом файле все поля ввода и вывода, которые имеются в рабочей тетради. При загрузке такого файла обратно на сервер произойдет восстановление всех окон сразу. Пользователь может сохранить окна в языке Mathpar, в языке LaTeX или в pdf-файле.
Кроме этого, есть возможность сохранить математический объект в текстовом файле пользователя. При выполнении оператора \ toFile( f , fileName) происходит запись объекта f в языке Mathpar в текстовый файла и сохранение этого файла на компьютере пользователя. При этом сам объект на экран не выводится. Тем самым достигается сохранение больших объектов, запись которых в языке Mathpar превышает размеры экрана. Такие объекты могут быть затем введены прямо из полученного файла, как было сказано выше.
8.3. Очистка памяти
В памяти сохраняются все объекты, которые ввел пользователь. Для освобождения всех переменных в сервисе предусмотрена кнопка очистки памяти. Она расположена в правом верхнем углу и отмечена символом "с". Кроме того, очистку памяти от всех переменных можно выполнить и при помощи оператора \clean() языка Mathpar. В таком операторе можно указать имена переменных, которые нужно очистить в качестве аргументов. В таком случае сохранятся все те объекты, у которых не отмечены имена.
2037
9. Сервис для вычислений на кластере
10. Настройка параметров задачи для вычислений на кластере
MathPartner обеспечивает связь с вычислительным кластером и предоставляет возможность для выполнения параллельных вычислений на кластере для отдельных операторов. Работы в области параллельной компьютерной алгебры ведутся уже более десяти лет см. [15, 16].
Для вычислений на кластере нужно задать постоянные настройки задачи на кластере: TOTALNODES — общее количество узлов кластера, которые выделяются для вычислений, PROCPERNODE — количество MPI-процессов, запускаемых на одном узле, CLUSTERTIME — максимальное время (в минутах) выполнения программы, после истечения которого программа принудительно завершится.
MAXCLUSTERMEMORY — объем памяти, выделяемый для JVM для одного MPI-процесса (опция -Xmx). Так как общая оперативная память на узле делится поровну между всеми его ядрами, то за счет изменения количество ядер, которые выделяются на одном узле, можно менять объем памяти, который приходится на одно ядро.
11. Операторы для параллельных вычислений
В настоящий момент подключены следующие параллельные операторы: Для классических пространств (Z[x]) - это умножение матриц и вычисление обратной матрицы (присоединенной матрицы и определителя) - \adjointDetPar(A) Для тропических пространств (R64MaxPlus[x]): \BellmanEquationPar(A), \BellmanEquationPar(A,b), \BellmanInequalityPar(A), \BellmanInequalityPar(A, b).
12. Обзор известных систем "Облачной Математики" 12.1. Пакеты компьютерной алгебры
Уже много лет известен математический сервис Вольфрам-Альфа (wolframalpha.com). Он предоставляет возможность выполнить один оператор языка Mathematica.
Осенью 2015 г. появились сообщения, что можно покупать доступ на полнофункциональную ß -версию Mathematica Online - облачный вариант системы Mathematica.
Лицензии на пакет Mathematica есть у таких вузов, как Оксфордский университет, Кэм-бриджский университет, Гарвардский университет. Среди российских университетов пакеты Mathematica приобрели Санкт-Петербургский государственный университет экономики, Томский политехнический университет, Дальневосточный федеральный университет, Уральский федеральный университет, Российская академия народного хозяйства и государственной службы, физико-математическая школа 239 в Санкт-Петербурге.
Компания Maplesoft не объявляла о планах создания облачного сервиса. Под названием Maple Cloud сегодня понимается сервис, который дает возможность пользователям обмениваться файлами с программами на языке Maple. Компания Maplesoft в 2009 г. была приобретена японской компанией Cybernet Systems Co. Ltd. для разработки программного обеспечения для автомобилей Тойота и с этого времени является ее филиалом.
Из свободно распространяемых систем компьютерной алгебры можно выделить систему SAGE. Она предоставляет графический интерфейс ко многим открытым пакетам компьютерной алгебры и существует как в десктопном варианте, так и в облачном варианте (cloud.sagemath.com).
2038
На прошедшей в сентябре 2015 г. в Аахене (Германия) конференции "Computer Algebra in Scientifiс Computing'^ двух докладах были сообщения о новых разработках в области Cloud Mathematics (см. сборник трудов конференции в [11]).
Один из них был посвящен облачному сервису Solve Polynomial Systems by PHCpack(beta), который размещен на сайте kepler.math.uic.edu. Он предназначен для решения полиномиальных систем.
Другой доклад был посвящен облачному сервису CloudMath. Этот сервис разработан компанией Dr. Hornecker Softwareentwicklung (Freiburg/Germany) в сотрудничестве с профессором Wolfram Koepf из Института Математики университета Касселя (Германия). В настоящее время этот сервис проходит ß -тестирование. Сервис CloudMath дает on-line доступ к SAGE и к другим открытым системам компьютерной алгебры. Информацию о нем можно найти на сайте http://www.hornesker.eu/cloudmatheng.aspx
12.2. Пакеты вычислительной математики
Среди пакетов вычислительной математики лидирует MATLAB. Он предоставляет пользователю интерактивную среду для разработки алгоритмов и анализа данных. Здесь можно строить 2D и 3D графики для визуализации данных, решать вычислительные задачи в таких областях, как обработка изображений, обработка сигналов, анализ систем управления, статистика, оптимизация и другие.
С 2012 г. он обеспечивает Интернет-доступ к рабочему столу MATLAB c полной поддержкой языка MATLAB из любого стандартного веб-браузера.
Он поддерживает кластерные вычисления на своем облаке (до 90 сек.) и на Amazon EC2 (до 15 мин.) (www.mathworks.com/products/parallel-computing/parallel-computing-on-the-cloud/)
СПИСОК ЛИТЕРАТУРЫ
1. Malaschonok G.I. Way to Parallel Symbolic Сотр^айопвхЮблачные вычисления. Образование. Исследования. Разработка». М., 2011. URL://www.unicluster.ru/conf/2011/docs/TSU.Malaschonok G.I.pdf
2. Малашонок Г.И. Руководство по языку «MATHPAR»: учебное пособие. Тамбов: Издат. дом ТГУ им. Г.Р. Державина, 2013. 133 c.
3. Малашонок Г.И. О проекте параллельной компьютерной алгебры // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2009. Т. 14. Вып. 4. С. 744-748.
4. Malaschonok G.I. Project of Parallel Computer Algebra // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2010. Т. 15. Вып. 6. С. 1724-1729.
5. Малашонок Г.И., Переславцева О.Н., Ивашов Д.О. Параллельные символьные вычисления // Суперкомпьютерные технологии в науке, образовании и промышленности / под ред. В.А. Садовничего, Г.И. Савина, Вл.В. Воеводина. М.: Изд-во Московского университета, 2013. 208 с.
6. Киреев О.А. , Малашонок Г.И. Тропические вычисления в веб-сервисе MathPartner // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2014. Т. 19. Вып. 2. С. 539-550.
7. Малашонок Г.И., Валеев Ю.Д., Лапаев А.О. О выборе алгоритма умножения для полиномов и полиномиальных матриц. Записки научных семинаров ПОМИ. 2009. Т. 372. С. 50-82.
8. Malaschonok, G.I. Effective matrix methods in commutative domains. In: D. Krob, A.A. Mikhalev, A.V. Mikhalev (eds.) Formal Power Series and Algebraic Combinatorics. Springer, Berlin. 2000. P. 506-517.
9. Akritas A.G., Malaschonok G.I. Computations in Modules over Commutative Domain. Computer Algebra in Scientific Computing. Springer, Berlin. 2007. P. 11-23.
10. Malaschonok, G.I. Generalized Bruhat decomposition in commutative domains. International Workshop on Computer Algebra in Scientific Computing, LNCS 8136. Springer, Berlin, Heidelberg. 2013. P. 231-242.
11. Malaschonok G., A. Scherbinin A. Triangular Decomposition of Matrices in a Domain. Computer Algebra in Scientific Computing. LNCS 9301, Springer, Switzerland. 2015. P. 290-304.
12. Malaschonok N.A. Parallel Laplace method with assured accuracy by symbolic computations. "Computer Algebra in Scientific Computing". Springer-Verlag, Berlin Heidelberg. 2006. P. 251-260.
13. Malaschonok N. An algorithm for symbolic solving of differential equations and estimation of accuracy. Computer Algebra in Scientific Computing. Springer-Verlag Berlin Heidelberg, 2009. P. 213-225.
14. Malashonok N.A., Rybakov M.A. Symbolic-Numerical Solution of Systems of Linear Ordinary Differential Equations with Required Accuracy. Programming and Computer Software, 2013. Vol. 39. № 3. P. 150-157.
2039
15. Малашонок Г.И., Валеев Ю.Д. Рекурсивное распараллеливание символьно-численных алгоритмов // Вестник тамбовского университета. Серия Естественные и технические науки. Тамбов, 2006. Т. 11. Вып. 4. С. 536-549.
16.Малашонок Г.И., Аветисян А.И., Валеев Ю.Д., Зуев М.С. Параллельные алгоритмы компьютерной алгебры // Труды института системного программирования / под ред. В.П. Иванникова. М.: ИСП РАН, 2004. Т. 8. Ч. 2. С. 169-180.
БЛАГОДАРНОСТИ: Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (проект № 16-07-00420)
Поступила в редакцию 19 октября 2016 г.
Малашонок Геннадий Иванович, Тамбовский государственный университет им. Г.Р. Державина, г. Тамбов, Российская Федерация, доктор физико-математических наук, профессор кафедры функционального анализа, е-mail: [email protected]
UDC 519.6
DOI: 10.20310/1810-0198-2016-21-6-2026-2041
NEW GENERATION OF SYMBOLIC COMPUTATION SYSTEMS
© G. I. Malaschonok
Tambov State University named after G.R. Derzhavin 33 Internatsionalnaya St., Tambov, Russian Federation, 392000 E-mail: [email protected]
We define a new generation of symbolic computation systems - mathematical cloud services that have emerged in the last 10 years. The main part of the article is devoted to describing features of one of these systems, which is called MathPartner. The effect of such systems on the development of many modern technologies, primarily educational technologies. The final section gives an overview of other well-known cloud systems of computer algebra and computational mathematics.
Key words: parallel computing; Cloud math, Math Partner, computer algebra, symbolic computations
REFERENCES
1. Malaschonok G.I. Way to Parallel Symbolic Computations.«Oblachnye vychisleniya. Obrazovanie. Issledovaniya. Razrabotka». Moskva, 2011. Available at://www.unicluster.ru/conf/2011/docs/TSU.Malaschonok G.I.pdf
2. Malashonok G.I. Rukovodstvo po yazyku «MATHPAR»: uchebnoe posobie. Tambov: Izdatel'skij dom TGU im. G.R. Derzhavina, 2013. 133 c.
3. Malashonok G.I. O proekte parallel'noj komp'yuternoj algebry // Vestnik Tambovskogo universiteta. Seriya Estestvennye i tekhnicheskie nauki - Tambov University Review. Series: Natural and Technical Sciencesv, 2009. T. 14. Vyp. 4. S. 744-748.
4. Malaschonok G.I. Project of Parallel Computer Algebra // Vestnik Tambovskogo universiteta. Seriya Estestvennye i tekhnicheskie nauki - Tambov University Review. Series: Natural and Technical Sciences, 2010. T. 15. Vyp. 6. S. 1724-1729.
2040
5. Malashonok G.I., Pereslavtseva O.N., Ivashov D.C. Parallel'nye simvol'nye vychisleniya // Superkomp'yuternye tekhnologii v nauke, obrazovanii i promyshlennosti / pod redaktsiej V.A. Sadovnichego, G.I. Savina, Vl.V. Voevodina. M.: Izdatel'stvo Moskovskogo universiteta, 2013. 208 s.
6. Kireev C.A. , Malashonok G.I. Tropicheskie vychisleniya v veb-servise MathPartner // Vestnik Tambovskogo universiteta. Seriya Estestvennye i tekhnicheskie nauki - Tambov University Review. Series: Natural and Technical Sciences, 2014. T. 19. Vyp. 2. S. 539-550.
7. Malashonok G.I., Valeev YU.D., Lapaev A.O. O vybore algoritma umnozheniya dlya polinomov i polinomial'nyh matrits. Zapiski nauchnyh seminarov POMI. 2009. T. 372. S. 50-82.
8. Malaschonok, G.I. Effective matrix methods in commutative domains. In: D. Krob, A.A. Mikhalev, A.V. Mikhalev (eds.) Formal Power Series and Algebraic Combinatorics. Springer, Berlin. 2000. P. 506-517.
9. Akritas A.G., Malaschonok G.I. Computations in Modules over Commutative Domain. Computer Algebra in Scientific Computing. Springer, Berlin. 2007. P. 11-23.
10. Malaschonok, G.I. Generalized Bruhat decomposition in commutative domains. International Workshop on Computer Algebra in Scientific Computing, LNCS 8136. Springer, Berlin, Heidelberg. 2013. P. 231-242.
11. Malaschonok G., A. Scherbinin A. Triangular Decomposition of Matrices in a Domain. Computer Algebra in Scientific Computing. LNCS 9301, Springer, Switzerland. 2015. P. 290-304.
12. Malaschonok N.A. Parallel Laplace method with assured accuracy by symbolic computations. "Computer Algebra in Scientific Computing". Springer-Verlag, Berlin Heidelberg. 2006. P. 251-260.
13. Malaschonok N. An algorithm for symbolic solving of differential equations and estimation of accuracy. Computer Algebra in Scientific Computing. Springer-Verlag Berlin Heidelberg, 2009. P. 213-225.
14. Malashonok N.A., Rybakov M.A. Symbolic-Numerical Solution of Systems of Linear Ordinary Differential Equations with Required Accuracy. Programming and Computer Software, 2013. Vol. 39. № 3. P. 150-157.
15. Malashonok G.I., Valeev YU.D. Rekursivnoe rasparallelivanie simvol'no-chislennyh algoritmov // Vestnik Tambovskogo universiteta. Seriya Estestvennye i tekhnicheskie nauki - Tambov University Review. Series: Natural and Technical Sciences, 2006. T. 11. Vyp. 4. S. 536-549.
16.Malashonok G.I., Avetisyan A.I., Valeev YU.D., Zuev M.S. Parallel'nye algoritmy komp'yuternoj algebry // Trudy instituta sistemnogo programmirovaniya. / Pod red. V.P. Ivannikova. M.: ISP RAN, 2004. T. 8. CH. 2. S. 169-180.
ACKNOWLEDGEMENTS: The work is partially supported by the Russian Fund for Basic Research (project № 16-07-00420).
Received 19 October 2016
Malaschonok Gennadi Ivanovich, Tambov State University named after G.R. Derzhavin, Tambov, the Russian Federation, Doctor of Physics and Mathematics, Professor of the Functional Analysis Department, е-mail: [email protected]
Информация для цитирования:
Малашонок Г.И. Новое поколение систем символьных вычислений // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2016. Т. 21. Вып. 6. С. 2026-2041. DOI: 10.20310/1810-0198-2016-21-6-2026-2041 Malaschonok G.I. Novoe pokolenie sistem simvol'nyh vychislenij [New generation of symbolic computation systems]. Vestnik Tambovskogo universiteta. Seriya Estestvennye i tekhnicheskie nauki - Tambov University Review. Series: Natural and Technical Sciences, 2016, vol. 21, no. 6, pp. 2026-2041. DOI: 10.20310/1810-0198-2016-21-6-2026-2041 (In Russian)
2041
УДК 519.6
DOI: 10.20310/1810-0198-2016-21-6-2042-2046
USING THE SMITH FORM FOR THE EXACT MATRIX INVERSION
© G. I. Malaschonok
Tambov State University named after G.R. Derzhavin 33 Internatsionalnaya St., Tambov, Russian Federation, 392000 E-mail: [email protected]
We discuss the problem of constructing an effective algorithm for computing the inverse matrix for an integer matrix. One of the way, for obtaining the inverse matrix, is based on the matrix Smith form. Known probabilistic algorithm can find the Smith form with the computational bit complexity which has cubic dependence of the matrix sizes. We propose a deterministic extension of this approach to calculating the inverse matrix. Key words: Smith form; Exact Computations; Matrix Inversion
Introduction
We discuss the problem of constructing an effective algorithm for the integer matrix inversing.
It is known that the inverse of an integer matrix and other problems of linear algebra over a commutative domain are performed with the complexity of matrix multiplication. If you solve these problems in integers using modular arithmetic, the complexity in the bit-operations increased by n times. Where n - is the size of the matrix [1-5].
In recent years, have been actively develop probabilistic algorithms. The best probabalistic algorithm for the integer matrix inversing was proposed by Arne Storiohanom [6]. This algorithm has complexity n3(log(\\A\\ + log||A 11|)) He proposed a probabilistic algorithm that with probability at least 1/2 computes the inverse matrix for the non-singular integral matrix A size n timesn and uses
- n3(log\\A\\ + log\\A-1\\)
bit operations. Here \\A\\ =max¿j \ Aj \ is the biggest coefficient of the matrix A , symbol sim is a missing factor
alog(n)b(loglog(\\A\\))c,
and the numbers a, b, c - is some positive constants.
The best algorithm, which was known before, has a bit complexity
- nw+1log\\A\\.
Random matrix with a high probability is well-conditioned and has \\A\\ & \\A-1\\ . However, it may be that \ \ A-1 \ \ & n\ \ A\ \ for ill-conditioned matrix, for example, when det(A) = 1. Thus, Storiohana algorithm allows us to calculate the inverse matrix faster for well-conditioned matrix (— n3log\\A\\). And this algorithm does not improve in the case of ill-conditioned matrix ( — n4log\\A \ \).
The central idea of this algorithm is to calculate the Smith form of the initial matrix as a sum of matrices of rank one.
Let r = rank(A)
snf(A) = S = PAQ = Diag(s1, S2,..., Sr, 0,0,..., 0)
2042
- is the Smith form of matrix A , P and Q - are unimodular matrices and Vi Sj\si+1. Then the expansion of Smith form can be written as follows
A = (si)ciri + (s2 )c2 T2 + ... + (sr)crTr.
(1)
here ciri, i = 1,2, ..,r is an outer product of the column ci by row ri.
The existence of such an expansion follows directly from the following matrix identity. Let s1 = gcd(A), w1 and h1 - is a row and column, satisfying the equation w1Ah1 = s1 and let r1 = w1A/s1, c1 = Ah1/s1. Then we have the following matrix identity:
1 w1
-c1 In - cw
0 0 0 A
1 - r1 h1 In - h1 r1
s1 0
0 A - s1 c1 r1
(2)
On the left side of equality both factors are the unimodular matrices. Hence the matrix A and diag(s1, A — s1c1r1) have the same Smith form. And we can easy to find them using this recursive identity: first, the matrix A, then the matrix A2 = A — s1c1r1, and so on.
As was shown in [1] for r = n the algorithm requires a ~n3(log\\A\\) bit operations. We must each time taking random vector hi, then the vector wi we must find using the extended Euclidean algorithm, calculating gcd(Aihi). The equality gcd(Aihi) = gcd(Ai) will be true with very high probability.
The following is an algorithm for computing the inverse matrix, which has roughly the same complexity in operations on integer coefficients. Its bit complexity we have to evaluate in the future.
Computation of the inverse matrix
Suppose we have already constructed the decomposition of Smith form of the matrix A and calculated all the components si, wi, hi, ri, ci (i = 1,2,.., r) in decomposition (1).
We will introduce other notations. We further denote by wi, ri, hi, ci matrix of size n x n , all of whose elements are zero except for one i -th row, which is equal to wi or ri, or one i th column, which equals hi or ci , respectively. In the new notation Smith decomposition will be recorded in the same manner as in (1).
THEOREM. Let A = (s1)c1r1 + (s2)c2r2 + ... + (sr)crrr - be Smith decomposition for matrix A , of size n x n , r = rank(A) , r1 = w1A/s1 , c1 = Ah1/s1 . Let S' - be n x n matrix, which is different from zero only one diagonal element in the i th row, which is equal si, and let Si = S'1 + S'2 +.. + S' (1 < i < r) and So = 0 .
Let Fi = In — ciwi, Gi = In — hr , Ai = (si)cr + ... + (sr)crrr,
Ui =
In wi ci Fi
and Vi =
In — ri hi Gi
(i = 1,.., r.)
Then the following matrix identities hold for any integer k, 1 lek le bfr(A) : k , 1 < k< r(A) :
In
wk
—ck Fk
UkUk-1 ■■■ U1 =
in which the the notation used
Sk-1 0
0 Ak -
Lk Wk ]
—Ck Fk
WrAH
In —rk
hk Gk
, V1V2 ■■■ Vk
- Sr
Sk 0
0 Ak+1
Mk —Rk Hk Gk
(3)
(4)
(5)
Fk = Fk Fk-1 • • • F1, Gk = G1G2 ■ ■ ■ Gk
r
2043
Wfc = wi + W2F1 + .. + WkFk-1, Ck = Ck + Fk-i(ck-i + Fk-2(ck-2 + •• + Fi(ci)..), Hfc = hi + + Gih-2 + •• + Gk-ihk , Rk = (••(^i)Gi + .. + rk-2Gk-2) + rk-i)Gk-i + rk , Lk = I (W2Ci + + W3C2 + •• + WkCk-i) , Mk = In - (Rih2 + R2hi + •• + Rk-ihk)
PROOF. The identity (2), which is used in the first step of calculating Smith decomposition, can be written in the form in which it will look for the step i. At the same time, we extend it zero and unit elements. And besides, we will add a diagonal matrix Si-1 and Si = Si-1 + Si to the left and the right side. Here, obviously, the identity is retained since ciSi-i = 0. As a result, come to identity (3). We prove (4) by induction. For k = 1 the assertion is obvious. Suppose it is true for some k > 1. Let us prove the following equality
In wk+i —ck+i Fk+i
Lk+i —Ck+i
Wk+i Fk+i
Lk Wk
-Ck Fk
Matrices Lk and Wk differ from the unit and zero matrices, respectively, only in the first k rows therefore ck+iLk = ck+i and ck+iWk = 0 . This implies that: Fk+i = Fk+iFk, Ck+i = ck+i + + Fk+iCk, Wk+i = Wk + Wk+iFk, Lk+i = Lk - Wk+iCk• The second of the identities (4) can be proved similarly. To prove the identity (5) applies to the original matrix A k times the equation (3) and use (4). A result we get
Lk Wk
—Ck Fk
0 0
0 Ak
Mk -Rk Hk Gk
Sk 0
0 Ak+i
When k = bfr from this equation, we obtain (5).
THEOREM. Let all the conditions of Theorem 1 are satisfied, and rankA = n . Then there is a factorization for the the inverse matrix:
A"1 = HnS-iWn.
Here
Hk = hi + Gih-2 + .. + Gk-ihk, Gk = G1G2 • • • Gk, Gi = In — hri, Wk = wi + W2Fi + .. + WkFk-i, Fk = FkFk-i ••• Fi, Fi = In — CiWi
(6)
(7)
(8)
The proof is reduced to the inversion of equality (5). Complexity. Let us find a product
(In - hiri)(In - h2r2) ••• (In - hn-irn-i)
GiG2 = (In - hiri)(In - h2r2) = (In - hi(ri - ^i2r2) - h2r2) GiG2G3 = (In - hi(ri - qir2) - h2^)(In - h^rn) = (In - hi(ri - qir2) - h2r2) - (h3r3 - hi(ri - qir2)h3r3 - h^h^) =
In - hi (ri - Hi2r2 - (^i3 - ^i2^23)r3) - h2(r2 - №23^) - h3r3 =
In - (hiqiq2..qn-i + h2q2q3..qn-i - h3q3q4. •qn — i ••• + hn—1)rn—1
qi = rihi+i
2044
-is the value of the element (i, i + 1) in the matrix (i = 1..n-2) To calculate the matrix Hn need to calculate each of its columns in accordance with (7). Column number k is equal to
G1G2 ■ ■ ■ Gk-1hk. We calculate it from right to left. We calculate the last product:
Gk-1hk = (In — hk-1rk-1)hk = hk — hk-1(rk-1hk)
To do this, the result of the scalar product of vectors (rk-1hk) multiply by a column vector hk-1 and subtract from column hk-1. In total, we performed 2n multiplications and additions as well. Continuing to go on like this, we calculate the entire column with the number k using 2(k — 1)n operations. Since the number of columns is equal to n, it would take n3 of operations for all calculations.
Similarly we can calculate the matrix Wn .
Thus, if we know Smith decomposition of matrix A then the inverse matrix factorization can be obtained for n3 of operations over coefficients.
The question of the bit complexity of such an algorithm is still open.
REFERENCES
1. Malaschonok G.I. Effective matrix methods in commutative domains. In: D. Krob, A.A. Mikhalev, A.V. Mikhalev (eds.) Formal Power Series and Algebraic Combinatorics // Springer, Berlin, 2000. P. 506-517.
2. Akritas A.G., Malaschonok G.I. Computations in Modules over Commutative Domain // Computer Algebra in Scientific Computing. Springer, Berlin, 2007. P. 11-23.
3. Malaschonok G.I. On computation of kernel of operator acting in a module // Tambov University Review. Series: Natural and Technical Sciences, 2008. V. 13. Iss. 1. P. 129-131.
4. Malaschonok G.I. Generalized Bruhat decomposition in commutative domains // International Workshop on Computer Algebra in Scientific Computing, LNCS 8136. Springer, Berlin, Heidelberg, 2013. P. 231-242.
5. Malaschonok G., Scherbinin A. Triangular Decomposition of Matrices in a Domain // Computer Algebra in Scientific Computing. LNCS 9301, Springer, Switzerland, 2015. P. 290-304.
6. Storjohann Arne. On the Complexity of Inverting Integer and Polynomial Matrices // Computational Complexity. 2015. V. 24. P. 777-821. DOI 10.1007/s00037-015-0106-7
ACKNOWLEDGEMENTS: The work is partially supported by the Russian Fund for Basic Research (project № 16-07-00420).
Received 19 October 2016 r
Malaschonok Gennadi Ivanovich, Tambov State University named after G.R. Derzhavin, Tambov, the Russian Federation, Doctor of Physics and Mathematics, Professor of the Functional Analysis Department, е-mail: [email protected]
2045