Անցումբովանդակո ւթյանը

Список операторов

Правило образования наименований математических объектов

Заглавные и строчные буквы всюду различаются. Пользователь может давать любые имена для математических объектов. Однако эти имена не должны совпадать с операторами и константами, которые определены в системе. Кроме того, имена объектов, умножение которых не коммутативно, например, векторов и матриц, должны начинаться с заглавных латинских букв, а все остальные имена объектов должны начинаться со строчных букв. Это дает возможность сразу после ввода автоматически получать упрощенное выражение.

Приведем список основных операторов системы 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. Здесь мы использовали блочное умножение по алгоритму Винограда-Штрассена. Անցումբովանդակո ւթյանը