问题与目标
eigenmode-analysis 中的能带分组方法,在保留原始观测的基础上组织结果,帮助比较与检查。几何分组本身不等于唯一物理模态身份的恢复。
要解决什么
离散采样中的候选会换序、交叉,也会缺失。需要组织这些观测以便比较,同时保留缺口与原始候选,避免把数值轨迹直接当成唯一物理模态。
图解与示例

本站追踪图来自稳定版 0.2.10 的 synthetic_tracking.py:追踪前后保留相同的 265 个合成观测与八个缺失位置。这是路径追踪示例,不是高级分组算法的验证。
eigenmode-analysis / 算法
复现一次交叉与缺失候选的追踪
使用 eigenmode-analysis 0.2.10 的公开合成示例:91 个采样位置、3 条无量纲分支、随机换序及 8 个缺失槽,共 265 个观测。输入定义、运行命令和输出诊断都可以从固定源码核对。
示例来源 ↗ 93e4270de07497e50d7b59243edbfec642d48796固定输入与源码
从公开仓库取得下列 revision。示例以 seed = 1729 打乱每点候选顺序;三条分支为 1 ± 0.28t 和 1.7 + 0.08 cos(πt),t 在 −1 至 1 上取 91 点,上方分支在索引 56–63 缺失。此次复现使用 Python 3.11.9;以下固定数值与绘图依赖需要 Python 3.11 或以上。
git clone --branch public-release --single-branch https://github.com/Patr1ck2005/eigenmode-analysis.git cd eigenmode-analysis git checkout --detach 93e4270de07497e50d7b59243edbfec642d48796 python -m venv .venv隔离安装并运行
先按所用 shell 激活 .venv,再运行以下命令。两个公开源码依赖采用该 README 的固定安装提交,分别提供稳定版 0.2.10 API 和绘图导出;NumPy、SciPy 与 Matplotlib 版本固定为本站复现环境。无需仿真器、科研数据或服务器。
# Windows PowerShell: .\.venv\Scripts\Activate.ps1 # macOS / Linux: source .venv/bin/activate python -m pip install "numpy==2.4.6" "scipy==1.17.1" "matplotlib==3.10.9" python -m pip install "eigenmode-analysis @ git+https://github.com/Patr1ck2005/eigenmode-analysis.git@e172495aa0c561cf0edf251ae9828dd5e54d2d64" python -m pip install "plot-foundation @ git+https://github.com/Patr1ck2005/plot-foundation.git@c3d3cc23b2bb4da7ade7e5edf553d4a36d19db7f" python -m pip check python examples/synthetic_tracking.py --out docs/assets/showcase比较同一组观测
CandidateSet 保存每个采样点的局部候选标识与数值,track_path 使用三条轨迹和 derivative_weights = 2 进行匹配。脚本断言原始观测没有丢失或重复、交叉前后符合预设分支,且八个缺失槽仍为 None/NaN。这里是无序观测与追踪结果的比较,没有插值补齐数据。

同样的 265 个观测,增加显式轨迹标识。灰色区间内上方分支的八个缺失槽仍然缺失;颜色表示数值追踪结果。左图是无序散点,不是简单排序算法的对照。来源:eigenmode-analysis 0.2.10 · synthetic_tracking.py ↗ · MIT 检查代价、覆盖与回执
不只看曲线是否平滑,还要查看 path-diagnostics.png 的每点分配数与匹配代价。manifest.json 应报告 raw_observations = assigned_observations = 265、missing_path_slots = 8 和 all_assertions_passed = true。同一脚本还检查 13 × 9 网格中的一个空点、候选换序不变性及零图冲突;这些检查不等于完整库测试。

诊断图让缺口可见:每点分配数从 3 降为 2,随后恢复。匹配代价是配置相关的数值量,不是正确性的概率;重新出现的候选附近可见代价峰值。来源:eigenmode-analysis 0.2.10 · path diagnostics ↗ · MIT在隔离环境运行固定公开源码生成;PNG 与该 revision 中的公开输出逐字节一致,没有裁切或重绘。
得到什么
- 4 组 PNG/SVG:hero、crossing-missing、path-diagnostics、graph-diagnostics;另有可离线打开的 gallery.html 与记录版本、哈希和断言结果的 manifest.json。
- 本站在独立环境复现通过;4 张 PNG 均与固定 revision 的公开输出哈希一致。
适用边界
这是独立定义的无量纲合成示例,不是实验、全波仿真或 OEA 论文的数据处理。数值轨迹不保证唯一物理模态身份,匹配代价不是概率;此处没有简单排序基线,也没有验证独立的高级 band_grouping 算法。
