> 本模块随 Harness Research Studio 统一发布。安装、迁移和构建请以[根目录说明](../../README.md)为准。 # 数学与数据实验室 · Math Lab 为 **DeepSeek Harness Web 0.1.5-rc.2** 制作的本地插件,版本 **0.2.0**。函数图、数据图表、小模型训练和蒙特卡洛模拟使用同一套交互界面。现有会话地图的公式排版另由 Local Map 0.2.1 升级。 ## 使用方式 用户明确要求画图、可视化或演示,或者确认上一轮建议后,AI 才应调用 `math_plot`、`math_demo`、`data_chart`、`model_lab` 或 `monte_carlo`。普通数学与数据问题正常回答;适合演示的内容可以在回答末尾提议,等待下一轮用户决定。卡片可以直接查看图像,也可以点击“打开实验室”进入完整面板。是否选择调用工具仍由当前模型决定;插件向模型说明何时适合绘图,不会通过正则扫描正文后执行任意内容。 例如: - “画出 x²−y²,并解释为什么是鞍点。”(图中按需开启“显示驻点”。) - “做一个割线逐渐趋近切线的交互动画,让我暂停、单步和回看。” - “用这份数据画收益分布、回撤、自相关和 markout,注明时间单位。” - “用这组样本建立逻辑回归实验,让我单步观察交叉熵与梯度。” - “建立风险中性 GBM 的欧式看涨期权模拟,对照解析价格看收敛。” 也可直接打开侧栏“数学实验室”,选择明确标注的合成示例,或导入自己的 CSV / JSON。浏览器导入文件只在本页读取,不会自动上传给模型。通过对话由 AI 提供的数据则遵循 DSH 原有会话与模型规则。 图表按结果区域的实际宽度排列:空间较窄时上下展示,宽度足够时并排比较;展开 DSH 侧栏和调整窗口后会自动适配。连续训练刷新数据时保留当前缩放和三维视角。 ## 对话中的图表结果 每轮绘图工具的成功结果默认与正式回答并排:左侧正文、右侧“本轮图表与实验”。图表默认占 55%,可拖动分隔线或使用滑块在 25%–75% 之间调整,也可切回上下排列;较窄区域自动上下显示。无图表的回答保持原样。旧会话中的已有工具结果在重新读取后即可展示,无需让 AI 重新生成。原生复制、文件、图片和交付卡片继续使用宿主组件。 二维图表默认拖动平移、滚轮缩放,双击恢复视野;不再以拖动框选缩放。三维默认保持 z 轴向上旋转,可切换平移,滚轮控制远近。使用固定 XY 参考网格,提供网格显隐和“复位视角”,背景墙不会随视角换面。数学实验室顶部合并为紧凑工具栏。 图表底边提供独立高度调节条:上下拖动,或使用“高度”滑块将绘图区调到 240–1200px;双击调节条或点击“还原高度”恢复默认。键盘聚焦调节条后,上下方向键调整,Home 还原。改变的是绘图区尺寸,标题、说明和字号不变,也不重启训练或重置当前缩放/三维视角。同一实验的各子图分别记住高度,重新打开和刷新后恢复;本机只保存尺寸和不可读的数据指纹。PNG / SVG 按实际绘图区比例导出,最长边限制为 8192px。 配合会话地图 0.2.1,右侧阅读栏直接展示选中轮次的函数、数据图表和训练/模拟实验卡片;切换会话或分支时严格按所属轮次读取。图表仍可缩放、旋转和调节参数,并可打开完整实验室。离屏图表延后加载,已创建的训练和模拟保持待启动状态。 ## 函数绘图 支持二维 `y=f(x)` 多曲线、三维 `z=f(x,y)` 曲面,以及二维/三维参数曲线。可调整范围、缩放、平移、旋转、通过滑块调整参数,开启数值导函数,导出 PNG;不依赖 WebGL 的图还可导出 SVG。 表达式使用 `sin(x)`、`exp(x)`、`x^2`、`sqrt(x)` 等数学写法,支持常量 `pi` / `e`。乘法使用 `*`,不直接输入 LaTeX 命令。公式显示使用本地 KaTeX。 图中的驻点和特殊点标注默认隐藏,点击绘图区“显示驻点”可开启,再次点击隐藏;明细表随同开关显示。驻点由有限范围内多起点数值求解获得;曲面使用 Hessian 分类极小值、极大值、鞍点,无法可靠判断时标为退化或待判定。平坦点、不可微点、极点和未检出的根不会被冒充为完整解析结论。图中保留函数不连续处的空隙。数值搜索不保证找到全部驻点。 每个实验最多 6 条表达式、8 个滑块参数、每条 400 字符;二维曲线最多 4,000 个采样点,曲面最多每轴 120 点。只接受标量算术和固定函数白名单,不接受赋值、属性访问、数组、用户定义函数或动态执行。 ## 数学演示动画 `math_demo` 复用函数图,额外指定 `animation`,即可在普通会话结果、会话地图和完整实验室直接播放。支持播放/暂停、上一步/下一步、拖动时间轴回看、0.25×–2×速度和循环;打开会话时不会自动播放。旧函数图已有滑块参数时,也可在实验室“演示动画设置”中开启。 内置波传播、割线逼近切线、拉格朗日乘子曲面、参数曲线相位和螺旋半径示例。每次动画改变一个已有参数,其他参数、公式与定义域保留;覆盖二维多曲线、二维/三维参数曲线和三维曲面。它是参数变化演示,不是任意几何分镜或 HTML 动画编辑器;模型训练和随机过程请使用已有两个实验空间。 ```json {"mode":"cartesian","expression":"sin(x-phase)","domain":{"x":[-7,7]},"parameters":{"phase":{"value":0,"min":0,"max":6.283185307179586}},"animation":{"parameter":"phase","duration":8,"steps":80,"loop":false}} ``` 时间轴限制为 2–60 秒、10–240 个插值区间,帧 0 与末帧包含精确起止值。只使用一个本地计算线程、同时只计算一帧,连续拖动保留最后目标;复杂公式会放慢,不积压后台任务。切走、隐藏浏览器或离开视图会暂停,卸载会结束线程;可导出当前图像与可重放实验 JSON,暂不导出视频或 GIF。 ## 外观与主题 跟随 Harness 的浅色、深色或系统偏好,正文、公式、控件、图例、坐标网格、三维图和神经网络图使用相应配色。切换主题只更新显示,不重新运行计算,也不重置图表高度、缩放或相机。 可配合独立的 `dsh-glass-theme` 玻璃主题:侧栏与工具区采用透明层次,绘图区保留清晰底色。玻璃风格及轻动效可以在设置的通用页关闭;普通浅色主题不依赖该插件。 ## 数据视图与量化研究 支持时序、多序列、散点、直方图、柱状图、箱线图、小提琴图、热力图、等高线、三维曲面、三维散点、平行坐标、Pearson 相关矩阵、QQ、ACF、ROC、概率校准与残差图。 量化相关视图包括 OHLC / K 线、盘口累计深度、净值回撤、逐观测对数收益分布、滚动均值和标准差,以及按持有期汇总的 markout。界面保留数据来源、有效样本、缺失值和计算口径说明。 - CSV / JSON 导入最多 8 MiB,表格最多 20,000 行、30 列;单个保存或 AI 工具实验仍受 2 MiB JSON 上限约束。较大数据应先按研究粒度聚合。 - 时序折线保留输入观测与缺失区间,超过 5,000 点使用 WebGL;散点可抽样显示,并明确提示。不能以抽样后的图像声称捕捉了全部高频事件。 - 纳秒整数时间戳请用字符串,避免 JavaScript 数值已丢失精度。可精确差分的轴使用相对时间并标明基准;不能精确差分时明确显示为等距类别。 - 时序统计使用输入的先后顺序,反序会提示处理。滚动统计只使用当前及历史窗口,未自动年化。 - 缺失值不静默填零;ACF 等依赖连续样本的分析要求先明确缺失处理。相关矩阵显示逐对样本数,常量列相关留空。 - Markout 使用你已计算并注明方向、价格基准、延迟单位和费用口径的数据。独立样本近似的误差条不解决高频重叠样本的相关性。 - 盘口图展示输入快照的累计量,不推断个体订单、排队位置或成交概率。分类指标、预测质量与实际可交易收益分别解释。 ## 模型训练 支持线性回归、岭回归、逻辑回归、K-Means、梯度提升回归树桩、单隐层 tanh 神经网络(回归/二分类)、AR(p) 时序回归。这些是可检查步骤的小模型实现;Boosting 是逐个树桩的回归提升,AR 是自回归,神经网络是单隐层,未包含完整 XGBoost、LSTM 或大模型训练。 每一步都进行真实计算。面板展示训练/验证损失、当前拟合或分类概率、聚类质心、神经网络权重结构、AR 一步预测和未来递归预测,以及本步梯度和参数更新。线性/岭/逻辑/AR 还记录每一步实际参数轨迹,快速完成后也可查看。 **单步**执行一次更新;**连续运行**可设 1–60 步/秒并暂停;**立即完成**在独立计算线程中跑完剩余步骤,跳过中间图像刷新后同步结果。固定输入与种子下,快速和逐步运行结果一致。切换空间会暂停计算;刷新页面会结束本页运行,需通过导出保存实验与结果。 最多 3,000 样本、12 特征、3,000 次更新、32 个隐层神经元、24 个聚类。验证集取原始序列末尾,不随机打乱;标准化参数只在训练段估计。AR 验证为已观测过去的一步预测,未来递归预测另行标出。没有留出数据时不声称独立验证。 ## 随机模拟 支持几何布朗运动 GBM、Ornstein–Uhlenbeck 均值回归、高斯随机游走。展示代表路径、终值分布、估计随采样量的收敛与抽样误差。单步增加一批完整路径。 GBM 支持欧式及算术亚式看涨/看跌期权;风险中性估值采用 `r−q` 漂移,欧式期权附 Black–Scholes 解析参照。物理测度场景计算会明确区别于风险中性价格。终值风险展示 VaR / ES、损失定义与测度。 最多 2,000 路径、每路径 500 个时间点,图上最多显示 80 条代表路径;所有路径用于终值统计。种子可配置。置信区间只表示蒙特卡洛抽样误差,不包含参数或模型设定误差;小尾部样本会提示估计不稳定。 ## 实验记录、导出与数据边界 AI 工具创建的实验随 DSH 原生会话记录保存,重启后可恢复。当前会话的最近实验库保留 20 项、最多 8 MiB;较旧条目仍在原生历史中,插件不会删除。 手动导入、编辑后的实验和训练状态留在当前页面内存;使用“导出实验”保存可重放 JSON,“导出结果”保存当前真实计算结果,图表按钮导出图片。手动导入的文件不会被插件另行写入 DSH 工作区,也不自动发送给模型。示例始终标为合成数据,无法把它当成真实市场来源。 插件不新增 HTTP 端口、鉴权方式、后台任务、统计上报或自动更新。DSH host 只注册五个结构化工具、一段工具说明和只读实验投影;计算在本地浏览器 Worker 中完成。表达式受白名单约束,KaTeX 关闭信任命令,图表由固定模板构造,不接受原始 HTML、JavaScript、任意 Plotly 配置或外部资源地址。 ## 组件与参考 采用锁定的 Plotly.js 4.1.1、mathjs 15.2.0、KaTeX 0.18.7、Papa Parse 5.7.0;构建使用 esbuild 0.28.2,界面复用宿主 React。完整许可证及 KaTeX 字体 SIL OFL 见 `THIRD_PARTY_NOTICES.md`。发布包包含源码、锁文件、安装包和 SHA-256 清单。生产浏览器文件采用常规压缩,可从附带源码重建。 交互设计参考 [Plotly 科研图表](https://plotly.com/javascript/scientific-charts/)、[金融图表](https://plotly.com/javascript/financial-charts/)、[TensorFlow Playground](https://playground.tensorflow.org/) 的逐步训练、[Seeing Theory](https://seeing-theory.brown.edu/) 的概率探索。安全边界依据 [mathjs 表达式安全说明](https://mathjs.org/docs/expressions/security.html) 和 [KaTeX 安全说明](https://katex.org/docs/security)。本项目没有使用 dsh-synapse 的代码或安装包。 ## 重建与验证 ```powershell npm ci --ignore-scripts --no-audit --no-fund $env:DSH_PACKAGE_JSON="你的官方DSH目录\package.json" npm run build npm test npm run package ``` 构建时从该官方 DSH `0.1.5-rc.2` 读取并打包纯工具 schema 编译部分;运行时仍使用宿主的工具与会话服务,不需要安装另一套 DSH。默认构建路径为 Windows 的 `%APPDATA%\npm\node_modules\@deepseek-ai\dsh\package.json`。 测试覆盖数值计算、上下文独立的原生工具执行与投影重放、结构化输入限制、时间精度与缺失数据、真实 Worker 的暂停/单步/快速一致性,以及真实训练/模拟结果到绘图数据的逐项核对。交互界面另在独立 DSH 中验证。没有使用在线模型作算法正确性替代,没有在用户的真实会话中创建测试数据。