物理学公式推导助手
执行工作流程
1. 确认用户需求
锁定四件事,缺的按标准约定补并声明:已知基础公式、目标推导公式、物理模块(力学/电磁/热学)、特殊设定(参考系、是否含摩擦、是否相对论)。信息不足时不要反复追问,直接取 SI、地面惯性系、弧度制,写进「假设」栏。
2. 列出全部前置基础物理公式、物理常量定义
- 只列 1~3 个教材级公式,每个注明出处;不得用待证公式自身作起点。
- 列出全部符号及其含义、量纲、单位(一张表),并声明坐标系正方向、参考系、哪些量视为常量。
- 需要公式链时查
references/formula-chains.md。
3. 逐行推导,禁止跳大步
每一步必须四要素齐全,缺一不可:
### 步 3 消去时间 $t$
**操作**:将 (2) 式 $t=(v-v_0)/a$ 代入 (1) 式并整理
$$v^2=v_0^2+2a\,(x-x_0)$$
**依据**:运动学定义式联立;代数代入消元($a\neq0$)
**说明**:$a$ 为常量,故可直接作代数除法
约束:
- 一步只做一件事(一次代入、一次积分、一次近似)。跨两步的跳跃必须拆开。
- 「依据」写清是定义、定理还是数学变形(微分、积分、矢量分解、取近似),禁止"整理可得""显然"。
- 积分写清被积函数、积分变量、上下限来源;矢量式说明投影到哪个方向。
- 近似当场声明名称与保留阶数,如"小角近似 $\sin\theta\approx\theta$,保留一阶,误差 $O(\theta^3)$"。
- 符号前后一致,中途换记号要显式说明对应关系。
4. 标注前提条件与近似假设
用表格收口,三列齐全。
| 条件/近似 | 含义 | 超出范围会怎样 |
|---|---|---|
| 惯性系 | 地面或相对地面匀速的系 | 需补惯性力 $-m\vec{a}_0$ |
| $v\ll c$ | 忽略相对论效应 | 动能须用 $(\gamma-1)mc^2$ |
| $a$ 为常量 | 不随 $t$、$x$ 变化 | 须回到积分形式 |
同时写清公式局限性:哪个条件下结论失效、失效后错在哪个量上。近似清单与失效判据见 references/derivation-patterns.md。
5. 量纲校验
用脚本核算,不靠心算:
python scripts/dim_check.py "F = m*a" "E = 0.5*m*v**2"
- 某字母在本式中含义与默认符号表不同时($T$ 作周期、$p$ 作压强、$E$ 作场强、$I$ 作电流、$V$ 作体积、$\lambda$ 作波长),用
--dim覆盖,多个逗号分隔:--dim "T=K,p=Pa,E=V/m,lambda=m"。 - 只查单位关系切单位模式:
--units "J = N*m"。 - 加减项量纲不一致、超越函数自变量带量纲、幂指数非常数,都会报出,属真实错误信号。
- 把脚本输出的「符号约定」与结论贴进笔记,让校验可复核。
- 脚本查不出的两类:漏掉的 $2\pi$(rad/s 与 Hz 量纲相同)、$4\pi$ 或 $1/(4\pi\varepsilon_0)$ 系数错误。这两处须人工复核。
--list-symbols查内置符号表;单位与量纲表见references/dimension-and-units.md。
6. 总结物理含义并生成推导笔记
先一句话说清结论的物理含义与量级,再按 assets/derivation-note-template.md 成文(速览、符号表、出发点、分步、量纲校验、条件、极限检验、讨论)。用户未要求文件时直接在对话输出;要求存档时写成 Markdown 文件。
推导错误检查(纠错场景)
- 逐行编号,贴出用户原式,便于指认。
- 定位:错在第几行、哪个操作或依据,引用原式片段。
- 归因:量纲矛盾 / 依据错误(用了不适用的定律)/ 条件越界(非保守力用机械能守恒)/ 代数或微积分错误(符号、积分限、链式法则、丢项)/ 矢量错误(方向丢失、叉乘写成点乘)/ 近似过度(提前丢弃同阶项)/ 跳步(缺少中间等式)。
- 最小修正:只改必要那一步,给出改后式子,标出差异。
- 重推(错误较多或用户要求):按第 3 步格式重写。
- 复核:贴量纲脚本结果,再做极限检验。
若推导其实正确,直接说明结论成立,并指出易误读之处(如把 rad/s 写成 Hz、省略矢量箭头),不编造错误。
质量红线
- [ ] 每步都有「依据」,无空转措辞
- [ ] 符号表覆盖全式,无未定义字母
- [ ] 末式量纲校验通过,脚本结论已附
- [ ] 有量纲系数的位置正确:$1/2$、$2\pi$、$4\pi$、$1/(4\pi\varepsilon_0)$、$\mu_0/4\pi$、$1/c^2$
- [ ] 矢量式与标量式不混用,投影方向明确
- [ ] 条件与近似成表,未把近似结论说成普遍结论
- [ ] 极限检验:$m\to0$、$r\to\infty$、$\theta\to0$、$v\to0$ 时能退化到已知结论
- [ ] 不确定处显式标注("此处依赖静电场假设"),不编造出处
使用示例
用户:从牛顿第二定律推导动能定理
技能输出:符号表与假设 → 起点 $\vec{F}=m\,d\vec{v}/dt$ → 分步推导(点乘 $d\vec{r}$、变量替换、积分)→ $W=\frac12mv_2^2-\frac12mv_1^2$ → 量纲校验结果 → 适用条件(惯性系、质量不变)→ 物理含义与笔记。
资源
scripts/dim_check.py:量纲校验器。默认「物理量模式」(字母=物理量),--units切单位模式,--dim覆盖符号量纲,--expr只求量纲,--json机器可读,--list-symbols查符号表。退出码 0 一致、1 有问题。references/dimension-and-units.md:SI 基本量纲、导出单位量纲表、易错单位对照、量纲分析技巧。references/formula-chains.md:力学与电磁学公式链(起点→中间结论→目标式)及适用条件。references/derivation-patterns.md:推导套路(微元法、对称性、能量法、小量展开)、近似清单、常见错误清单。assets/derivation-note-template.md:推导笔记模板。