| 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 |