Библиотека 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 ] ]]
lupLU-разложение с частичным выбором главного элемента.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 ]]
qrQR-разложение матрицы.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]
expe^x.exp(1)x (number, Complex, Array или Matrix)2.718281828459045
expm1e^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
log1pln(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 }]
powx в степени 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
catalann-е число Каталана.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 ]}
partitionSelectk-й по величине элемент (разбиение).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
factorialn! для целого 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])array20
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
largerx больше y.larger(3, 2)x, y (number или BigNumber)true
largerEqx больше или равно y.largerEq(3, 3)x, y (number или BigNumber)true
smallerx меньше y.smaller(2, 3)x, y (number или BigNumber)true
smallerEqx меньше или равно 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Подстановка значений в шаблон строки.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