背景:本项目的组员提交了一个名为 问题一问题二源代码附录_去路径版.docx 的文件作为”源代码”,但该文件实际上 不是解题算法脚本,而是论文自动排版/生成工具。本文档对两类代码进行明确区分。

一、什么是「解决问题的源代码」—— 真正的算法

这类代码的核心特征是:接收输入数据 → 执行数学/物理计算 → 输出结果。它们包含完整的建模逻辑、公式推导、数值求解过程。

本项目中真正的解题代码

1. 问题 1 & 2 的求解代码(缺失 / 未提供)

问题 1(扭矩系数 K 回归、临界预紧力矩识别)和问题 2(三约束 Tmax 模型、工况 A/B 计算)的 原始求解脚本目前未找到

.docx 文件中的 PowerShell 脚本只是把这两个问题的 计算结果硬编码后填入 Word,并非求解过程本身。也就是说:

  • 回归分析怎么做的? → 代码不在
  • Chow 断点检验怎么算的? → 代码不在
  • Tmax1/Tmax2/Tmax3 的具体数值是怎么算出来的? → 只有最终数字,没有计算过程

结论:问题 1 & 2 的真正求解代码,组员没有交。

2. 问题 3 & 4 的求解代码(存在且完整)

(a) problem_3_4_solver.py — 物理解析解主程序(1306 行)

这是 标准的数学建模求解代码,结构清晰:

类/函数功能对应问题
EccentricityAnalyzer基于 Von Mises 准则的偏心受力分析器问题 3.1
EccentricityAnalyzer.solve_Tmax_analytical()解析解推导 Tmax(e) 公式问题 3.1
EccentricityAnalyzer.solve_Tmax_numerical()数值解(二分法)验证解析解问题 3.1
ModifiedTmaxModel综合三种失效模式的修正模型问题 3.2
RockClassificationOptimizer围岩分类 + Topt(f) 关系建模问题 4
ResultVisualizer结果可视化(matplotlib 绘图)全部

关键特征

  • 包含完整物理公式推导(应力计算、Von Mises 等效应力准则)
  • 有解析解和数值解双重验证
  • 从参数输入到结果输出的 完整计算链路
  • 输出 CSV 数据文件和 PNG 图表
(b) transformer_solver.py — 深度学习加速求解程序(995 行)

这是用 PyTorch + Transformer 对物理模型进行学习加速的代码:

模块功能
PhysicsEngine封装精确物理解(作为训练标签生成器)
TransformerRegressorTransformer 回归模型架构
DataGenerator生成训练数据(用物理模型产生标签)
TrainingEngine训练引擎(支持 AMP 混合精度、早停等)

关键特征

  • 用神经网络学习物理模型的输入→输出映射
  • 与解析解对比验证精度(MAPE 指标)
  • 属于 进阶求解方法(非必须,但加分)

总结:真·源代码长什么样

输入: 原始数据 / 工程参数

【核心】数学公式、物理模型、数值算法

输出: 计算结果、图表、CSV

判断标准:如果删掉这个文件,你还能从别的地方拿到同样的计算结果吗?

  • 能 → 那它可能只是排版代码
  • 不能 → 那它就是真正的求解代码

二、什么是「生成 Word 文件的代码」—— 排版脚本

这类代码的核心特征是:把已经算好的数字和文字,按格式写入 Office 文档。不包含任何算法逻辑。

本项目中的排版代码

这是一个 PowerShell 脚本(约 590 行),做的事情:

已算好的数字(硬编码)

拼接成 XML 字符段(段落、表格)

插入 Word 文档的 document.xml 中

重新打包为 .docx 文件

具体来说,脚本里的内容全是这样的:

# 不是在算 K 值,而是直接写死:
$q11Rows = @(
    @("18", "7", "12.68~115.74", "50~350"),   # ← 这些数字哪来的?别的程序算的
    @("20", "7", "10.46~93.09", "50~350"),
    ...
)

# 不是在解方程,而是直接写死结果:
@("A", "4.750", "334.265", "400.000", "622.540", ...),
@("B", "1.500", "169.646", "123.077", "514.191", ...)

它的角色 = 一个自动化的”复制粘贴机器人”。

三、对比总览

维度解题算法代码 (problem_3_4_solver.py)论文生成代码 (问题一问题二源代码附录)
语言PythonPowerShell
输入工况参数 (d, E, K, …)已算好的数字字面量
核心工作物理公式推导 + 数值计算XML 字符串拼接
有公式吗?有(Von Mises、Winkler 地基…)无(只有公式的文字描述)
能独立运行出结果吗?不能(依赖外部计算结果)
删除后影响无法复现计算结果只是麻烦点,手动也能填
本质厨师做菜服务员摆盘
是否为”源代码”否(是辅助脚本)

四、当前项目代码完整性评估

问题真正的求解代码状态
问题 1.1(K 值回归)缺失组员只给了填好结果的排版脚本
问题 1.2(临界力矩识别)缺失同上
问题 2.1(Tmax 参数化模型)缺失同上
问题 2.2(工况 A/B 计算)缺失同上
问题 3.1(偏心受力分析)problem_3_4_solver.py完整
问题 3.2(综合修正模型)problem_3_4_solver.py完整
问题 4(围岩分类 Topt-f)problem_3_4_solver.py完整
进阶方法(Transformer)transformer_solver.py完整(加分项)

五、建议

  1. 找组员要问题 1 & 2 的 Python/MATLAB 求解脚本,不是 .docx
  2. 如果组员说”就是用 Excel 算的”,那就让他把 Excel 公式截图或录屏
  3. 如果确实只有手算/Excel,那就在论文中注明”使用 Excel 进行数据处理”
  4. 提交时,problem_3_4_solver.pytransformer_solver.py 应作为 正式附录代码
  5. .docx 里的 PowerShell 脚本可以作为 辅助说明,但不应作为主要源代码提交