函数参考 #
核心函数 #
| Function | Description |
|---|---|
| math.config(config: Object): Object | 为 math.js 设置配置选项。 |
| math.import(object, override) | 从对象或模块导入函数。 |
| math.typed(name, signatures) : function | 创建一个 typed-function,它会检查参数的类型,并可以将它们与多个提供的签名进行匹配。 |
构造函数 #
| Function | Description |
|---|---|
| math.bigint(value) | 创建一个 bigint 或将字符串、布尔值或单位转换为 bigint。 |
| math.bignumber(x) | 创建一个 BigNumber,它可以存储任意精度的数字。 |
| math.boolean(x) | 创建一个布尔值或将字符串或数字转换为布尔值。 |
| math.chain(value) | 将任何值包装在链式调用中,允许对该值执行链式操作。 |
| math.complex(re, im) | 创建一个复数值或将一个值转换为复数值。 |
| math.createUnit(units) | 创建一个用户定义的单位并将其注册到 Unit 类型。 |
| math.fraction(value) | 创建一个分数或将一个值转换为分数。 |
| math.index(range1, range2, …) | 创建一个索引。 |
| math.matrix(x) | 创建一个 Matrix。 |
| math.number(value) | 创建一个数字或将字符串、布尔值或单位转换为数字。 |
| math.sparse(x) | 创建一个 Sparse Matrix。 |
| math.splitUnit(unit, parts) | 将一个单位拆分成一个单位数组,这些单位的总和等于原始单位。 |
| math.string(value) | 创建一个字符串或将任何对象转换为字符串。 |
| math.unit(x) | 创建一个单位。 |
表达式函数 #
| Function | Description |
|---|---|
| math.compile(expr) | 解析并编译表达式。 |
| math.evaluate(expr [, scope]) | 求值表达式。 |
| math.help(search) | 检索有关函数或数据类型的帮助。 |
| math.parse(expr [, scope]) | 解析表达式。 |
| math.parser() | 创建一个 `math. |
代数函数 #
| Function | Description |
|---|---|
| math.derivative(expr, variable) | 计算解析器节点表示的表达式的导数。 |
| math.leafCount(expr) | 给出给定表达式解析树中的“叶节点”数量。叶节点是没有子表达式的节点,本质上是符号或常量。 |
| math.lsolve(L, b) | 通过前向替换找到线性方程组的一个解。 |
| math.lsolveAll(L, b) | 通过前向替换找到线性方程组的所有解。 |
| math.lup(A) | 使用部分主元计算矩阵 LU 分解。 |
| math.lusolve(A, b) | 求解线性系统 A * x = b,其中 A 是一个 [n x n] 矩阵,b 是一个 [n] 列向量。 |
| math.lyap(A, Q) | 求解连续时间 Lyapunov 方程 AP+PA’+Q=0 中的 P,其中 Q 是输入矩阵。 |
| math.polynomialRoot(constant, linearCoeff, quadraticCoeff, cubicCoeff) | 找到具有实数或复数系数的多项式的不同根的数值。 |
| math.qr(A) | 计算矩阵 QR 分解。 |
| math.rationalize(expr) | 将可有理化的表达式转换为有理分数。 |
| math.resolve(expr, scope) | resolve(expr, scope) 将变量节点替换为其作用域值。 |
| math.schur(A) | 对实数矩阵 A 进行实数 Schur 分解 A = UTU',其中 U 是正交矩阵,T 是上拟三角形矩阵。 |
| math.simplify(expr) | 简化表达式树。 |
| math.simplifyConstant(expr) | simplifyConstant() 接受一个 mathjs 表达式(可以是表示解析树的 Node,也可以是字符串,它会被解析以生成一个节点),并用该子表达式的计算值替换其完全由常量组成的任何子表达式。 |
| math.simplifyCore(expr) | simplifyCore() 执行单次简化,适用于需要极致性能的应用。 |
| math.slu(A, order, threshold) | 使用完全主元计算稀疏矩阵 LU 分解。 |
| math.sylvester(A, B, C) | 求解实值 Sylvester 方程 AX+XB=C 中的 X,其中 A、B 和 C 是尺寸合适的矩阵,A 和 B 是方阵。 |
| math.symbolicEqual(expr1, expr2) | 尝试确定两个表达式是否在符号上相等,即。 |
| math.usolve(U, b) | 通过后向替换找到线性方程组的一个解。 |
| math.usolveAll(U, b) | 通过后向替换找到线性方程组的所有解。 |
算术函数 #
| Function | Description |
|---|---|
| math.abs(x) | 计算数字的绝对值。 |
| math.add(x, y) | 将两个或多个值相加,x + y。 |
| math.cbrt(x [, allRoots]) | 计算一个值的立方根。 |
| math.ceil(x) | 将值向上取整到正无穷大。如果 x 是复数,则实部和虚部都向上取整到正无穷大。 |
| math.cube(x) | 计算一个值的立方,x * x * x。 |
| math.divide(x, y) | 将两个值相除,x / y。 |
| math.dotDivide(x, y) | 逐元素地除以两个矩阵。 |
| math.dotMultiply(x, y) | 逐元素地乘以两个矩阵。 |
| math.dotPow(x, y) | 逐元素地计算 x 的 y 次幂。 |
| math.exp(x) | 计算一个值的指数。 |
| math.expm1(x) | 计算指数值减 1 的值。 |
| math.fix(x) | 将值向零取整。 |
| math.floor(x) | 将值向下取整到负无穷大。 |
| math.gcd(a, b) | 计算两个或多个值或数组的最大公约数。 |
| math.hypot(a, b, …) | 计算一组值的斜边。 |
| math.invmod(a, b) | 计算 a 模 b 的(模)乘法逆。 |
| math.lcm(a, b) | 计算两个或多个值或数组的最小公倍数。 |
| math.log(x [, base]) | 计算一个值的对数。 |
| math.log10(x) | 计算一个值的 10 为底的对数。 |
| math.log1p(x) | 计算 value+1 的对数。 |
| math.log2(x) | 计算一个值的 2 为底的对数。 |
| math.mod(x, y) | 计算模,即整数除法的余数。 |
| math.multiply(x, y) | 将两个或多个值相乘,x * y。 |
| math.norm(x [, p]) | 计算数字、向量或矩阵的范数。 |
| math.nthRoot(a) | 计算一个值的 n 次根。 |
| math.nthRoots(x) | 计算一个值的 n 次根。 |
| math.pow(x, y) | 计算 x 的 y 次幂,x ^ y。 |
| math.round(x [, n]) | 将值四舍五入到最近的整数。 |
| math.sign(x) | 计算值的符号。 |
| math.sqrt(x) | 计算一个值的平方根。 |
| math.square(x) | 计算一个值的平方,x * x。 |
| math.subtract(x, y) | 将两个值相减,x - y。 |
| math.unaryMinus(x) | 反转值的符号,应用一元负运算。 |
| math.unaryPlus(x) | 一元加运算。 |
| math.xgcd(a, b) | 计算两个值的扩展欧几里得公约数。 |
位函数 #
| Function | Description |
|---|---|
| math.bitAnd(x, y) | 对两个值进行按位 AND 运算,x & y。 |
| math.bitNot(x) | 对值进行按位 NOT 运算,~x。 |
| math.bitOr(x, y) | 对两个值进行按位 OR 运算,x | y。 |
| math.bitXor(x, y) | 对两个值进行按位 XOR 运算,x ^ y。 |
| math.leftShift(x, y) | 将值 x 向左逻辑移位 y 位,x << y。 |
| math.rightArithShift(x, y) | 将值 x 向右算术移位 y 位,x >> y。 |
| math.rightLogShift(x, y) | 将值 x 向右逻辑移位 y 位,x >>> y。 |
组合数学函数 #
| Function | Description |
|---|---|
| math.bellNumbers(n) | 贝尔数计算一个集合的划分数量。 |
| math.catalan(n) | 卡特兰数枚举了许多不同类型的组合结构。 |
| math.composition(n, k) | 组合数计算 n 的 k 个部分。 |
| math.stirlingS2(n, k) | 第二类斯特林数,计算将 n 个有标签对象划分为 k 个非空无标签子集的方法数。 |
复数函数 #
| Function | Description |
|---|---|
| math.arg(x) | 计算复数的辐角。 |
| math.conj(x) | 计算复数的复共轭。 |
| math.im(x) | 获取复数的虚部。 |
| math.re(x) | 获取复数的实部。 |
几何函数 #
| Function | Description |
|---|---|
| math.distance([x1,y1], [x2,y2]) | 计算:N 维空间中两点之间的欧几里得距离。 |
| math.intersect(endPoint1Line1, endPoint2Line1, endPoint1Line2, endPoint2Line2) | 计算二维或三维空间中两条线的交点,以及三维空间中一条线和一个平面的交点。 |
逻辑函数 #
| Function | Description |
|---|---|
| math.and(x, y) | 逻辑 and。 |
| math.not(x) | 逻辑 not。 |
| math.nullish(x, y) | Nullish coalescing operator (??)。 |
| math.or(x, y) | 逻辑 or。 |
| math.xor(x, y) | 逻辑 xor。 |
矩阵函数 #
| Function | Description |
|---|---|
| math.column(value, index) | 从 Matrix 返回一列。 |
| math.concat(a, b, c, … [, dim]) | 连接两个或多个矩阵。 |
| math.count(x) | 计算矩阵、数组或字符串的元素数量。 |
| math.cross(x, y) | 计算三维空间中两个向量的叉积。 |
| math.ctranspose(x) | 转置并共轭复数矩阵。 |
| math.det(x) | 计算矩阵的行列式。 |
| math.diag(X) | 创建对角矩阵或检索矩阵的对角线。当 x 是向量时,将返回一个在对角线上带有向量 x 的矩阵。 |
| math.diff(arr) | 创建一个新的矩阵或数组,包含给定数组元素之间的差值。可选的 dim 参数允许您指定要计算差值的维度。如果未传递维度参数,则假定为维度 0。维度在 JavaScript 中为零基,在解析器中为一基,可以是数字或 bignumber。数组必须是“矩形的”,例如 [1, 2]。如果传递的是矩阵,则返回矩阵,否则所有矩阵都转换为数组。 |
| math.dot(x, y) | 计算两个向量的点积。 |
| math.eigs(x, [prec]) | 计算方阵的特征值,可选特征向量。 |
| math.expm(x) | 计算矩阵指数,expm(A) = e^A。 |
| math.fft(arr) | 计算 N 维傅里叶变换。 |
| math.filter(x, test) | 过滤数组或一维矩阵中的项。 |
| math.flatten(x) | 将多维矩阵展平成一维矩阵。 |
| math.forEach(x, callback) | 迭代矩阵/数组的所有元素,并执行给定的回调函数。 |
| math.getMatrixDataType(x) | 查找矩阵或数组中所有元素的类型,例如,如果所有项都是数字,则为“number”,如果所有值都是复数,则为“Complex”。 |
| math.identity(n) | 创建一个 m x n 或 n x n 的二维单位矩阵。 |
| math.ifft(arr) | 计算 N 维傅里叶逆变换。 |
| math.inv(x) | 计算方阵的逆。 |
| math.kron(x, y) | 计算两个矩阵或向量的克罗内克积。 |
| math.map(x, callback) | 创建一个新的矩阵或数组,其中包含在给定矩阵/数组的每个条目上执行的回调函数的结果。 |
| math.mapSlices(A, dim, callback) | 沿矩阵或数组的给定轴应用一个将数组映射到标量的函数。 |
| math.matrixFromColumns(…arr) | 从向量作为单独的列创建密集矩阵。 |
| math.matrixFromFunction(size, fn) | 通过在每个索引处评估生成函数来创建矩阵。 |
| math.matrixFromRows(…arr) | 从向量作为单独的行创建密集矩阵。 |
| math.ones(m, n, p, …) | 创建一个填充了 1 的矩阵。 |
| math.partitionSelect(x, k) | 基于分区的数组或一维矩阵选择。 |
| math.pinv(x) | 计算矩阵的摩尔-彭罗斯逆。 |
| math.range(start, end [, step]) | 创建一个包含值范围的矩阵或数组。 |
| math.reshape(x, sizes) | 重塑多维数组以适应指定的维度。 |
| math.resize(x, size [, defaultValue]) | 调整矩阵大小。 |
| math.rotate(w, theta) | 将 1x2 向量逆时针旋转给定的角度。将 1x3 向量逆时针旋转给定的角度,绕给定的轴。 |
| math.rotationMatrix(theta) | 为给定的角度(以弧度为单位)创建一个二维逆时针旋转矩阵(2x2)。 |
| math.row(value, index) | 从 Matrix 返回一行。 |
| math.size(x) | 计算矩阵或标量的大小。 |
| math.sort(x) | 对矩阵中的项进行排序。 |
| math.sqrtm(A) | 计算方阵的主平方根。 |
| math.squeeze(x) | 挤压矩阵,移除矩阵的内部和外部单例维度。 |
| math.subset(x, index [, replacement]) | 获取或设置矩阵或字符串的子集。 |
| math.trace(x) | 计算矩阵的迹:方阵主对角线上的元素之和。 |
| math.transpose(x) | 转置矩阵。 |
| math.zeros(m, n, p, …) | 创建一个填充了 0 的矩阵。 |
数值函数 #
| Function | Description |
|---|---|
| math.solveODE(func, tspan, y0) | 常微分方程的数值积分。提供两种可变步长方法:- “RK23”:Bogacki–Shampine 方法 - “RK45”:Dormand-Prince 方法 RK5(4)7M(默认)。参数预期如下。 |
概率函数 #
| Function | Description |
|---|---|
| math.bernoulli(n) | 返回第 n 个伯努利数,对于正整数 n。 |
| math.combinations(n, k) | 计算从 n 个可能性中选择 k 个无序结果的方法数。 |
| math.combinationsWithRep(n, k) | 计算从 n 个可能性中选择 k 个无序结果的方法数,允许单个结果重复多次。 |
| math.factorial(n) | 计算值的阶乘。阶乘只支持整数作为参数。 |
| math.gamma(n) | 使用 Lanczos 近似法计算小值的伽马函数,并使用扩展的斯特林近似法计算大值。 |
| math.kldivergence(x, y) | 计算两个分布之间的 Kullback-Leibler (KL) 散度。 |
| math.lgamma(n) | 对于实数、正数和复数,使用 Lanczos 近似法计算伽马函数的对数,对于数字使用 Lanczos 近似法,对于复数使用 Stirling 级数。 |
| math.multinomial(a) | 多项式系数计算选择 a1, a2, ... 的方法数。 |
| math.permutations(n [, k]) | 计算从 n 个元素的集合中获取一个有序的 k 个元素的子集的方法数。 |
| math.pickRandom(array) | 从一维数组中随机选择一个或多个值。 |
| math.random([min, max]) | 使用均匀分布返回一个大于或等于 min 且小于 max 的随机数。 |
| math.randomInt([min, max]) | 使用均匀分布返回一个大于或等于 min 且小于 max 的随机整数。 |
关系函数 #
| Function | Description |
|---|---|
| math.compare(x, y) | 比较两个值。 |
| math.compareNatural(x, y) | 以确定性的、自然的方式比较任何类型的两个值。 |
| math.compareText(x, y) | 按字母顺序比较两个字符串。 |
| math.deepEqual(x, y) | 逐元素测试两个矩阵是否相等。 |
| math.equal(x, y) | 测试两个值是否相等。 |
| math.equalText(x, y) | 检查两个字符串是否相等。 |
| math.larger(x, y) | 测试值 x 是否大于 y。 |
| math.largerEq(x, y) | 测试值 x 是否大于或等于 y。 |
| math.smaller(x, y) | 测试值 x 是否小于 y。 |
| math.smallerEq(x, y) | 测试值 x 是否小于或等于 y。 |
| math.unequal(x, y) | 测试两个值是否不相等。 |
集合函数 #
| Function | Description |
|---|---|
| math.setCartesian(set1, set2) | 创建两个(多)集合的笛卡尔积。 |
| math.setDifference(set1, set2) | 创建两个(多)集合的差集:set1 中的每个元素,但不是 set2 中的元素。 |
| math.setDistinct(set) | 收集多重集中的不同元素。 |
| math.setIntersect(set1, set2) | 创建两个(多)集合的交集。 |
| math.setIsSubset(set1, set2) | 检查一个(多)集合是否是另一个(多)集合的子集。 |
| math.setMultiplicity(element, set) | 计算一个元素在多重集中的重数。 |
| math.setPowerset(set) | 创建(多)集合的幂集。 |
| math.setSize(set) | 计算(多)集合的元素数量。 |
| math.setSymDifference(set1, set2) | 创建两个(多)集合的对称差集。 |
| math.setUnion(set1, set2) | 创建两个(多)集合的并集。 |
信号函数 #
| Function | Description |
|---|---|
| math.freqz(b, a) | 给定滤波器的分子和分母系数,计算其频率响应。 |
| math.zpk2tf(z, p, k) | 计算零极点增益模型的传递函数。 |
特殊函数 #
| Function | Description |
|---|---|
| math.erf(x) | 使用 Chebyshev 有理逼近法计算 erf 函数,适用于 x 的不同区间。 |
| math.zeta(n) | 使用黎曼函数方程,通过对整个复平面使用无穷级数来计算黎曼 Zeta 函数。 |
统计函数 #
| Function | Description |
|---|---|
| math.corr(A, B) | 计算两组值之间的相关系数。对于矩阵,则计算矩阵相关系数。 |
| math.cumsum(a, b, c, …) | 计算矩阵或一组值的累积和。 |
| math.mad(a, b, c, …) | 计算矩阵或一组值的平均绝对偏差。 |
| math.max(a, b, c, …) | 计算矩阵或一组值的最大值。 |
| math.mean(a, b, c, …) | 计算矩阵或一组值的平均值。 |
| math.median(a, b, c, …) | 计算矩阵或一组值的中位数。 |
| math.min(a, b, c, …) | 计算矩阵或一组值的最小值。 |
| math.mode(a, b, c, …) | 计算一组数字或一组值(数字或字符)的众数。 |
| math.prod(a, b, c, …) | 计算矩阵或一组值的乘积。 |
| math.quantileSeq(A, prob[, sorted]) | 计算矩阵或一组值的 prob 阶分位数。 |
| math.std(a, b, c, …) | 计算矩阵或一组值的标准差。 |
| math.sum(a, b, c, …) | 计算矩阵或一组值的总和。 |
| math.variance(a, b, c, …) | 计算矩阵或一组值的方差。 |
字符串函数 #
| Function | Description |
|---|---|
| math.bin(value) | 将数字格式化为二进制。 |
| math.format(value [, precision]) | 将任何类型的值格式化为字符串。 |
| math.hex(value) | 将数字格式化为十六进制。 |
| math.oct(value) | 将数字格式化为八进制。 |
| math.print(template, values [, precision]) | 将值插入字符串模板。 |
三角函数 #
| Function | Description |
|---|---|
| math.acos(x) | 计算值的反余弦。 |
| math.acosh(x) | 计算反双曲余弦,定义为 acosh(x) = ln(sqrt(x^2 - 1) + x)。 |
| math.acot(x) | 计算反余切,定义为 acot(x) = atan(1/x)。 |
| math.acoth(x) | 计算反双曲余切,定义为 acoth(x) = atanh(1/x) = (ln((x+1)/x) + ln(x/(x-1))) / 2。 |
| math.acsc(x) | 计算反余割,定义为 acsc(x) = asin(1/x)。 |
| math.acsch(x) | 计算反双曲余割,定义为 acsch(x) = asinh(1/x) = ln(1/x + sqrt(1/x^2 + 1))。 |
| math.asec(x) | 计算反正割。 |
| math.asech(x) | 计算反双曲正割,定义为 asech(x) = acosh(1/x) = ln(sqrt(1/x^2 - 1) + 1/x)。 |
| math.asin(x) | 计算值的反正弦。 |
| math.asinh(x) | 计算反双曲正弦,定义为 asinh(x) = ln(x + sqrt(x^2 + 1))。 |
| math.atan(x) | 计算值的反正切。 |
| math.atan2(y, x) | 计算带有两个参数的反正切函数,y/x。 |
| math.atanh(x) | 计算反双曲正切,定义为 atanh(x) = ln((1 + x)/(1 - x)) / 2。 |
| math.cos(x) | 计算值的余弦。 |
| math.cosh(x) | 计算双曲余弦,定义为 cosh(x) = 1/2 * (exp(x) + exp(-x))。 |
| math.cot(x) | 计算值的余切。 |
| math.coth(x) | 计算双曲余切,定义为 coth(x) = 1 / tanh(x)。 |
| math.csc(x) | 计算余割,定义为 csc(x) = 1/sin(x)。 |
| math.csch(x) | 计算双曲余割,定义为 csch(x) = 1 / sinh(x)。 |
| math.sec(x) | 计算正割,定义为 sec(x) = 1/cos(x)。 |
| math.sech(x) | 计算双曲正割,定义为 sech(x) = 1 / cosh(x)。 |
| math.sin(x) | 计算值的正弦。 |
| math.sinh(x) | 计算双曲正弦,定义为 sinh(x) = 1/2 * (exp(x) - exp(-x))。 |
| math.tan(x) | 计算值的正切。 |
| math.tanh(x) | 计算双曲正切,定义为 tanh(x) = (exp(2 * x) - 1) / (exp(2 * x) + 1)。 |
单位函数 #
| Function | Description |
|---|---|
| math.to(x, unit) | 更改值的单位。 |
| math.toBest(unit) | 将单位转换为最合适的显示单位。 |
工具函数 #
| Function | Description |
|---|---|
| math.clone(x) | 克隆一个对象。 |
| math.hasNumericValue(x) | 测试一个值是否为数字值。 |
| math.isBounded(x) | 测试一个值是否有限制。 |
| math.isFinite(x) | 测试一个值是否为有限。 |
| math.isInteger(x) | 测试一个值是否为整数。 |
| math.isNaN(x) | 测试一个值是否为 NaN(非数字)。 |
| math.isNegative(x) | 测试一个值是否为负数:小于零。 |
| math.isNumeric(x) | 测试一个值是否为数字值。 |
| math.isPositive(x) | 测试一个值是否为正数:大于零。 |
| math.isPrime(x) | 测试一个值是否为质数:除了自身和 1 之外没有其他约数。 |
| math.isZero(x) | 测试一个值是否为零。 |
| math.numeric(x) | 将数字输入转换为特定的数字类型:number、BigNumber、bigint 或 Fraction。 |
| math.typeOf(x) | 确定实体的类型。 |