跳到正文
动效
动效偏好

完整波场与交互。

EN

能带分类

将离散本征模观测分组,供比较与检查。

问题与目标

eigenmode-analysis 中的能带分组方法,在保留原始观测的基础上组织结果,帮助比较与检查。几何分组本身不等于唯一物理模态身份的恢复。

要解决什么

离散采样中的候选会换序、交叉,也会缺失。需要组织这些观测以便比较,同时保留缺口与原始候选,避免把数值轨迹直接当成唯一物理模态。

SoftwareAlgorithmPythonEigenmodes

图解与示例

相同的合成本征模候选追踪前后对照,八个缺失位置保留
实际合成计算 · 稳定版 0.2.10 追踪示例 · 打开原图 ↗

本站追踪图来自稳定版 0.2.10 的 synthetic_tracking.py:追踪前后保留相同的 265 个合成观测与八个缺失位置。这是路径追踪示例,不是高级分组算法的验证。

eigenmode-analysis / 算法

复现一次交叉与缺失候选的追踪

使用 eigenmode-analysis 0.2.10 的公开合成示例:91 个采样位置、3 条无量纲分支、随机换序及 8 个缺失槽,共 265 个观测。输入定义、运行命令和输出诊断都可以从固定源码核对。

示例来源 ↗ 93e4270de07497e50d7b59243edbfec642d48796
  1. 固定输入与源码

    从公开仓库取得下列 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
  2. 隔离安装并运行

    先按所用 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
  3. 比较同一组观测

    CandidateSet 保存每个采样点的局部候选标识与数值,track_path 使用三条轨迹和 derivative_weights = 2 进行匹配。脚本断言原始观测没有丢失或重复、交叉前后符合预设分支,且八个缺失槽仍为 None/NaN。这里是无序观测与追踪结果的比较,没有插值补齐数据。

    同一组合成观测:左侧是无序候选,右侧是三条追踪轨迹;两条下方分支交叉,上方分支保留八个采样位置的缺口。
    同样的 265 个观测,增加显式轨迹标识。灰色区间内上方分支的八个缺失槽仍然缺失;颜色表示数值追踪结果。左图是无序散点,不是简单排序算法的对照。来源:eigenmode-analysis 0.2.10 · synthetic_tracking.py ↗ · MIT
  4. 检查代价、覆盖与回执

    不只看曲线是否平滑,还要查看 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 算法。

资料与入口

Python / 算法

公开仓库提供算法说明、合成对照与运行入口。几何分组结果需要结合具体物理问题判断。

网站目录

00 / 首页 ↗