Правило образования наименований математических объектов
Заглавные и строчные буквы всюду различаются. Пользователь может давать любые имена для математических объектов. Однако эти имена не должны совпадать с операторами и константами, которые определены в системе. Кроме того, имена объектов, умножение которых не коммутативно, например, векторов и матриц, должны начинаться с заглавных латинских букв, а все остальные имена объектов должны начинаться со строчных букв. Это дает возможность сразу после ввода автоматически получать упрощенное выражение.
Приведем список основных операторов системы Mathpar.
clean — удаление всех введенных имен объектов. Если в операторе перечислены имена объектов, то удаляются только объекты с этими именами.
Инфиксные арифметические операторы
+ — сложение;
- — вычитание;
/ — деление;
* — умножение (можно использовать пробел вместо знака умножения);
times — некоммутативное умножение.
Постфиксные арифметические операторы
! — факториал;
{ ${x} \widehat{ }{{ }}$} — возведение в степень;
Инфиксные операторы сравнения.
$\mathbf{\backslash le}$ — меньше или равно;
> — больше;
< — меньше;
$\mathbf{\backslash ge}$ — больше или равно;
== — равно;
$\mathbf{\backslash ne}$ — неравно.
Инфиксные логические операторы
$\mathbf{ \backslash lor}$ — дизъюнкция;
$\mathbf{ \backslash \&}$ — конъюнкция;
$\mathbf{ \backslash neg}$ — отрицание.
Основные префиксные операторы
d — символ дифференцирования при записи дифференциального уравнения;
D — производная функции: D(f) и D(f, x) — первая производная по $x$; $\mathbf D (f, y\widehat{ }{}3)$ — третья производная по $y$ и т. д.;
expand — преобразование выражения в сумму с раскрытием всех скобок в выражении;
fullExpand — преобразование в сумму выражения, которое содержит логарифмические, показательные и тригонометрические функции;
extendedGCD — расширенный алгоритм вычисления наибольшего общего делителя (НОД) полиномов. В результате получается вектор, содержащий НОД и дополнительные множители аргументов;
GCD — вычисление НОД полиномов;
factor — представление выражения в виде произведения;
fullFactor — представление выражения, содержащего логарифмические и показательные функции, в виде произведения;
initCond — задание начальных условий для системы линейных дифференциальных уравнений;
LCM — вычисление наименьшего общего кратного (НОК) полиномов;
lim — предел выражения;
print — печать выражений. Аргументами выступают имена выражений, разделенные запятыми. Каждое выражение будет печататься на новой строке;
printS — печать выражений в одну строчку, для перехода на следующую строчку нужно использовать <<$\backslash$n>>;
plot — построение графика функции, которая задана явно; plot3D — построение графика функции двух переменных, которая задана явно;
paramPlot — построение графика функции, которая задана параметрически;
tablePlot — построение графика функции, заданной таблицей аргументов и значений;
prod — произведение (символ $\prod$);
randomPolynom — генерация случайного полинома;
randomMatrix — генерация случайной матрицы;
randomNumber — генерация случайного числа;
sequence — задание последовательности;
showPlots — построение в одной системе координат графиков функций, которые должны быть определены раньше;
solveLDE — решение систем линейных дифференциальных уравнений;
systLAE — задание систем линейных алгебраических уравнений;
systLDE — задание систем линейных дифференциальных уравнений;
sum — сумма (символ $\sum$);
time — определение процессорного времени в миллисекундах;
value — вычисление значение выражения при подстановке заданных выражений или чисел вместо переменных кольца.
Операторы процедуры, ветвления и цикла
procedure — оператор объявления процедуры; $if( ){ } else{ }$ — оператор ветвления;
$while( ) { }$ — оператор цикла с предусловием;
$for( ; ; ) { }$ — оператор цикла со счетчиком.
Матрицы, их элементы и матричные операторы
[ , ] — задание вектора (строки);
[[ , ], [ , ]] — задание матрицы;
A_{i,j} — (i,j)-элемент матрицы A;
A_{i,?} — строка i матрицы A;
A_{?,j} — столбец j матрицы A;
$\backslash$O_{n,m} — нулевая матрица размера $n \times m$ ;
$\backslash$I_{n,m} — $n \times m$ матрица с единицами на главной диагонали;
+, -, * — сложение, вычитание, умножение;
charPolynom() — характеристический полином; kernel() — ядро оператора (нуль-пространство);
transpose() или $\mathbf{A}$ $\widehat{ }$ {T} — транспонированная матрица; conjugate() или $\mathbf{A }$ $\widehat{ }$ {$\backslash$ ast} — сопряженная матрица;
toEchelonForm() — эшелонная (ступенчатая) форма;
det() — определитель;
rank() — ранга матрицы;
inverse() или $\mathbf{A}$ $\widehat{ }$ {-1} — обратная матрица;
adjoint() или $\mathbf{A}$ $\widehat{ }$ {$\backslash$ star} — присоединенная матрица;
genInverse() или $\mathbf{A}$ $\widehat{ }$ {+} — обобщенная обратная матрица Мурра-Пенроуза; closure или $\mathbf{A}$ $\widehat{ }$ {$\backslash$ times} — замыкание, т.е. сумма $I+A+A^2+A^3+…$. Для классических алгебр это эквивалентно $(I-A)^{-1}$;
pseudoInverse() и — псевдо-обратная матрица. Она в отличие от матрицы Мурра-Пенроуза, удовлетворяет только двум из четырех тождеств. Однако она быстрее вычисляется;
LSU() — LSU-разложение матрицы. Результат — вектор из трёх матриц $[L,S,U]$. Здесь $L$ — нижняя треугольная матрица, $U$ — верхняя треугольная матрица, $S$ — матрица перестановок, умноженная на обратную к диагональной матрицу.
LSUWMdet() — Результат — вектор из 6 матриц $[L, S, U, W, M, [[det]] ]$. A=LSU, $pseudoInverse(A)=(1/det^2)WSM$, det - ненулевой максимальный по размеру угловой минор.
BruhatDecomposition() — разложение Брюа матрицы. Результат — вектор из трёх матриц $[V,D,U]$. Здесь $V$ и $U$ — верхние треугольные матрицы, $D$ — матрица перестановок, умноженная на матрицу, которая является обратной к диагональной матрице.
SVD() — SVD-разложение матрицы над действительными числами. Результат — вектор из трёх матриц $[U,D,V^{T}]$. Здесь $U, V^{T}$ — ортогональные матрицы, $D$ — диагональная матрица.
QR() — QR-разложение матрицы над действительными числами. Результат — вектор из двух матриц $[Q, R]$. Здесь $Q$ — ортогональная матрица, $R$ — верхняя треугольная матрица.
sylvester(p1,p2,type= 0 or 1) — строится матрица Сильвестра по коэффициентам полиномов $p1, p2$. Кольцо Z[x,y,z,u] будет рассматриваться как кольцо Z[u][x,y,z] (кольцо от одной переменной u с коэффициентами из Z[x,y,z].) Eсли type=0 размер матрицы n1+n2, если type=1 размер матрицы 2 max(n1,n2).
cholesky(A) или cholesky} {(A, 0) ~ — Разложение Холецкого. Матрица A должна быть симметричной и положительно определенной, только в этом случае разложение будет правильно вычислено. cholesky(A, 1) можно использовать в случае больших плотных матриц, начиная с размера 100x100. Здесь мы использовали блочное умножение по алгоритму Винограда-Штрассена. Назад к оглавлению