Статья состоит из кратких примеров с пояснениями основных возможностей Mathete. Её можно использовать, как справочник. При появлении новых возможностей я буду обновлять статью, дописывать новые возможности. Исходник доступен для просмотра и копирования - если, что-то не понятно из описания, смотрите исходный код, копируйте примеры к себе.
Текстовый параграф
Для ввода заголовков используйте символ #(решетка) в начале строки. Количество решеток определяет уровень заголовка
Заголовок 1 уровня (# в начале строки)
Заголовок 2 уровня (## в начале строки)
Заголовок 3 уровня (### в начале строки)
Заголовок 4 уровня (#### в начале строки)
Текст может быть курсивом или жирным. Для выделения курсивом окружите текст звездочками. Для выделения жирным - парой звездочек.
Формулы x_alpha=R_t*\(G+x_воды/t_пара) , можно вставлять прямо посередине alpha_p^F текста. Всё заключенное между < < и > > воспринимается, как формула. Синтаксис формул такой же, как и у мат.параграфов(читайте ниже)
Математический параграф
Вввод чисел
Точкой с запятой разделены "подпараграфы". Вычисления происходят последовательно в каждом из подпараграфов слева направо. Для разделения целой и дробной части используется точка
Сложение. Вычитание
Используйте знаки "плюс" и "минус" соответственно
34 + 56 + 78 - 7; 78.903 - 0.567
Умножение
Используйте звездочку(*)
6.78 * 45.6; 3.6 * 9056.7
Деление
Используйте знак /(прямой слэш)
Возведение в степень
Можно использовать знак ^. Или две звёздочки подряд
Корень
Для квадратного корня просто поставьте знак \(обратный слэш) перед подкоренным выражением. А для корня заданной степени - всё точно также, но перед знаком \ введите степень корня
\9; 3\((45.67+78.9)/90.7)
Модуль числа.
Для модуля используйте вертикальные черты вокруг выражения
Факториал.
Для факториала используйте восклицательный знак в конце выражения
Использование символов. Имена. Присваивание
Для символов можете использовать любые сочетания букв и цифр. Главное, чтобы первым символом была буква. Можете использовать буквы любого языка, а не только латинские символы
Для суффиксов используйте знак подчеркивания. То есть имя_суффикс.
Для ввода греческих букв используйте их названия на английском языке. Это работает для имен и для суффиксов. Например: alpha, Omega
Любому имени можно присвоить значение. Для этого используйте знак равно(=). В следующих за этим присваиванием подпараграфах и параграфах, данной статьи, вы можете использовать это имя - при вычислениях будет подставляться его значение. Дальше по ходу статьи можно переопределить значение у имени. Если на странице будет несколько статей (например статья и несколько комментариев), то каждая из статей имеет своё пространство имен. Посмотрите на результаты в примере ниже.
Можно использовать множественное присваивание
Переменные
Вы можете дать читателю (под читателем так же подразумевается автор) самому выбирать значения некоторых имен. Для этого используйте функцию input. В примере ниже просто я ввел следующее: a=input(1.2); b=input(6,8,9). То что вводится в скобках - значение по умолчанию. Если ввести несколько чисел через запятую, то вы тем самым ограничите выбор данными значениями.
a=input(1.2); b=input(6,8,9)
Элементарные функции
Тригонометрические функции. Пишите, так, как привыкли - sin(0); cos(1); tan(2);cot(3)
sin(0); cos(1); tan(2);cot(3)
Обратные тригонометрические функции. asin(0); acos(1); atan(2); acot(3). Обращаю внимание, что высчитывается значение только из "стандартного" периода
asin(0); acos(1); atan(2);acot(3)
Логарифмы. Для натуральных логарифмов, используйте функцию ln, для логарифмов с произвольным основанием, используйте log(выражение, основание)
Массивы. Вектора
Для ввода вектора, или, если вам удобнее так называть - массива, используйте квадратные скобки и запятую, для разделения элементов. К элементу массива можно обратиться по индексу, используя следующий синтаксис: Имя_массива[индекс]. Нумерация элементов ведется от единицы. Элементами массива могут быть любые выражения.В следующем примере мы вводим массив, затем изменяем его третий элемент, используя в расчете первый и пятый. В последнем подпараграфе просто выводим обновленный массив.
M = [1, 3, 56, 8.9, -7.9, 78]; M[4]=M[1]*M[5]; M
Если вам нужен массив представляющий собой арифметическую прогрессию, то удобно пользоваться следующей конструкцией: первыйэлемент,второй элемент..последнийэлемент. Если шаг прогрессии единица, то второй элемент можно опустить. В примере ниже, я ввел: 3,3.2..12; -3..8
С массивами можно производить действия и применять к ним функции. Результатом будет массив результатов. Мы в этом примере используем массивы введенные в прошлом параграфе.
Собственные функции.
Вы можете определить собственную функцию, и использовать в дальнейшем, как встроенную. Синтаксис, как и всегда наиболее привычный. Ниже я ввел просто: F(t)=sin(t) + a\ln(t); F(2.3); F(X). Обратите внимание, что я использую переменную а, введенную выше. Попробуйте ввести там другое числи и пересчитать. Здорово?!
F(t)=sin(t) + a\ln(t); F(2.5); F(X)
Бесконечность
- Mathete используется понятие бесконечность. Все числа больше 10 в 307 степени, объявляются бесконечностью. И более детальных расчетов не происходит. Соответственно все действия с бесконечностью приводят либо к бесконечности, либо к неопределенности (NaN в нашей системе). Вы сами можете ввести бесконечность, написав латинскими буквами две буквы "о" подряд.*
g=18798^324789; p=oo; g*p; g-p; g/p; g*0
Сумма. Произведение
Эти функции пока только для отображения. Вычисления для них ещё не сделаны. Для суммы используйте sum, для произведения prod. Эти функции принимают три аргумента. Первый (а может быть и единственный) - это выражение для суммирования(произведения), второй и третий пределы. Пределы можно опустить.Ниже я ввел: S = sum(G_i/k_j); P_delta = prod(B_i); T = sum(F_i, i=0, i=s)/prod(x^2, x=0, x=c)
S = sum(G_i/k_j); P_delta = prod(B_i); T = sum(F_i, i=0, i=s)/prod(x^2, x=0, x=c)
Производные
пока тоже только для отображения. Используйте функцию diff.Ниже я ввел:diff((x^5+3x^4)/(12x^2), x); diff(xy+ x^y, [x, y])*
diff((x^5+3*x^4)/(12*x^2), x); diff(x*y+ x^y, [x, y])
Интегралы
пока тоже только для отображения. Используйте функцию integral. Ниже я ввел: integral((x^5+3x^4)/(12x^2), x); integral(xy+ x^y, [x, y])*
integral((x^5+3*x^4)/(12*x^2), x); integral(x*y+ x^y, [x, y])
Отношения. Булев тип
Выражения можно сравнивать. Используйте следующие операторы: == равно, != не равно, > больше, < меньше, >= больше или равно, <= меньше или равно. Результатом является true или false. Это не прости имена, а значения булевого типа. Чтобы не путать, они специально выделены синим цветом. Отношения корректно работают, только с выражениями, приводимыми к числу. В символьных вычислениях отношения использовать не следует
2*2 == 4; -3<-2; 8>908; 5>= \25; 81<= ln(pi)
Условия. Кусочно-заданные функции.
Функия if возвращает значение в зависимости от выполнения условия. Синтаксис такой: if(условие, значениепривыполненииусловия, значениевпротивномслучае). А функция switch принимает сколько угодно массивов из двух элементов - условие и значение, в случае выполнения условия. Ниже помимо знакомых конструкций я использовал: if(x==2, 10, 0) и e(z) = switch([z<3, -3/4], [z==3, 5], [z > 3, 6])
x=input(2); if(x==2, 10, 0)
t=-1,-0.9..5; e(x)= switch([x<3, -3/4], [x==3, 5], [x > 3, 6])
chart({x1: t, y1: e(t), color1: "grey", type1: "line", label1: "fsdf", x2: [3], y2: [5], color2: "blue", type2: "points", label2: "", width: "200", height: "200", legend: "ne", xaxis: "auto", yaxis: "auto"})
Случайные числа
Функция random(n) возвращает случайное число величиной 0 до n
Символьные вычисления
Пока только реализованна группировка символьных слагаемых и множителей
k + k + l +k - l +l; m*n*m
Графики
Давайте построим график нашей функции F(t), с аргументами X. Для построения графиков лучше всего использовать вкладку График, в панеле ввода параграфа. Я просто вписал в поле x1 - X, а в поле y1 - F(X). Выбрал синий цвет, тип графика сплошная линия. Установил ширину 500, а высоту 200. И в описании написал F(t). Вот и всё!
chart({x1: X, y1: F(X), color1: "blue", type1: "line", label1: "F(X)", width: "500", height: "200", legend: "ne", xaxis: "auto", yaxis: "auto"})
Трехмерные графики. Построим график по следующим последовательностям
x = 0,0.1..10; y = sin(x); z=x
chart3d({x: x, y: y, z: z, color: "red", width: "300", xaxis: "auto", yaxis: "auto"})