#Библиотека Math.js
Math.js — функционально богатая математическая библиотека для JavaScript и Node.js.
#Справочник функций
#Выражения
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| compile | Разбор и компиляция выражения (без немедленного возврата результата). | compile('2 + 3') | выражение (строка) | {} |
| evaluate | Вычисляет выражение и возвращает результат. | evaluate('2 + 3') | выражение (строка), область видимости (необяз.) | 5 |
| help | Справка по функции или типу данных. | help('evaluate') | строка поиска | { "name": "evaluate", "category": "Excodession", "syntax": [ "evaluate(excodession)", "evaluate(excodession, scope)", "evaluate([expr1, expr2, expr3, ...])", "evaluate([expr1, expr2, expr3, ...], scope)" ], "description": "Evaluate an excodession or an array with excodessions.", "examples": [ "evaluate(\"2 + 3\")", "evaluate(\"sqrt(16)\")", "evaluate(\"2 inch to cm\")", "evaluate(\"sin(x * pi)\", { \"x\": 1/2 })", "evaluate([\"width=2\", \"height=4\",\"width*height\"])" ], "seealso": [], "mathjs": "Help"} |
| parser | Создаёт разборщик для пользовательских операций. | parser() | Нет | {} |
#Алгебра
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| derivative | Производная выражения по указанной переменной. | derivative('x^2', 'x') | выражение (строка или Node), переменная (строка) | { "mathjs": "OperatorNode", "op": "*", "fn": "multiply", "args": [ { "mathjs": "ConstantNode", "value": 2 }, { "mathjs": "SymbolNode", "name": "x" } ], "implicit": false, "isPercentage": false} |
| leafCount | Число листьев (символов или констант) в дереве выражения. | leafCount('x^2 + y') | выражение (строка или Node) | 3 |
| lsolve | Решение линейной системы прямой подстановкой. | lsolve([[1,2],[3,4]], [5,6]) | L (Array или Matrix), b (Array или Matrix) | [ [ 5 ], [ -2.25 ]] |
| lsolveAll | Все решения линейной системы прямой подстановкой. | lsolveAll([[1,2],[3,4]], [5,6]) | L (Array или Matrix), b (Array или Matrix) | [ [ [ 5 ], [ -2.25 ] ]] |
| lup | LU-разложение с частичным выбором главного элемента. | lup([[1,2],[3,4]]) | A (Array или Matrix) | { "L": [ [ 1, 0 ], [ 0.3333333333333333, 1 ] ], "U": [ [ 3, 4 ], [ 0, 0.6666666666666667 ] ], "p": [ 1, 0 ]} |
| lusolve | Решение A·x = b для квадратной матрицы A. | lusolve([[1,2],[3,4]], [5,6]) | A (Array или Matrix), b (Array или Matrix) | [ [ -3.9999999999999987 ], [ 4.499999999999999 ]] |
| qr | QR-разложение матрицы. | qr([[1,2],[3,4]]) | A (Array или Matrix) | { "Q": [ [ 0.316227766016838, 0.9486832980505138 ], [ 0.9486832980505138, -0.316227766016838 ] ], "R": [ [ 3.162277660168379, 4.427188724235731 ], [ 0, 0.6324555320336751 ] ]} |
| rationalize | Приведение рационализуемого выражения к рациональной дроби. | rationalize('1/(x+1)') | выражение (строка или Node) | { "mathjs": "OperatorNode", "op": "/", "fn": "divide", "args": [ { "mathjs": "ConstantNode", "value": 1 }, { "mathjs": "OperatorNode", "op": "+", "fn": "add", "args": [ { "mathjs": "SymbolNode", "name": "x" }, { "mathjs": "ConstantNode", "value": 1 } ], "implicit": false, "isPercentage": false } ], "implicit": false, "isPercentage": false} |
| resolve | Подстановка значений символов из области видимости. | resolve('x + y', {x:2, y:3}) | выражение (строка или Node), область видимости (объект) | { "mathjs": "OperatorNode", "op": "+", "fn": "add", "args": [ { "mathjs": "ConstantNode", "value": 2 }, { "mathjs": "ConstantNode", "value": 3 } ], "implicit": false, "isPercentage": false} |
| simplify | Упрощение дерева выражения (подобные слагаемые и т.д.). | simplify('2x + 3x') | выражение (строка или Node) | { "mathjs": "OperatorNode", "op": "*", "fn": "multiply", "args": [ { "mathjs": "ConstantNode", "value": 5 }, { "mathjs": "SymbolNode", "name": "x" } ], "implicit": false, "isPercentage": false} |
| simplifyCore | Однопроходное упрощение (для сценариев, чувствительных к производительности). | simplifyCore('x+x') | выражение (строка или Node) | { "mathjs": "OperatorNode", "op": "+", "fn": "add", "args": [ { "mathjs": "SymbolNode", "name": "x" }, { "mathjs": "SymbolNode", "name": "x" } ], "implicit": false, "isPercentage": false} |
| slu | Разреженное LU-разложение с полным выбором главного элемента. | slu(sparse([[4,3], [6, 3]]), 1, 0.001) | A (Array или Matrix), порядок (строка), порог (число) | { "L": { "mathjs": "SparseMatrix", "values": [ 1, 1.5, 1 ], "index": [ 0, 1, 1 ], "ptr": [ 0, 2, 3 ], "size": [ 2, 2 ] }, "U": { "mathjs": "SparseMatrix", "values": [ 4, 3, -1.5 ], "index": [ 0, 0, 1 ], "ptr": [ 0, 1, 3 ], "size": [ 2, 2 ] }, "p": [ 0, 1 ], "q": [ 0, 1 ]} |
| symbolicEqual | Проверка символьного равенства двух выражений. | symbolicEqual('x+x', '2x') | выражение1 (строка или Node), выражение2 (строка или Node) | true |
| usolve | Решение линейной системы обратной подстановкой. | usolve([[1,2],[0,1]], [3,4]) | U (Array или Matrix), b (Array или Matrix) | [ [ -5 ], [ 4 ]] |
| usolveAll | Все решения линейной системы обратной подстановкой. | usolveAll([[1,2],[0,1]], [3,4]) | U (Array или Matrix), b (Array или Matrix) | [ [ [ -5 ], [ 4 ] ]] |
#Арифметика
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| abs | Модуль числа. | abs(-3.2) | x (number, Complex, Array или Matrix) | 3.2 |
| add | Сумма двух и более значений (x + y). | add(2, 3) | x, y, … (number, Array или Matrix) | 5 |
| cbrt | Кубический корень; при необходимости все кубические корни. | cbrt(8) | x (number или Complex), allRoots (boolean, необяз.) | 2 |
| ceil | Округление к +∞ (для Complex — по частям). | ceil(3.2) | x (number, Complex, Array или Matrix) | 4 |
| cube | Куб значения (x·x·x). | cube(3) | x (number, Complex, Array или Matrix) | 27 |
| divide | Деление (x / y). | divide(6, 2) | x (number, Array или Matrix), y (number, Array или Matrix) | 3 |
| dotDivide | Покомпонентное деление массивов или матриц. | dotDivide([6,8],[2,4]) | x (Array или Matrix), y (Array или Matrix) | [ 3, 2] |
| dotMultiply | Покомпонентное умножение массивов или матриц. | dotMultiply([2,3],[4,5]) | x (Array или Matrix), y (Array или Matrix) | [ 8, 15] |
| dotPow | Покомпонентное x^y. | dotPow([2,3],[2,3]) | x (Array или Matrix), y (Array или Matrix) | [ 4, 27] |
| exp | e^x. | exp(1) | x (number, Complex, Array или Matrix) | 2.718281828459045 |
| expm1 | e^x − 1. | expm1(1) | x (number или Complex) | 1.718281828459045 |
| fix | Округление к нулю (отсечение дробной части). | fix(3.7) | x (number, Complex, Array или Matrix) | 3 |
| floor | Округление к −∞. | floor(3.7) | x (number, Complex, Array или Matrix) | 3 |
| gcd | Наибольший общий делитель двух и более чисел. | gcd(8, 12) | a, b, … (number или BigNumber) | 4 |
| hypot | √(сумма квадратов аргументов) (евклидова норма). | hypot(3, 4) | a, b, … (number или BigNumber) | 5 |
| invmod | Мультипликативное обратное по модулю: a⁻¹ (mod b). | invmod(3, 11) | a, b (number или BigNumber) | 4 |
| lcm | Наименьшее общее кратное двух и более чисел. | lcm(4, 6) | a, b, … (number или BigNumber) | 12 |
| log | Логарифм с необязательным основанием. | log(100, 10) | x (number или Complex), base (number или Complex, необяз.) | 2 |
| log10 | Десятичный логарифм. | log10(100) | x (number или Complex) | 2 |
| log1p | ln(1 + x). | log1p(1) | x (number или Complex) | 0.6931471805599453 |
| log2 | Двоичный логарифм. | log2(8) | x (number или Complex) | 3 |
| mod | Остаток от деления x на y (x mod y). | mod(8,3) | x, y (number или BigNumber) | 2 |
| multiply | Произведение двух и более значений (x · y). | multiply(2, 3) | x, y, … (number, Array или Matrix) | 6 |
| norm | Норма числа, вектора или матрицы; необязательный параметр p. | norm([3,4]) | x (Array или Matrix), p (number или string, необяз.) | 5 |
| nthRoot | Корень n-й степени (главное значение). | nthRoot(16, 4) | a (number, BigNumber или Complex), root (number, необяз.) | 2 |
| nthRoots | Все корни n-й степени числа (возможны комплексные). | nthRoots(1,3) | x (number или Complex), root (number) | [ { "mathjs": "Complex", "re": 1, "im": 0 }, { "mathjs": "Complex", "re": -0.4999999999999998, "im": 0.8660254037844387 }, { "mathjs": "Complex", "re": -0.5000000000000004, "im": -0.8660254037844384 }] |
| pow | x в степени y. | pow(2, 3) | x (number, Complex, Array или Matrix), y (number, Complex, Array или Matrix) | 8 |
| round | Округление до заданного числа десятичных знаков. | round(3.14159, 2) | x (number, Complex, Array или Matrix), n (number, необяз.) | 3.14 |
| sign | Знак числа (−1, 0 или 1). | sign(-3) | x (number, BigNumber или Complex) | -1 |
| sqrt | Квадратный корень. | sqrt(9) | x (number, Complex, Array или Matrix) | 3 |
| square | Квадрат значения (x·x). | square(3) | x (number, Complex, Array или Matrix) | 9 |
| subtract | Разность (x − y). | subtract(8, 3) | x, y (number, Array или Matrix) | 5 |
| unaryMinus | Унарный минус. | unaryMinus(3) | x (number, Complex, Array или Matrix) | -3 |
| unaryPlus | Унарный плюс (обычно без изменения значения). | unaryPlus(-3) | x (number, Complex, Array или Matrix) | -3 |
| xgcd | Расширенный наибольший общий делитель двух чисел. | xgcd(8, 12) | a, b (number или BigNumber) | { "mathjs": "DenseMatrix", "data": [ 4, -1, 1 ], "size": [ 3 ]} |
#Побитовые операции
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| bitAnd | Побитовое И (x & y). | bitAnd(5, 3) | x, y (number или BigNumber) | 1 |
| bitNot | Побитовое НЕ (~x). | bitNot(5) | x (number или BigNumber) | -6 |
| bitOr | Побитовое ИЛИ (x | y). | bitOr(5, 3) | x, y (number или BigNumber) | 7 |
| bitXor | Побитовое исключающее ИЛИ (x ^ y). | bitXor(5, 3) | x, y (number или BigNumber) | 6 |
| leftShift | Сдвиг влево на y бит (x << y). | leftShift(5, 1) | x, y (number или BigNumber) | 10 |
| rightArithShift | Арифметический сдвиг вправо (x >> y). | rightArithShift(5, 1) | x, y (number или BigNumber) | 2 |
| rightLogShift | Логический сдвиг вправо (x >>> y). | rightLogShift(5, 1) | x, y (number или BigNumber) | 2 |
#Комбинаторика
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| bellNumbers | Число разбиений n различных элементов. | bellNumbers(3) | n (number) | 5 |
| catalan | n-е число Каталана. | catalan(5) | n (number) | 42 |
| composition | Число композиций n на k частей. | composition(5, 3) | n, k (number) | 6 |
| stirlingS2 | Число Стирлинга второго рода: разбиения n меток на k непустых подмножеств. | stirlingS2(5, 3) | n, k (number) | 25 |
#Комплексные числа
| Функция | Опи сание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| arg | Аргумент (фаза) комплексного числа. | arg(complex('2 + 2i')) | x (Complex или number) | 0.785398163 |
| conj | Комплексно сопряжённое. | conj(complex('2 + 2i')) | x (Complex или number) | { "mathjs": "Complex", "re": 2, "im": -2} |
| im | Мнимая часть. | im(complex('2 + 3i')) | x (Complex или number) | 3 |
| re | Действительная часть. | re(complex('2 + 3i')) | x (Complex или number) | 2 |
#Геометрия
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| distance | Евклидово расстояние между двумя точками в N-мерном пространстве. | distance([0,0],[3,4]) | point1 (Array), point2 (Array) | 5 |
| intersect | Пересечение двух прямых (2D/3D) или прямой и плоскости (3D). | intersect([0,0],[2,2],[0,2],[2,0]) | концы отрезка 1, концы отрезка 2, … | [ 1, 1] |
#Логика
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| and | Логическое И. | and(true, false) | x, y (boolean или number) | false |
| not | Логическое НЕ. | not(true) | x (boolean или number) | false |
| or | Логическое ИЛИ. | or(true, false) | x, y (boolean или number) | true |
| xor | Исключающее ИЛИ. | xor(1, 0) | x, y (boolean или number) | true |
#Матрицы
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| column | Указанный столбец матрицы. | column([[1,2],[3,4]], 1) | value (Matrix или Array), index (number) | [ [ 1 ], [ 3 ]] |
| concat | Сцепление матриц/массивов вдоль измерения. | concat([1,2], [3,4], [5,6]) | a, b, c, … (Array или Matrix), dim (number, необяз.) | [ 1, 2, 3, 4, 5, 6] |
| count | Число элементов в матрице, массиве или строке. | count([1,2,3,'hello']) | x (Array, Matrix или string) | 4 |
| cross | Векторное произведение двух 3D-векторов. | cross([1,2,3], [4,5,6]) | x, y (Array или Matrix длины 3) | [ -3, 6, -3] |
| ctranspose | Эрмитово сопряжение (сопряжённое транспонирование). | ctranspose([[1,2],[3,4]]) | x (Matrix или Array) | [ [ 1, 3 ], [ 2, 4 ]] |
| det | Определитель матрицы. | det([[1,2],[3,4]]) | x (Matrix или Array) | -2 |
| diag | Диагональная матрица или извлечение диагонали. | diag([1,2,3]) | X (Array или Matrix) | [ [ 1, 0, 0 ], [ 0, 2, 0 ], [ 0, 0, 3 ]] |
| diff | Разности соседних элементов вдоль измерения. | diff([1,4,9,16]) | arr (Array или Matrix), dim (number, необяз.) | [ 3, 5, 7] |
| dot | Скалярное произведение векторов. | dot([1,2,3],[4,5,6]) | x, y (Array или Matrix) | 32 |
| eigs | Собственные значения и при необходимости собственные векторы. | eigs([[1,2],[3,4]]) | x (Matrix или Array), codec (number, необяз.) | { "values": [ -0.37228132326901653, 5.372281323269014 ], "eigenvectors": [ { "value": -0.37228132326901653, "vector": [ -4.505883335311908, 3.091669772938812 ] }, { "value": 5.372281323269014, "vector": [ 0.4438641329939267, 0.9703494293791691 ] } ]} |
| expm | Матричная экспонента e^A. | expm([[1,0],[0,1]]) | x (Matrix или Array) | { "mathjs": "DenseMatrix", "data": [ [ 2.7182818284590424, 0 ], [ 0, 2.7182818284590424 ] ], "size": [ 2, 2 ]} |
| fft | Быстрое преобразование Фурье (N-мерное). | fft([1,2,3,4]) | arr (Array или Matrix) | [ { "mathjs": "Complex", "re": 10, "im": 0 }, { "mathjs": "Complex", "re": -2, "im": 2 }, { "mathjs": "Complex", "re": -2, "im": 0 }, { "mathjs": "Complex", "re": -1.9999999999999998, "im": -2 }] |
| filter | (Пока не поддерживается) Фильтрация массива или одномерной матрицы функцией-предикатом. | filter(['23', 'foo', '100', '55', 'bar'], /[0-9]+/) | x (Array или Matrix), test (function) | [ "23", "100", "55"] |
| flatten | «Сплющивание» многомерной матрицы или массива в одномерный. | flatten([[1,2],[3,4]]) | x (Array или Matrix) | [ 1, 2, 3, 4] |
| forEach | (Пока не поддерживается) Обход элементов с вызовом callback. | forEach([1,2,3], val => console.log(val)) | x (Array или Matrix), callback (function) | undefined |
| getMatrixDataType | Тип данных элементов матрицы или массива (например, 'number', 'Complex'). | getMatrixDataType([[1,2.2],[3,'hello']]) | x (Array или Matrix) | mixed |
| identity | Единичная матрица n×n (или m×n). | identity(3) | n (number) или [m, n] (Array) | { "mathjs": "DenseMatrix", "data": [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ], "size": [ 3, 3 ]} |
| ifft | Обратное БПФ (N-мерное). | ifft([1,2,3,4]) | arr (Array или Matrix) | [ { "mathjs": "Complex", "re": 2.5, "im": 0 }, { "mathjs": "Complex", "re": -0.5, "im": -0.5 }, { "mathjs": "Complex", "re": -0.5, "im": 0 }, { "mathjs": "Complex", "re": -0.49999999999999994, "im": 0.5 }] |
| inv | Обратная квадратная матрица. | inv([[1,2],[3,4]]) | x (Matrix или Array) | [ [ -2, 1 ], [ 1.5, -0.5 ]] |
| kron | Произведение Кронекера двух матриц или векторов. | kron([[1,1],[0,1]], [[2,0],[0,2]]) | x, y (Matrix или Array) | [ [ 2, 0, 2, 0 ], [ 0, 2, 0, 2 ], [ 0, 0, 2, 0 ], [ 0, 0, 0, 2 ]] |
| map | Новый массив/матрица: callback к каждому элементу. | map([1,2,3], val => val * val) | x (Array или Matrix), callback (function) | [ 1, 4, 9] |
| matrixFromColumns | Векторы как столбцы плотной матрицы. | matrixFromColumns([1,4],[2,5],[3,6]) | …arr (Array или Matrix) | [ [ 1, 2, 3 ], [ 4, 5, 6 ]] |
| matrixFromFunction | (Пока не поддерживается) Матрица из значений функции по индексам. | matrixFromFunction([5], i => math.random()) | size (Array), fn (function) | a random vector |
| matrixFromRows | Векторы как строки плотной матрицы. | matrixFromRows([1,2,3],[4,5,6]) | …arr (Array или Matrix) | [ [ 1, 2, 3 ], [ 4, 5, 6 ]] |
| ones | Матрица из единиц заданной размерности. | ones(2, 3) | m, n, p… (number) | { "mathjs": "DenseMatrix", "data": [ [ 1, 1, 1 ], [ 1, 1, 1 ] ], "size": [ 2, 3 ]} |
| partitionSelect | k-й по величине элемент (разбиение). | partitionSelect([3,1,4,2], 2) | x (Array или Matrix), k (number) | 3 |
| pinv | Псевдообратная матрица Мура–Пенроуза. | pinv([[1,2],[2,4]]) | x (Matrix или Array) | [ [ 0.04000000000000001, 0.08000000000000002 ], [ 0.08000000000000002, 0.16000000000000003 ]] |
| range | Массив чисел от start до end с необязательным шагом. | range(1, 5, 2) | start (number), end (number), step (number, необяз.) | { "mathjs": "DenseMatrix", "data": [ 1, 3 ], "size": [ 2 ]} |
| reshape | Изменение формы массива/матрицы. | reshape([1,2,3,4,5,6], [2,3]) | x (Array или Matrix), sizes (Array) | [ [ 1, 2, 3 ], [ 4, 5, 6 ]] |
| resize | Новый размер; при необходимости заполнение значением по умолчанию. | resize([1,2,3], [5], 0) | x (Array или Matrix), size (Array), defaultValue (необяз.) | [ 1, 2, 3, 0, 0] |
| rotate | Поворот вектора 1×2 против часовой стрелки или 1×3 вокруг оси. | rotate([1, 0], Math.PI / 2) | w (Array или Matrix), theta (number[, axis]) | [ 6.123233995736766e-17, 1] |
| rotationMatrix | Матрица поворота 2×2 на угол в радианах. | rotationMatrix(Math.PI / 2) | theta (number) | { "mathjs": "DenseMatrix", "data": [ [ 6.123233995736766e-17, -1 ], [ 1, 6.123233995736766e-17 ] ], "size": [ 2, 2 ]} |
| row | Указанная строка матрицы. | row([[1,2],[3,4]], 1) | value (Matrix или Array), index (number) | [ [ 3, 4 ]] |
| size | Размеры (форма) матрицы, массива или скаляра. | size([[1,2,3],[4,5,6]]) | x (Array, Matrix или number) | [ 2, 3] |
| sort | Сортировка по возрастанию. | sort([3,1,2]) | x (Array или Matrix) | [ 1, 2, 3] |
| sqrtm | Главный квадратный корень из квадратной матрицы. | sqrtm([[4,0],[0,4]]) | A (Matrix или Array) | [ [ 2.000000000000002, 0 ], [ 0, 2.000000000000002 ]] |
| squeeze | Удаление единичных измерений. | squeeze([[[1],[2],[3]]]) | x (Matrix или Array) | [ 1, 2, 3] |
| subset | Получение или замена фрагмента матрицы или строки. | subset([[1, 2], [3, 4]], index(1, 1),2) | x (Matrix, Array или string), index (Index), replacement (необяз.) | [ [ 2, 2 ], [ 3, 4 ]] |
| trace | След матрицы (сумма диагонали). | trace([[1,2],[3,4]]) | x (Matrix или Array) | 5 |
| transpose | Транспонирование матрицы. | transpose([[1,2],[3,4]]) | x (Matrix или Array) | [ [ 1, 3 ], [ 2, 4 ]] |
| zeros | Нулевая матрица заданной размерности. | zeros(2, 3) | m, n, p… (number) | { "mathjs": "DenseMatrix", "data": [ [ 0, 0, 0 ], [ 0, 0, 0 ] ], "size": [ 2, 3 ]} |
#Вероятности
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| combinations | Число сочетаний: k неупорядоченных из n. | combinations(5, 2) | n (number), k (number) | 10 |
| combinationsWithRep | Сочетания с повторениями. | combinationsWithRep(5, 2) | n (number), k (number) | 15 |
| factorial | n! для целого n. | factorial(5) | n (integer) | 120 |
| gamma | Гамма-функция (приближение). | gamma(5) | n (number) | 24 |
| kldivergence | Дивергенц ия Кульбака–Лейблера между распределениями. | kldivergence([0.1, 0.9], [0.2, 0.8]) | x (Array или Matrix), y (Array или Matrix) | 0.036690014034750584 |
| lgamma | Логарифм гамма-функции. | lgamma(5) | n (number) | 3.178053830347945 |
| multinomial | Мультиномиальный коэффициент по набору счётчиков. | multinomial([1, 2, 3]) | a (Array) | 60 |
| permutations | Число размещений: k упорядоченных из n. | permutations(5, 2) | n (number), k (number, необяз.) | 20 |
| pickRandom | Случайный выбор из одномерного массива. | pickRandom([10, 20, 30]) | array | 20 |
| random | Случайное число с равномерным распределением. | random(1, 10) | min (необяз.), max (необяз.) | 3.6099423753668143 |
| randomInt | Случайное целое с равномерным распределением. | randomInt(1, 10) | min (необяз.), max (необяз.) | 5 |
#Сравнение и равенство
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| compare | Сравнение двух значений: −1, 0 или 1. | compare(2, 3) | x, y (любой тип) | -1 |
| compareNatural | Сравнение в «естественном» воспроизводимом порядке. | compareNatural('2', '10') | x, y (любой тип) | -1 |
| compareText | Лексикографическое сравнение строк. | compareText('apple', 'banana') | x (string), y (string) | -1 |
| deepEqual | Покомпонентное равенство массивов/матриц. | deepEqual([[1, 2]], [[1, 2]]) | x (Array/Matrix), y (Array/Matrix) | true |
| equal | Равенство двух значений. | equal(2, 2) | x, y (любой тип) | true |
| equalText | Точное совпадение двух строк. | equalText('hello', 'hello') | x (string), y (string) | true |
| larger | x больше y. | larger(3, 2) | x, y (number или BigNumber) | true |
| largerEq | x больше или равно y. | largerEq(3, 3) | x, y (number или BigNumber) | true |
| smaller | x меньше y. | smaller(2, 3) | x, y (number или BigNumber) | true |
| smallerEq | x меньше или равно y. | smallerEq(2, 2) | x, y (number или BigNumber) | true |
| unequal | Значения не равны. | unequal(2, 3) | x, y (любой тип) | true |
#Множества
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| setCartesian | Декартово произведение двух (или более) множеств. | setCartesian([1, 2], [3, 4]) | set1 (Array), set2 (Array) | [ [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ]] |
| setDifference | Разность множеств (в set1, но не в set2). | setDifference([1, 2, 3], [2]) | set1 (Array), set2 (Array) | [ 1, 3] |
| setDistinct | Уникальные элементы (мульти)множества. | setDistinct([1, 2, 2, 3]) | set (Array) | [ 1, 2, 3] |
| setIntersect | Пересечение двух (или более) множеств. | setIntersect([1, 2], [2, 3]) | set1 (Array), set2 (Array) | [ 2] |
| setIsSubset | Является ли set1 подмножеством set2. | setIsSubset([1, 2], [1, 2, 3]) | set1 (Array), set2 (Array) | true |
| setMultiplicity | Кратность элемента в мультимножестве. | setMultiplicity(2, [1, 2, 2, 3]) | element (любой тип), set (Array) | 2 |
| setPowerset | Булеан (все подмножества) (мульти)множества. | setPowerset([1, 2]) | set (Array) | [ [], [ 1 ], [ 2 ], [ 1, 2 ]] |
| setSize | Число элементов в (мульти)множестве. | setSize([1, 2, 3]) | set (Array) | 3 |
| setSymDifference | Симметрическая разность двух (или более) множеств. | setSymDifference([1, 2], [2, 3]) | set1 (Array), set2 (Array) | [ 1, 3] |
| setUnion | Объединение двух (или более) множеств. | setUnion([1, 2], [2, 3]) | set1 (Array), set2 (Array) | [ 1, 3, 2] |
#Специальные функции
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| erf | Функция ошибок (рациональное приближение Чебышёва). | erf(0.5) | x (number) | 0.5204998778130465 |
#Статистика
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| cumsum | Накопленная сумма по списку или матрице. | cumsum([1, 2, 3, 4]) | [ 1, 3, 6, 10] | |
| mad | Медианное абсолютное отклонение. | mad([1, 2, 3, 4]) | 1 | |
| max | Максимум списка или матрицы. | max([1, 2, 3]) | 3 | |
| mean | Среднее арифметическое. | mean([2, 4, 6]) | 4 | |
| median | Медиана. | median([1, 2, 3, 4, 5]) | 3 | |
| min | Минимум списка или матрицы. | min([1, 2, 3]) | 1 | |
| mode | Мода (наиболее частое значение). | mode([1, 2, 2, 3]) | [ 2] | |
| prod | Произведение всех чисел в списке или матрице. | prod([1, 2, 3, 4]) | 24 | |
| quantileSeq | Квантиль при вероятности prob. | quantileSeq([1, 2, 3, 4], 0.25) | 1.75 | |
| std | Стандартное отклонение. | std([1, 2, 3, 4]) | 1.2909944487358056 | |
| sum | Сумма всех чисел в списке или матрице. | sum([1, 2, 3]) | 6 | |
| variance | Дисперсия. | variance([1, 2, 3, 4]) | 1.6666666666666667 |
#Строки
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| bin | Число в двоичной записи. | bin(13) | 13 | |
| format | Значение в строку с заданной точностью. | format(123.456, 2) | 120 | |
| hex | Число в шестнадцатеричной записи. | hex(255) | 255 | |
| oct | Число в восьмеричной записи. | oct(64) | 64 | |
| Подстановка значений в шаблон строки. | print('x = $x, y = $y', {x: 3, y: 4}, 2) | x = 3, y = 4 |
#Тригонометрия
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| acos | Арккосинус. | acos(0.5) | 1.0471975511965979 | |
| acosh | Обратный гиперболический косинус. | acosh(2) | 1.3169578969248166 | |
| acot | Арккотангенс. | acot(1) | 0.7853981633974483 | |
| acoth | Обратный гиперболический котангенс. | acoth(2) | 0.5493061443340548 | |
| acsc | Арккосеканс. | acsc(2) | 0.5235987755982989 | |
| acsch | Обратный гиперболический косеканс. | acsch(2) | 0.48121182505960347 | |
| asec | Арксеканс. | asec(2) | 1.0471975511965979 | |
| asech | Обратный гиперболический секанс. | asech(0.5) | 1.3169578969248166 | |
| asin | А рксинус. | asin(0.5) | 0.5235987755982989 | |
| asinh | Обратный гиперболический синус. | asinh(1.5) | 1.1947632172871094 | |
| atan | Арктангенс. | atan(1) | 0.7853981633974483 | |
| atan2 | Арктангенс от двух аргументов. | atan2(1, 2) | 0.4636476090008061 | |
| atanh | Обратный гиперболический тангенс. | atanh(0.5) | 0.5493061443340548 | |
| cos | Косинус x. | cos(0.5) | 0.8775825618903728 | |
| cosh | Гиперболический косинус x. | cosh(0.5) | 1.1276259652063807 | |
| cot | Котангенс x. | cot(0.5) | 1.830487721712452 | |
| coth | Гиперболический котангенс x. | coth(0.5) | 2.163953413738653 | |
| csc | Косеканс x. | csc(0.5) | 2.085829642933488 | |
| csch | Гиперболический косеканс x. | csch(0.5) | 1.9190347513349437 | |
| sec | Секанс x. | sec(0.5) | 1.139493927324549 | |
| sech | Гиперболический секанс x. | sech(0.5) | 0.886818883970074 | |
| sin | Синус x. | sin(0.5) | 0.479425538604203 | |
| sinh | Гиперболический синус x. | sinh(0.5) | 0.5210953054937474 | |
| tan | Тангенс x. | tan(0.5) | 0.5463024898437905 | |
| tanh | Гиперболический тангенс x. | tanh(0.5) | 0.46211715726000974 |
#Единицы измерения
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| to | Перевод числового значения в заданную единицу. | to(unit('2 inch'), 'cm') | { "mathjs": "Unit", "value": 5.08, "unit": "cm", "fixcodefix": true} |
#Утилиты
| Функция | Описание | Пример вызова | Параметры | Ожидаемый результат |
|---|---|---|---|---|
| clone | Полное копирование значения. | clone([1, 2, 3]) | [ 1, 2, 3] | |
| hasNumericValue | Содержит ли значение числовую часть. | hasNumericValue('123') | true | |
| isInteger | Является ли значение целым. | isInteger(3.0) | true | |
| isNaN | Является ли значение NaN. | isNaN(NaN) | true | |
| isNegative | Отрицательное ли значение. | isNegative(-5) | true | |
| isNumeric | Числовое ли значение. | isNumeric('123') | false | |
| isPositive | Положительное ли значение. | isPositive(2) | true | |
| isPrime | Простое ли число. | isPrime(7) | true | |
| isZero | Равно ли нулю. | isZero(0) | true | |
| numeric | Приведение к числовому типу (number, BigNumber и т.д.). | numeric('123') | 123 | |
| typeOf | Имя типа значения. | typeOf([1, 2, 3]) | Array |

