Function | Definition | Example call | Parameters | Expected result |
---|---|---|---|---|
compile | 解析并编译表达式(负责解析,不直接返回结果)。 | compile('2 + 3') | 表达式(字符串) | {} |
evaluate | 计算表达式并返回结果。 | evaluate('2 + 3') | 表达式(字符串),作用域(可选) | 5 |
help | 检索函数或数据类型的使用说明。 | help('evaluate') | 搜索关键字(字符串) | { "name": "evaluate", "category": "Expression", "syntax": [ "evaluate(expression)", "evaluate(expression, scope)", "evaluate([expr1, expr2, expr3, ...])", "evaluate([expr1, expr2, expr3, ...], scope)" ], "description": "Evaluate an expression or an array with expressions.", "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() | 无 | {} |
Function | Definition | Example call | Parameters | Expected result |
---|---|---|---|---|
derivative | 对表达式进行求导,并指定变量。 | derivative('x^2', 'x') | 表达式(字符串或节点),变量(字符串) | { "mathjs": "OperatorNode", "op": "*", "fn": "multiply", "args": [ { "mathjs": "ConstantNode", "value": 2 }, { "mathjs": "SymbolNode", "name": "x" } ], "implicit": false, "isPercentage": false } |
leafCount | 统计表达式解析树中的叶节点数量(符号或常量)。 | leafCount('x^2 + y') | 表达式(字符串或节点) | 3 |
lsolve | 使用前向替换法求解线性方程组的一个解。 | lsolve([[1,2],[3,4]], [5,6]) | L(数组或矩阵),b(数组或矩阵) | [ [ 5 ], [ -2.25 ] ] |
lsolveAll | 使用前向替换法求解线性方程组的所有解。 | lsolveAll([[1,2],[3,4]], [5,6]) | L(数组或矩阵),b(数组或矩阵) | [ [ [ 5 ], [ -2.25 ] ] ] |
lup | 对矩阵执行部分主元LU分解。 | lup([[1,2],[3,4]]) | A(数组或矩阵) | { "L": [ [ 1, 0 ], [ 0.3333333333333333, 1 ] ], "U": [ [ 3, 4 ], [ 0, 0.6666666666666667 ] ], "p": [ 1, 0 ] } |
lusolve | 求解线性方程 A*x=b(A 为 n×n 矩阵)。 | lusolve([[1,2],[3,4]], [5,6]) | A(数组或矩阵),b(数组或矩阵) | [ [ -3.9999999999999987 ], [ 4.499999999999999 ] ] |
lyap | 求解连续时间李雅普诺夫方程 AP+PA’+Q=0。 | lyap(A, Q) | A(数组或矩阵),Q(数组或矩阵) | Error: A is not defined |
polynomialRoot | 求解多项式的数值根(可包含复数)。 | polynomialRoot(1, 2, 3, 4) | 常数项,线性系数项,... 最多到三次项(可选) | [ -0.605829586188268, { "mathjs": "Complex", "re": -0.07208520690586608, "im": -0.6383267351483765 }, { "mathjs": "Complex", "re": -0.07208520690586608, "im": 0.6383267351483765 } ] |
qr | 对矩阵执行 QR 分解。 | qr([[1,2],[3,4]]) | A(数组或矩阵) | { "Q": [ [ 0.316227766016838, 0.9486832980505138 ], [ 0.9486832980505138, -0.316227766016838 ] ], "R": [ [ 3.162277660168379, 4.427188724235731 ], [ 0, 0.6324555320336751 ] ] } |
rationalize | 将可有理化的表达式转换为有理分式。 | rationalize('1/(x+1)') | 表达式(字符串或节点) | { "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}) | 表达式(字符串或节点),作用域(对象) | { "mathjs": "OperatorNode", "op": "+", "fn": "add", "args": [ { "mathjs": "ConstantNode", "value": 2 }, { "mathjs": "ConstantNode", "value": 3 } ], "implicit": false, "isPercentage": false } |
schur | 对实数矩阵 A 执行施尔分解 A = U T U’。 | schur([[1,2],[3,4]]) | A(数组或矩阵) | { "U": [ [ 0.41597355791928425, -0.9093767091321243 ], [ 0.9093767091321244, 0.41597355791928414 ] ], "T": [ [ 5.37228132326902, -1.0000000000000002 ], [ 5.147016547482756e-118, -0.37228132326901375 ] ] } |
simplify | 简化表达式解析树(合并同类项等)。 | simplify('2x + 3x') | 表达式(字符串或节点) | { "mathjs": "OperatorNode", "op": "*", "fn": "multiply", "args": [ { "mathjs": "ConstantNode", "value": 5 }, { "mathjs": "SymbolNode", "name": "x" } ], "implicit": false, "isPercentage": false } |
simplifyConstant | 对表达式中的常量子表达式进行计算替换。 | simplifyConstant('2+3') | 表达式(字符串或节点) | { "mathjs": "ConstantNode", "value": 5 } |
simplifyCore | 单次传递(one-pass)简化表达式,多用于性能敏感场景。 | simplifyCore('x+x') | 表达式(字符串或节点) | { "mathjs": "OperatorNode", "op": "+", "fn": "add", "args": [ { "mathjs": "SymbolNode", "name": "x" }, { "mathjs": "SymbolNode", "name": "x" } ], "implicit": false, "isPercentage": false } |
slu | 以完全主元方式计算稀疏 LU 分解。 | slu([[1,2],[3,4]], 'natural', 1) | A(数组或矩阵),分解顺序(字符串),阈值(数字) | Error: Unexpected type of argument in function slu (expected: SparseMatrix, actual: Array, index: 0) |
sylvester | 求解实数Sylvester方程 AX + XB = C。 | sylvester(A, B, C) | A(数组或矩阵),B(数组或矩阵),C(数组或矩阵) | Error: A is not defined |
symbolicEqual | 检测两个表达式在符号意义上是否相等。 | symbolicEqual('x+x', '2x') | 表达式1(字符串或节点),表达式2(字符串或节点) | true |
usolve | 使用回代法求解线性方程组的一个解。 | usolve([[1,2],[0,1]], [3,4]) | U(数组或矩阵),b(数组或矩阵) | [ [ -5 ], [ 4 ] ] |
usolveAll | 使用回代法求解线性方程组的所有解。 | usolveAll([[1,2],[0,1]], [3,4]) | U(数组或矩阵),b(数组或矩阵) | [ [ [ -5 ], [ 4 ] ] ] |
Function | Definition | Example call | Parameters | Expected result |
---|---|---|---|---|
abs | 计算一个数的绝对值。 | abs(-3.2) | x(数字、复数、数组或矩阵) | 3.2 |
add | 将两个或更多数值相加(x + y)。 | add(2, 3) | x、y、…(数字、数组或矩阵) | 5 |
cbrt | 计算一个数的立方根,可选地计算所有立方根。 | cbrt(8) | x(数字或复数),allRoots(布尔,可选) | 2 |
ceil | 向正无穷方向取整(对于复数则对实部和虚部分别取整)。 | ceil(3.2) | x(数字、复数、数组或矩阵) | 4 |
cube | 计算一个数的立方 (x*x*x)。 | cube(3) | x(数字、复数、数组或矩阵) | 27 |
divide | 两个值相除 (x / y)。 | divide(6, 2) | x(数字、数组或矩阵),y(数字、数组或矩阵) | 3 |
dotDivide | 逐元素地对两个矩阵或数组执行除法。 | dotDivide([6,8],[2,4]) | x(数组或矩阵),y(数组或矩阵) | [ 3, 2 ] |
dotMultiply | 逐元素地对两个矩阵或数组执行乘法。 | dotMultiply([2,3],[4,5]) | x(数组或矩阵),y(数组或矩阵) | [ 8, 15 ] |
dotPow | 逐元素地对 x^y 求幂。 | dotPow([2,3],[2,3]) | x(数组或矩阵),y(数组或矩阵) | [ 4, 27 ] |
exp | 计算 e^x。 | exp(1) | x(数字、复数、数组或矩阵) | 2.718281828459045 |
expm1 | 计算 e^x - 1。 | expm1(1) | x(数字或复数) | 1.718281828459045 |
fix | 向零方向取整(截断)。 | fix(3.7) | x(数字、复数、数组或矩阵) | 3 |
floor | 向负无穷方向取整。 | floor(3.7) | x(数字、复数、数组或矩阵) | 3 |
gcd | 求两个或更多数的最大公约数。 | gcd(8, 12) | a, b, ...(数字或大数) | 4 |
hypot | 计算多个数的平方和的平方根(如勾股定理)。 | hypot(3, 4) | a, b, …(数字或大数) | 5 |
invmod | 计算 a 在模 b 意义下的乘法逆元。 | invmod(3, 11) | a, b(数字或大数) | 4 |
lcm | 求两个或更多数的最小公倍数。 | lcm(4, 6) | a, b, ...(数字或大数) | 12 |
log | 计算对数(可指定底)。 | log(100, 10) | x(数字或复数),base(可选,数字或复数) | 2 |
log10 | 计算一个数的 10 进制对数。 | log10(100) | x(数字或复数) | 2 |
log1p | 计算 ln(1 + x)。 | log1p(1) | x(数字或复数) | 0.6931471805599453 |
log2 | 计算一个数的 2 进制对数。 | log2(8) | x(数字或复数) | 3 |
mod | 计算 x ÷ y 的余数(x mod y)。 | mod(8,3) | x, y(数字或大数) | 2 |
multiply | 将两个或更多数值相乘(x * y)。 | multiply(2, 3) | x、y、…(数字、数组或矩阵) | 6 |
norm | 计算数字、向量或矩阵的范数,可选 p。 | norm([3,4]) | x(数组或矩阵),p(数字或字符串,可选) | 5 |
nthRoot | 计算一个数的 n 次方根(主根)。 | nthRoot(16, 4) | a(数字、大数或复数),root(可选,数字) | 2 |
nthRoots | 计算一个数的所有 n 次方根,可能包含复数解。 | nthRoots(1,3) | x(数字或复数),root(数字) | [ { "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(数字、复数、数组或矩阵),y(数字、复数、数组或矩阵) | 8 |
round | 四舍五入到指定的小数位数。 | round(3.14159, 2) | x(数字、复数、数组或矩阵),n(可选,数字) | 3.14 |
sign | 计算数值的符号(-1、0 或 1)。 | sign(-3) | x(数字、大数或复数) | -1 |
sqrt | 计算一个数的平方根。 | sqrt(9) | x(数字、复数、数组或矩阵) | 3 |
square | 计算一个数的平方 (x*x)。 | square(3) | x(数字、复数、数组或矩阵) | 9 |
subtract | 两个数相减 (x - y)。 | subtract(8, 3) | x, y(数字、数组或矩阵) | 5 |
unaryMinus | 对值执行一元负操作(取反)。 | unaryMinus(3) | x(数字、复数、数组或矩阵) | -3 |
unaryPlus | 对值执行一元加操作(通常无实际变化)。 | unaryPlus(-3) | x(数字、复数、数组或矩阵) | -3 |
xgcd | 计算两个数的扩展最大公约数。 | xgcd(8, 12) | a, b(数字或大数) | { "mathjs": "DenseMatrix", "data": [ 4, -1, 1 ], "size": [ 3 ] } |
Function | Definition | Example call | Parameters | Expected result |
---|---|---|---|---|
bitAnd | 对两个值进行按位与 (x & y)。 | bitAnd(5, 3) | x, y(数字或大数) | 1 |
bitNot | 对值执行按位取反 (~x)。 | bitNot(5) | x(数字或大数) | -6 |
bitOr | 对两个值进行按位或 (x | y)。 | bitOr(5, 3) | x, y(数字或大数) | 7 |
bitXor | 对两个值进行按位异或 (x ^ y)。 | bitXor(5, 3) | x, y(数字或大数) | 6 |
leftShift | 将 x 的二进制位左移 y 位 (x << y)。 | leftShift(5, 1) | x, y(数字或大数) | 10 |
rightArithShift | 对 x 的二进制位进行算术右移 (x >> y)。 | rightArithShift(5, 1) | x, y(数字或大数) | 2 |
rightLogShift | 对 x 的二进制位进行逻辑右移 (x >>> y)。 | rightLogShift(5, 1) | x, y(数字或大数) | 2 |
Function | Definition | Example call | Parameters | Expected result |
---|---|---|---|---|
bellNumbers | 计算 n 个互异元素的所有划分方式数量。 | bellNumbers(3) | n(数字) | 5 |
catalan | 计算 n 的卡塔兰数,对应多种组合结构计数。 | catalan(5) | n(数字) | 42 |
composition | 计算将 n 拆分成 k 部分的组合数。 | composition(5, 3) | n, k(数字) | 6 |
stirlingS2 | 计算将 n 个有标签的元素划分为 k 个非空子集的方式(第二类斯特林数)。 | stirlingS2(5, 3) | n, k(数字) | 25 |
Function | Definition | Example call | Parameters | Expected result |
---|---|---|---|---|
arg | 计算复数的幅角(相位)。 | arg('2 + 2i') | x(复数或数字) | Error: Cannot convert "2 + 2i" to a number |
conj | 计算复数的共轭。 | conj('2 + 2i') | x(复数或数字) | Error: Cannot convert "2 + 2i" to a number |
im | 获取复数的虚部。 | im('2 + 3i') | x(复数或数字) | Error: Cannot convert "2 + 3i" to a number |
re | 获取复数的实部。 | re('2 + 3i') | x(复数或数字) | Error: Cannot convert "2 + 3i" to a number |
Function | Definition | Example call | Parameters | Expected result |
---|---|---|---|---|
distance | 计算 N 维空间中两点之间的欧几里得距离。 | distance([0,0],[3,4]) | point1(数组),point2(数组) | 5 |
intersect | 求两条线(二维/三维)或一条线与一个平面(三维)的交点。 | intersect([0,0],[2,2],[0,2],[2,0]) | 直线1的起点与终点,直线2的起点与终点,... | [ 1, 1 ] |
Function | Definition | Example call | Parameters | Expected result |
---|---|---|---|---|
and | 执行逻辑与运算。 | and(true, false) | x, y(布尔值或数字) | false |
not | 执行逻辑非运算。 | not(true) | x(布尔值或数字) | false |
or | 执行逻辑或运算。 | or(true, false) | x, y(布尔值或数字) | true |
xor | 执行逻辑异或运算。 | xor(1, 0) | x, y(布尔值或数字) | true |
Function | Definition | Example call | Parameters | Expected result |
---|---|---|---|---|
apply | 沿指定轴对矩阵或数组应用函数。 | apply([[1,2],[3,4]], 1, val => val * 2) | A(数组或矩阵),dim(数字),callback(函数) | [ null, null ] |
column | 从矩阵中返回指定列。 | column([[1,2],[3,4]], 0) | value(矩阵或数组),index(数字) | [ [ 1 ], [ 3 ] ] |
concat | 沿指定维度拼接多个矩阵/数组。 | concat([1,2], [3,4], [5,6]) | a, b, c, ...(数组或矩阵),dim(数字,可选) | [ 1, 2, 3, 4, 5, 6 ] |
count | 统计矩阵、数组或字符串的元素数量。 | count([1,2,3,'hello']) | x(数组、矩阵或字符串) | 4 |
cross | 计算两个三维向量的叉积。 | cross([1,2,3], [4,5,6]) | x, y(长度为3的数组或矩阵) | [ -3, 6, -3 ] |
ctranspose | 对矩阵进行转置并取共轭。 | ctranspose([[1,2],[3,4]]) | x(矩阵或数组) | [ [ 1, 3 ], [ 2, 4 ] ] |
det | 计算矩阵的行列式。 | det([[1,2],[3,4]]) | x(矩阵或数组) | -2 |
diag | 创建对角矩阵或提取矩阵的对角线。 | diag([1,2,3]) | X(数组或矩阵) | [ [ 1, 0, 0 ], [ 0, 2, 0 ], [ 0, 0, 3 ] ] |
diff | 计算指定维度上相邻元素之间的差值。 | diff([1,4,9,16]) | arr(数组或矩阵),dim(数字,可选) | [ 3, 5, 7 ] |
dot | 计算两个向量的点积。 | dot([1,2,3],[4,5,6]) | x, y(数组或矩阵) | 32 |
eigs |