# @danielsimonjr/mathts-functions 中文文档

规范地址：https://npmcn.com/package/%40danielsimonjr/mathts-functions/

版本：0\.83\.0
npm 元数据更新时间：2026-11-11T10:04:39.381Z
中文译文更新时间：2026-11-11T10:35:29.931Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40danielsimonjr/mathts-functions
原文对照：https://npmcn.com/package/%40danielsimonjr/mathts-functions/?lang=original
项目主页：https://github.com/danielsimonjr/MathTS#readme
源码仓库：https://github.com/danielsimonjr/MathTS

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：3.9 MB，1103 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：14 个
- 首次发布：2026-04-05T04:51:35.277Z
- 最新版本发布：2026-11-11T10:04:39.058Z
- 近 30 天下载量：7009（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：132（近 12 个月 132 个）

## 中文简介

MathTS的数学函数 - 算术,代数,三角学,统计学等

## 安装

```sh
npm install @danielsimonjr/mathts-functions
```

也可以使用：`pnpm add @danielsimonjr/mathts-functions`、`yarn add @danielsimonjr/mathts-functions`、`bun add @danielsimonjr/mathts-functions`

## README

# @danielsimonjr/ mathts-函数

用于 [数学](https://github.com/danielsimonjr/mathts)。 。 。 .

MathTS的数学函数库——算术,三角学,代数,统计学,信号处理等等——通过打字功能通过数字/复杂/分数/大数/矩阵发送多态.

## 安装

```sh
npm install @danielsimonjr/mathts-functions
```

## 它提供的东西

-   数以百计的被键入函数( A)`add`, (中文(简体) ), `sin`, (中文(简体) ), `svd`\-意识到行动, `parallelFFT`(中文(简体) ).
-   窃听器 `parse` 编号 : `evaluate` 在完全激活的数学范围.
-   `scalar` 编号 : `evaluateScalar` 评估被打成平板树(`+ - * / ^`, (中文(简体) ), `ln` • 自然 `log`, (中文(简体) ), `log` → `log10`,而另一个scalar呼叫。 公式字符串被拒绝 . `compileScalar` 评估同一树 `Float64Array` 列并标记行无效 `evaluateScalar` 会扔出. `compileScalarGradient` 重用磁带以返回每行精确的qqf/qx参数. `fitScalarParameters` 这些常数与数据通过 `levenbergMarquardt`, (中文(简体) ), `bfgs`,或 `nelderMead` (以可选的界限进行多重起搜索).
-   `levenbergMarquardt` 接受可选分析 `jacobian` 内 `LMOptions`; 默认值仍为前向偏差 `numericJacobian`. Stiff (英语) `solveODE`, (中文(简体) ), `solveDAE`,以及 `solveBVP` 使用相同的帮助( 前置差异; ODE/ DAE 使用) `step: { rel: 1e-7, floor: 1e-8 }`,BVP射击用途 `h: 1e-7`) (中文(简体) ).
-   `minimize` (奈德尔-米德) `nelderMead` 具有绝对简单音阶; `nelderMead` 保存相对默认值 `fitScalarParameters`。 。 。 .
-   `scalarToNode` 编号 : `nodeToScalar` 编号 : `simplifyScalar` 编号 : `scalarToTex` —— 在平面树和有线表达式节点之间转换(无公式字符串); `simplifyScalar` 使用同样的 `simplify` 作为表达语言.
-   `paretoFront` 编号 : `scoreFront` 编号 : `selectFrontModel` - 名人堂,每复杂,日志损失得分,以及 `accuracy` 编号 : `score` 编号 : `best` 选择.
-   `frontToLatexTable` 编号 : `frontToJson` ——导出得分前锋(M15). `frontToLatexTable(scored, { precision })` 写一个 `tabular` 包含列复杂度、损失、分数、方程和标题行;损失和分数为 `toPrecision(precision)` 文本 (默认 6, 从 1 到 100 的整数), a `null` 得分(线性损失尺度)是一个空单元格,每个等式单元格都是 `scalarToTex` 内部 `$…$` 因为a `tabular` 单元格是文本模式和 `\cdot`, (中文(简体) ), `\frac` 财务报告和审定财务报表 `\sin` 需要数学模式(无限分数是) `$\infty$`) (中文(简体) ). `frontToJson(scored)` 返回时 `{ schemaVersion: 1, rows: [{ complexity, loss, score, key, tex }] }` 与 `key` =: `scalarCanonicalKey(item)` 财务报告和审定财务报表 `tex` =: `scalarToTex(item)`; 非无限 `loss` 或者说 `score` 是字符串 `'Infinity'`, (中文(简体) ), `'-Infinity'` 或者说 `'NaN'`,因此报告存活下来 `JSON.stringify` 财务报告和审定财务报表 `JSON.parse` (准确的合适分数) `Infinity`,以及 `JSON` 会变成线性尺度的 `null`) (中文(简体) ). 非无限复杂 `RangeError`。 。 。 .
-   `inferScalarDimension` 编号 : `solveParameterDimensions` - 精确的斜角树的 SI 维度 `Fraction` 在线 `SiDimensionVector` (单位:千美元)`[L,M,T,I,Θ,N,J]`),或用失效节点路径标明的4起侵犯事件之一(`add-mismatch`, (中文(简体) ), `transcendental-arg-not-dimensionless`, (中文(简体) ), `non-literal-exponent-on-dimensional-base`, (中文(简体) ), `unknown-symbol`) (中文(简体) ). `solveParameterDimensions` 从树所暗示的等式中解决每个未知的已安装参数的尺寸(`+` 演义同意,超凡的论据是无维的,根等同 `target`),准确通过 `rationalNullspace`; 返回时 `solved`, (中文(简体) ), `underdetermined`,或 `inconsistent`。 。 。 .
-   `weightedMutation` 编号 : `mutateConstant` 编号 : `mutateOperator` 编号 : `mutateFeature` 编号 : `swapOperands` 编号 : `addNode` 编号 : `insertNode` 编号 : `deleteNode` 编号 : `rotateTree` 编号 : `randomizeTree` 编号 : `simplifyConstants` 编号 : `identityMutation` 编号 : `crossoverSubtrees` - 变异操作员在一棵树上。 每一个都要 `(node, rng, ctx)` 带有 `SeededRng` 财务报告和审定财务报表 `ctx = { grammar, perturbationFactor, temperature }`,永不更改输入,并返回 `null` 当突变不适用或结果失败时 `scalarGrammarAccepts`。 。 。 . `weightedMutation(weights?)` 选择一个操作员 `DEFAULT_MUTATION_WEIGHTS` (总结为8.512392). 身份操作员被命名 `identityMutation` 因为 `identity` 是此包的矩阵身份导出;其权重键仍然是 `identity`。 。 。 .
-   `searchScalars` ——在平板树上进行进化式搜索,即: `SearchProgress` 返回一个 `ScalarSearchResult`由锦标赛选拔和 `weightedMutation`; 开始于 `seeds` 加上最小的树木 `enumerateScalars` (两者均由 `scalarGrammarAccepts` 然后,当设置, `grammar.admit`; 拒绝的种子被跳过, 拒绝的突变是失败的尝试), refuse `parameters` 树的概率 `optimizeProbability` (单位:千美元)`fitScalarParameters`并保持一个名人堂 其Pareto的正面报道通过 `paretoFront` 编号 : `scoreFront` (单位:千美元)`modelSelection` 添加 `selectFrontModel`· ; `bestLossFactor` 联合国 `bestLossFactor` 何时 `modelSelection` 设置,默认为1.5). `crossoverProbability` 默认为 `0` (没有硬币,只有变异). 上层 `0` 每一个后代都可能 `crossoverSubtrees` 继承的参数是第一任父母的. `admit` 必须是节点的纯函数;搜索不会复制。 损失是指默认的平方差错之和( E)`loss: 'l2'`页:1 `loss` 改为 `'l1'` 或者说 `'huber'` 大厅和每一间修道院都使用同样的损失 `fitScalarParameters`可选 `rowWeights` (一个有限 `>= 0` 每行重量)适用于两者. 可选 `fit` 对象被转发到 `fitScalarParameters`数字 : `restarts` (违约2), `maxIterations` (违约8), `bounds`, (中文(简体) ), `algorithm`,以及 `initial` (默认继承的向量); 错误的绑定或长度抛出 `RangeError` 在第一次收获之前。 在正重行上无效的树会丢失 `Infinity` 永远不能到达前面 `invalidRows: 'penalize'` 得分如适者无效行刑(`1e8`乘以其无效行,加上所选行 `loss` 相反,在有效行上. `fittedParameters` 给出每行损失后面的值. `options.rng` 所以一个种子能产生一个结果. `runScalarSearch(problem, options)` 是单调形式:它消耗生成器并返回最后结果;其选项为 `seed` (确切地说是其中之一) `seed` 财务报告和审定财务报表 `rng`及其问题可能给 `columns` 作为用可变名称而不是对齐数组键入的记录. `maxEvaluations` 上限评价,包括初始人口。 与 `populations > 1` 独立岛屿`rng.fork('island:' + index)`)并并进;每代后,每个岛屿最差的树木被其他岛屿最好(英语:`fractionReplaced`,默认0.00036),常扰动温度从 `initialTemperature` (3.17) 每代0.995个`annealing`)和联赛排名 `loss * exp(adaptiveParsimonyScaling * share)` 地点 `share` 树的大小有多常见`adaptiveParsimony`,缩放1040. 只有几个岛屿 才有适应性的变质违约 所以 `populations: 1` 是一个人口搜索到最后一点. `parallel: { timeoutMs?, pool? }` 每一代树的分数一次 `observed` 有100行或100行以上(`scalar-batch.worker.js`,由 URL 所加载的第二个 tsdown 条目; 参数 refit and every 随机绘图停留在调用者线程上,所以并行运行等于相同种子的串行运行,位取位. `complexityWeights` 联合国 `ScalarComplexityWeights` 从 `@danielsimonjr/mathts-expression`) 权衡了厅内复杂度的节点,分出分解的领带断裂,以及适应性的分解等分级;省略了,这是今天节点的计数,一个非无限的分量抛出 `RangeError` 在第一次收获之前. `simplify` (单位:千美元)`'off' | 'constants' | 'algebraic'`默认值 `'off'`在语法检查和分数之前,简化每个种子和每个后代一次: `'constants'` 折叠只显示数字的子树( s)`simplifyConstants`, (中文(简体) ), `'algebraic'` 运行 `simplifyScalar`页:1 `ScalarBuildError`, (中文(简体) ), `RangeError`,语法拒绝(包括 `admit`),或行评价不匹配使未简化的树保持不变(`simplifyFallbacks` 所列举的树木是不会被简化的. `timeoutMs` (默认30000,必须是正数) 限制每个工人的呼叫,包括排队。 A 类 `pool` 您的通过由您终止;否则,当它首先需要时,搜索即开始,当生成器结束或关闭时,搜索即结束。 百行楼层出自M3基准(磁带与每行翻译,在呼叫者线上);没有工人往返的时间,因此平行是选入的,并不包含速度要求.
-   `numericallyEquivalent` - 两棵树的样品 `createSeededRng`,通过 `compileScalar`,与核心比较 `nearlyEqual`。 。 。 . **仅凭数字协议并不能证明具有象征意义的等同性;** (单位:千美元) `consistent` 判决是证据,不是证据.

```ts
import { createSeededRng } from '@danielsimonjr/mathts-core';
import {
  compileScalar,
  compileScalarGradient,
  fitScalarParameters,
  numericallyEquivalent,
  frontToJson,
  frontToLatexTable,
  paretoFront,
  scoreFront,
  selectFrontModel,
  scalar,
  simplifyScalar,
  scalarToTex,
  runScalarSearch,
} from '@danielsimonjr/mathts-functions';

const node = scalar.op('*', [scalar.symbol('x'), scalar.symbol('x')]);
const linear = scalar.op('+', [
  scalar.op('*', [scalar.symbol('a'), scalar.symbol('x')]),
  scalar.symbol('b'),
]);
const gradCompiled = compileScalarGradient(linear, { variables: ['x'], parameters: ['a', 'b'] });
const { values, grad } = gradCompiled.evaluate([new Float64Array([3])], [2, -1]);
values[0]; // 5
[...grad]; // 3, 1 — ∂/∂a = x, ∂/∂b = 1
const quotient = scalar.op('/', [
  scalar.symbol('a'),
  scalar.op('/', [scalar.symbol('b'), scalar.symbol('c')]),
]);
scalarToTex(simplifyScalar(quotient)); // \frac{ a\cdot c}{ b}

const compiled = compileScalar(node, { variables: ['x'] });
compiled.evaluate([new Float64Array([2, 3])]).values; // Float64Array [4, 9]

const slope = scalar.op('*', [scalar.symbol('a'), scalar.symbol('x')]);
const xCol = new Float64Array([1, 2, 3]);
const yCol = new Float64Array([2, 4, 6]);
fitScalarParameters(slope, [xCol], yCol, ['x'], { parameters: ['a'], restarts: 0 }).parameters[0]; // 2

const front = paretoFront([
  { loss: 0.5, complexity: 1, item: 'x' },
  { loss: 0.1, complexity: 3, item: 'x^3' },
]);
selectFrontModel(scoreFront(front), 'best').item; // 'x^3'
frontToJson(scoreFront([{ loss: 0.5, complexity: 1, item: scalar.symbol('x') }])).rows[0]!.key; // '{"k":"s","v":"x"}'

const rng = createSeededRng(1);
const id = scalar.op('+', [
  scalar.op('^', [scalar.call('sin', scalar.symbol('x')), scalar.number(2)]),
  scalar.op('^', [scalar.call('cos', scalar.symbol('x')), scalar.number(2)]),
]);
numericallyEquivalent(id, scalar.number(1), { domain: { x: [0, 1] }, rng }).verdict; // 'consistent' — evidence, not proof

const quadGrammar = {
  variables: ['x'],
  binary: ['+', '*', '^'],
  unary: [],
  literals: [1],
  maxSize: 7,
} as const;
const quad = scalar.op('+', [
  scalar.op('*', [scalar.symbol('x'), scalar.symbol('x')]),
  scalar.symbol('x'),
]);
const xs = new Float64Array(20);
for (let i = 0; i < 20; i += 1) xs[i] = -1 + (2 * i) / 19;
const quadResult = await runScalarSearch(
  {
    variables: ['x'],
    columns: { x: xs },
    observed: compileScalar(quad, { variables: ['x'] }).evaluate([xs]).values,
  },
  { grammar: quadGrammar, seed: 7, populationSize: 8, tournamentSize: 4, maxEvaluations: 120 }
);
quadResult.front.at(-1)?.item; // x^2 + x — the planted law, at loss 0
quadResult.stopReason; // 'max-evaluations' — runScalarSearch consumes the generator for you
```

-   还将公布每个领域的重点切入点: `@danielsimonjr/mathts-{arithmetic,trigonometry,statistics,signal}`。 。 。 .

## 许可证

MIT (c) 小丹尼尔·西蒙.

## 常见问题

### @danielsimonjr/mathts-functions 是什么？

MathTS的数学函数 - 算术,代数,三角学,统计学等

### 如何安装 @danielsimonjr/mathts-functions？

在项目目录运行 npm install @danielsimonjr/mathts-functions，或使用 pnpm add / yarn add / bun add。

### @danielsimonjr/mathts-functions 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @danielsimonjr/mathts-functions 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @danielsimonjr/mathts-functions 可以商用吗？

@danielsimonjr/mathts-functions 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @danielsimonjr/mathts-functions 的下载量有多少？

根据 npm 官方下载统计，@danielsimonjr/mathts-functions 在 2026/10/12 – 2026/11/10 这 30 天内被下载 7,009 次，日均约 234 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @danielsimonjr/mathts-functions 还在维护吗？

最新版本 0\.83\.0 发布于 2026/11/11（今天）；至今共发布 132 个版本，其中过去 12 个月发布了 132 个；首次发布于 2026/04/05。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

