Назад до змісту 

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

Правило найменувань математичних об'єктів

Великі і малі літери всюди різняться. Користувач може надавати будь-які імена для математичних об'єктів. Однак ці імена не повинні співпадати з операторами та константами, які визначені у системі. Крім того, імена об'єктів, множення яких не комутативно, наприклад, векторів і матриць, повинні починатися з великих латинських літер, а всі інші імена об'єктів повинні починатися з малих літер. Це дозволяє відразу після введення автоматично отримувати спрощене вираження.

Наведемо перелік основних операторів системи 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$ матриця з одиницями на головній діагоналі;

+, -, * — додавання, віднімання, множення;

rowNumb() — число рядків матриці (або вектора); colNumb() — число стовпців матриці (або вектора); size() — обидва розміри матриці (або число компонент вектора);

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+…$. Для класичних алгебр це еквівалентно $(IA)^{-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].) Якщо type=0 розмір матриці n1+n2, якщо type=1 розмір матриці 2 max(n1 , N2).

cholesky(A) або cholesky} {(A, 0) ~ — Розкладання Холецького. Матриця A повинна бути симетричною та позитивно визначеною, тільки в цьому випадку розкладання буде правильно обчислено. cholesky(A, 1) можна використовувати у разі великих щільних матриць, починаючи з розміру 100x100. Тут ми використали блокове множення за алгоритмом Винограда-Штрассена. Назад до змісту