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

Знакомство и первые шаги

Эта глава посвящена первому знакомству с возможностями, которые Вам открывает 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$ end{array}$\backslash$right).

В MathML это еще более громоздкое выражение. Полученный текст на языке TeX или MathML можно скопировать и поместить в TeX- или html-файл и использовать для публикации. Кроме того, можно получить обычное изображение и разместить его в любом документе. Это необходимо, например, когда требуется сохранить график функции или решение задачи.

2.1 Ввод данных, решение задачи

В центральной части экрана находится поле ввода. Здесь Вы размещаете математические выражения. Для решения задачи надо нажать на кнопку <<${\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').

2.2 Математические функции

Приняты следующие обозначения для элементарных функций и констант.

Константы

$\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 — число сочетаний.

Դեռ արդյունք չկա

2.3 Действия с функциями

Для перечисленных выше функций и их композиций можно вычислить значение функции в точке, подставить выражения в функцию вместо аргументов, вычислить предел функции, ее производную. Для этого определены следующие команды.

Для вычисления значения функции в точке необходимо выполнить команду 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$ указывают, какого порядка по соответствующей переменной вычисляется производная.

Դեռ արդյունք չկա

Դեռ արդյունք չկա

Դեռ արդյունք չկա

Դեռ արդյունք չկա

2.4 Решение алгебраических уравнений

Для решения алгебраических уравнений нужно выполнить команду solve. Ниже используется команда настройки окружения <<FLOATPOS=N>>. Она устанавливает число десятичных знаков после запятой $(N)$, которые должны появиться при выводе числового результата приближенных вычислений. Она не связана с процессом вычислений, а только с выводом. По умолчанию $FLOATPOS=2$.

Դեռ արդյունք չկա

Դեռ արդյունք չկա

Դեռ արդյունք չկա

2.5 Решение алгебраических неравенств

Для решения алгебраических неравенств нужно выполнить команду solve, в которой записано неравенство. Можно решать строгие и не строгие алгебраические неравенства. Открытый интервал обозначается круглыми скобками ( ), а закрытый интервал — квадратными скобками [ ], множество обозначается фигурными скобками { }.

Դեռ արդյունք չկա

Դեռ արդյունք չկա

Դեռ արդյունք չկա

Դեռ արդյունք չկա

2.6 Решение систем алгебраических неравенств

Для решения систем алгебраических неравенств нужно выполнить команду solve[In1, In2, ..., Ink], где $[In1, In2, ..., Ink]$ — вектор неравенств. Система может содержать строгие и не строгие алгебраические неравенства. Открытый интервал обозначается круглыми скобками ( ), а закрытый интервал — квадратными скобками [ ], множество обозначается фигурными скобками { }.

Դեռ արդյունք չկա

Դեռ արդյունք չկա

Դեռ արդյունք չկա

2.7 Операции на подмножествах действительных чисел

Подмножество, содержащее несколько интервалов можно задать так 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

2.8 Векторы и матрицы

Для задания вектора нужно перечислить его элементы в квадратных скобках. Так задаются вектор-строки. Для задания матрицы нужно заключить в квадратные скобки ее вектор-строки, разделенные запятыми, например, $A = [[1, 2], [3, 4]]$.

Подматрицу размера $Nr\times Nc$ матрицы A определяет команда $\backslash 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$ — это вектор-столбец из трех элементов. Кроме обычных арифметических операций (+,-,*) можно вычислять функции от векторов поэлементно.

Դեռ արդյունք չկա

Դեռ արդյունք չկա

Դեռ արդյունք չկա

Դեռ արդյունք չկա

Դեռ արդյունք չկա

Դեռ արդյունք չկա

2.9 Создание случайных элементов

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$ — количество двоичных разрядов в записи коэффициентов полиномов.

Դեռ արդյունք չկա

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