Цей розділ присвячений першому знайомству з можливостями, які Вам відкриває Mathpar. Мова Mathpar, що описується нижче, може розглядатися як деякий розвиток мови TeX. Мова TeX призначена для запису математичних текстів та підготовки їх до публікації. Його можна вважати пасивним у порівнянні з мовою Mathpar, яка дозволяє робити обчислення, тобто є активною мовою математики. Як формулювання завдання, так і результати обчислень записуються на мові Mathpar.
Відразу після обчислень Ви бачите весь математичний текст у вигляді pdf-зображення, у тому вигляді, як прийнято представляти математичний запис у наукових та технічних публікаціях.
Цей результат може бути використаний декількома способами. (1) Можна натиснути на текст мишкою, і він повернеться до вихідного вигляду мови Mathpar. Є й інший спосіб перемикання зображення тексту: за допомогою кнопки , розташованої між кнопками <<$\blacktriangleright$>> і <<$+$>>.
(2) Можна натиснути на зображення математичного запису правою кнопкою мишки. У цьому випадку з'явиться меню. Верхнє поле <<Show Math As>> дозволяє перейти до вибору мови виводу. Пропонується вибрати TeX або MathML. І потім відкрийте поле з бажаним текстом.
Наприклад, матриця A, розміру $2\times 2$, Mathpar буде записана так:
A = [[a, b], [c, d]];
у TeX вона виглядає так:
A= $\backslash$left(begin{array}{${cc}$}$ a \& b$ $\backslash\backslash c \& d \backslash\backslash$ comm{end}{{array}}$\backslash$right).
У MathML це ще більш громіздкий вираз. Отриманий текст на мові TeX або MathML можна скопіювати та помістити в TeX- або html-файл та використовувати для публікації. Крім того, можна отримати звичайне зображення та розмістити його в будь-якому документі. Це необхідно, наприклад, коли потрібно зберегти графік функції чи розв'язання задачі.
У центральній частині екрана є поле введення. Тут Ви розміщуєте математичні вирази. Для вирішення завдання треба натиснути на кнопку <<${\blacktriangleright}$>>, яка розташована над полем уведення. Крім того, можна використовувати комбінацію клавіш Ctrl+Enter. Наприклад, можна набрати 2+2 і натиснути <<$\blacktriangleright$>>.
У верхній частині екрана знаходяться активні поля $\fbox{Допомога}$ і $\fbox{Посібник}$. Вказуючи мишкою на ці поля, Ви можете перейти до сторінок Допомоги або відкрити Посібник з Mathpar.
На сторінках Допомоги всі поля з прикладами є активними полями, Завдання, що містяться, можна тут же вирішити і побачити відповідь. Для цього потрібно клікнути по кнопці <<$\blacktriangleright$>> або ж можна поставити курсор на полі прикладу та натиснути Ctrl+Enter. Можна копіювати текст із будь-якого прикладу та перенести його у Ваше основне поле введення. Для цього можна використовувати виділення тексту мишкою, копіювання та вставку цього тексту за допомогою комбінації клавіш Ctrl+С та Ctrl+V, відповідно, для копіювання та вставки.
Текст, який Ви можете вводити у поле введення, складається з коментарів та математичних операторів.
При введенні коментарів, тобто будь-якого тексту, що пояснює, необхідно брати його в лапки. Наприклад: ($"$ це коментар $"$). Лапки дозволяється використовувати тільки для коментарів. У тексті коментарів можна використати, наприклад, такі лапки << >>. Коли в коментарях потрібно мати математичний вираз, як частину коментаря, то його необхідно обрамити знаками долара ($\$$) Наприклад, можна написати такий коментар: $"$Два позначення $\$ \backslash exp(x)\$$ і $\$\backslash e \widehat{ }{} x\$$ застосовуються для експоненційної функції.
При введенні математичних виразів їх необхідно розділяти крапкою з комою (;) або текстом коментарів, які укладені в лапки. точку з комою після останнього оператора. коли необхідно вставити текст, потрібно використовувати апострофи: ('текст у математичному операторі').
Для виведення результатів можна використовувати команду print(), де як аргументи, розділені комами, необхідно вказати імена тих виразів, які потрібно вивести. Якщо серед команд не зустрівся оператор друку print() або інший оператор виводу (plot(), prints() і т.д. д.), то буде виводиться результат, отриманий в останньому оператора або останньої нової змінної.
Команди та оператори починаються із символу <<back slash>> ($\backslash$).
Клавіша $\fbox{+}$ призначена для додавання полів введення. Для видалення поля введення можна скористатися поєднанням клавіш Ctrl+Del або хрестиком $\fbox{х}$, розташованим над полем введення праворуч.
Кнопка $\fbox{C}$, розташована над полем введення праворуч, призначена для скасування всіх введених ранніх позначень. Скасування позначень дозволяє отримувати формули, у яких стоять символи, а чи не числа.
У верхній лівій частині екрана знаходяться поля, в яких вказано поточне оточення та обсяг оперативної пам'яті в мегабайтах. Оточення фіксується числовою множиною та іменами основних змінних. Під цим полем розташовані різні меню, які полегшують введення функцій та операторів.
Функції для роботи з файлами доступні з панелі «Файли», що розкривається, розташованої в меню зліва.
Існують такі можливості для обробки файлів:
1) Збереження останньої виконаної секції у вигляді PDF-файлу за допомогою кнопки "Зберегти PDF". Можна вказати свій розмір сторінки (в сантиметрах), за замовчуванням вказано розмір А4 (21х29.7 см).
2) Завантаження текстових файлів на сервер Mathpar за допомогою кнопки "Завантажити файл". Під цією кнопкою міститься список завантажених файлів. Файли повинні містити вирази мовою Mathpar або таблиці у спеціальному форматі.
Таблиця складається з рядка із заголовком (довільні рядки) та рядків з числами. Стовпці відокремлюються знаком табуляції. Функції для роботи з таблицями доступні у розділі «Графіки та таблиці» (див. також розділ 3.1 Побудова графіків функцій системи допомоги).
3) Введення виразів на мові Mathpar із завантаженого файлу за допомогою функції fromFile(). Наприклад, створити вираз із завантаженого файлу myfile.txt і присвоїти цей вираз змінної $a$ можна командою a = fromFile('myfile.txt').
Прийнято такі позначення для елементарних функцій та констант.
$\backslash$i — уявна одиниця,
$\backslash$e — основа натурального логарифму,
$\backslash$pi — число $\pi$, тобто відношення довжини кола до діаметра,
$ backslash $ infty - знак нескінченності.
$\backslash$ln — натуральний логарифм,
$\backslash$lg — десятковий логарифм,
$\backslash$sin — синус,
$\backslash$cos — косинус,
$\backslash$tg — тангенс,
$\backslash$ctg — котангенс,
$\backslash$arcsin — арксинус,
$\backslash$arccos — арккосинус,
$\backslash$arctg — арктангенс,
$\backslash$arcctg — арккотангенс,
$\backslash$sh — синус гіперболічний,
$\backslash$ch — косинус гіперболічний,
$\backslash$th — тангенс гіперболічний,
$\backslash$cth — котангенс гіперболічний,
$\backslash$arcsh — арксинус гіперболічний,
$\backslash$arcch — арккосинус гіперболічний,
$\backslash$arcth — арктангенс гіперболічний,
$\backslash$arccth — арккотангенс гіперболічний,
$\backslash$exp — експонента,
$\backslash$sqrt — корінь квадратний,
$\backslash$abs — абсолютне значення для дійсних чисел, модуль для комплексного числа,
$\backslash$sign — знак числа. Повертає 1, 0, -1, коли число позитивне, нуль або негативне, відповідно,
$\backslash$unitStep$(x)$ — це функція, яка при $x\geqslant 0$ приймає значення $1$, а при $x<0$ набуває значення $0$;
$\backslash$fact — факторіал. Визначено для цілих позитивних чисел. Рівносильна запис — <<n!>>.
$\widehat{ }{}$ — ступінь,
$\backslash$log — логарифм від функції за вказаною основою,
$\backslash$rootOf(x, n) — корінь ступеня n з x,
$\backslash$Gamma — функція Гамма,
$\backslash$Gamma2 — функція Гамма 2,
$\backslash$binomial — кількість поєднань.
Для перелічених вище функцій та його композицій можна обчислити значення функції у точці, підставити висловлювання функцію замість аргументів, обчислити межу функції, її похідну. Для цього визначено такі команди.
Для обчислення значення функції у точці необхідно виконати команду value(f, [var1, var2,…, varn]), де $f$ — функція, а $var1, var2, …, varn$ — значення відповідних змінних кільця. Для встановлення виразів у функцію необхідно виконати команду value(f, [func1, func2, …, funcn]), де $f$ — це функція, $func1, func2, …, funcn$ — функції, які підставляються замість відповідних змінних.
Для обчислення межі функції у точці необхідно виконати команду lim(f, var), де $f$ — це функція, а $var$ — точка, в якій потрібно знайти межу.
Для обчислення похідної функції $f$ за змінною $y$ з кільця $\mathbb{Z}[x, y, z]$ потрібно виконати команду D(f, y). Для знаходження змішаної похідної першого порядку від функції $f$ існує команда D(f, [x, y]), для знаходження похідної вищих порядків потрібно використовувати команду $\backslash {\mathbf {D}} (f, [x \widehat{ }{} k, z \widehat{ }{} m, y \widehat{ }{} n])$, де $k, m, n$ вказують, якого порядку за відповідною змінною обчислюється похідна.
Для розв'язання рівнянь алгебри потрібно виконати команду solve. Нижче використовується команда налаштування оточення <<FLOATPOS=N>>. Вона встановлює число десяткових знаків після коми $(N)$, які мають з'явитися під час виведення числового результату наближених обчислень. Вона пов'язані з процесом обчислень, лише з висновком. За промовчанням $FLOATPOS=2$.
Для розв'язання алгебраїчних нерівностей потрібно виконати команду solve, у якій записано нерівність. Можна вирішувати суворі та не суворі алгебраїчні нерівності. Відкритий інтервал позначається круглими дужками ( ), а закритий інтервал - квадратними дужками [ ], множина позначається фігурними дужками { }.
Для вирішення систем алгебраїчних нерівностей необхідно виконати команду solve[In1, In2, ..., Ink], де $[In1, In2, ..., Ink]$ — вектор нерівностей. Система може містити суворі та не суворі алгебраїчні нерівності. Відкритий інтервал позначається круглими дужками ( ), а закритий інтервал ~ — квадратними дужками [ ], безліч позначається фігурними дужками { }.
Підмножина, що містить кілька інтервалів, можна задати так set((a,b),(c,d]) , де $a,b,c,d$ — числа. Тут інтервал позначається круглими дужками ( ), напіввідкритий інтервал - однією круглою та однією квадратною дужкою [ ] або ( ), а відрізок – квадратними дужками [ ]. Точка позначається фігурними дужками або як закритий інтервал.
Прості підмножини позначаються такими ж дужками, але перед кожною дужкою необхідно додавати backslash ($\backslash$). Наприклад, $\backslash (3,4.5)\backslash ]$ або $\backslash[7,7\backslash]$. Оператор $\backslash {\mathbf{set}}$ не потрібний.
З підмножинами можна здійснювати операції об'єднання, перетину, віднімання, обчислення симетричної різниці та доповнення за допомогою команд $backslash cup$ і $backslash cap$, $backslash setminus$, $backslash triangle$ і знака апостроф (') відповідно.
\newpage
Для завдання вектора слід перерахувати його елементи у квадратних дужках. Так задаються векторні рядки. Для завдання матриці потрібно укласти квадратні дужки її вектор-рядки, розділені комами, наприклад, $A = [[1, 2], [3, 4]]$.
Підматрицю розміру $Nr\times Nc$ матриці A визначає команда $\backslash {bf submatrix}( A,r1,Nr,c1,Nc)$. Тут $r1,c1$ це позиція верхнього лівого елемента.
Елемент матриці можна отримати, вказавши номер рядка і стовпця в нижніх індексах елемента матриці, а елемент вектора можна отримати, вказавши один індекс. Наприклад, можна визначити елементи матриці так: $a=\backslash elementOf(A)$, а потім звертатися до окремих елементів: $a$_{$i, j$}. Або визначити елементи вектора $B$ так: $b=\backslash elementOf(B)$, потім звертатися до них $b$_{$i$}.
Можна отримати рядок $i$ матриці у вигляді векторного рядка: $a$_{$i, ?$} або стовпець матриці $j$ у вигляді векторного стовпця: $a$_{$?, j$}. Імена некомутативних об'єктів, наприклад матриць та векторів, належить писати з першим символом backslash ($\backslash$) і великої латинської літери, якщо передбачається їх використовувати в таких виразах, у яких не можна допускати перестановок. Наприклад, $\backslash A *\backslash B - \backslash B *\backslash A$ не призведе автоматично до нуля, на відміну $A * B - B * A $, що відразу спроститься в 0.
Для позначення нульової та одиничної матриці використовуються великі літери $\backslash O$ і $\backslash I$, у яких зазначено два індекси, що позначають число рядків та стовпців. За допомогою символу $\backslash I$ можна створювати прямокутні матриці будь-якого розміру, у яких елементи на головній діагоналі дорівнюють $1$, інші елементи нульові. Наприклад, $\backslash I$_{$2, 3$} і $\backslash O$_{$2, 2$} позначають матриці $\left(\begin{array}{ccc} 1&0&0 0&1&0 \end{array}\right)$ і $\left(\begin{array}{cc} 0&0 0&0 \end{array}\right)$. Можна задавати нульові вектори, вказуючи в індексі кількість елементів: $\backslash O$_{$3$} означає вектор $[0, 0, 0]$, а $I$_{$3$} позначає вектор $[1, 0, 0]$.
Зазначимо, що як одновимірні і двовимірні масиви в мові Mathpar використовуються вектори і матриці, наприклад, O$_{n}$, O$_{n,m}$.
Вектор-стовпець може бути утворений транспонуванням вектор-рядки, наприклад, $D=[7, 2, 3]^T$ — це вектор-стовпець з трьох елементів. Крім звичайних арифметичних операцій (+,-,*) можна обчислювати функції векторів поэлементно.
Mathpar може створювати випадкові числа, поліноми та матриці. Це зручно, коли Вам потрібно створити якийсь довільний складний об'єкт або потрібно отримати багато випадкових об'єктів.
Щоб отримати випадкове число, необхідно виконати команду randomNumber(k), де в аргументі $k$ вказується кількість двійкових розрядів у записі випадкового числа. Це відповідає приблизно $0.3 k$ десятковим цифрам.
Для того, щоб створити випадковий поліном від s змінних, необхідно виконати команду randomPolynom(d1, d2,…, ds, dens, bits), де $dens$ — щільність полінома, а $bits$ — кількість двійкових розрядів у записі випадкового числа, $d1, d2, …, ds$ означають старші ступені змінних. Якщо $dens=100$, то буде отримано поліном, у якого всі коефіцієнти відмінні від нуля, всього $(d1+1)(d2+1)..(ds+1)$ членів. Якщо $dens<100$, то $dens\%$ будуть ненульовими, а $(100-dens)\%$ нульовими.
Щоб отримати випадкову числову матрицю, необхідно виконати команду randomMatrix(m, n, dens, bits), де $m$ — кількість рядків у матриці, $n$ — кількість стовпців матриці, $dens$ — це щільність матриці у відсотках, $bits$ — число двійкових розрядів у записі числових коефіцієнтів.
Для того, щоб отримати випадкову поліноміальну матрицю, необхідно виконати команду randomMatrix(m, n, dens, d1, d2, …, ds, polDens, polBits)), де $m$ — кількість рядків у матриці, $n$ — кількість стовпців матриці, $dens$ — це щільність матриці, $d1, d2,…, ds$ — найбільші ступеня змінних поліномів, $polDens$ — щільність поліномів, $polBits$ — кількість двійкових розрядів у записі коефіцієнтів поліномів.