【2026年五一数学建模竞赛C题边坡预警问题】完整思路+论文+可运行代码
本人8年数学建模竞赛经验,历史获奖率百分之百。团队成员都是拿过全国一等奖的硕博,有需要数模竞赛帮助的可以私信我
本体主要涉及统计分析,机器学习,数据分析等建模知识
完整paper和代码已完成:
资源:https://mbd.pub/o/bread/mbd-YZWcmptwZQ==
output/2026年五一赛C/
├── 阶段1_赛题解析.md ← 赛题结构化分析
├── 阶段2_思路分析.md ← 建模方案论证
├── code/ ← Python求解代码(6个文件)
│ ├── problem1_data_correction.py ← 问题1:数据校正
│ ├── problem2_phase_detection.py ← 问题2:三段式阶段识别
│ ├── problem3_preprocessing.py ← 问题3:去噪+异常检测+关联分析
│ ├── problem4_phased_prediction.py ← 问题4:分阶段位移预测
│ ├── problem5_variable_selection.py ← 问题5:变量选择+预警机制
│ └── generate_all_figures.py ← 高质量图表生成
├── figures/ ← 可视化图表(16张)
│ ├── fig01_p1_regression_fit.png ← 问题1回归拟合
│ ├── fig02_p1_residuals.png ← 问题1残差分析
│ ├── fig03_p1_time_comparison.png ← 问题1校正前后对比
│ ├── fig04_p2_displacement_phases.png ← 问题2位移阶段划分
│ ├── fig05_p2_velocity.png ← 问题2速度曲线
│ ├── fig06_p2_phase_fitting.png ← 问题2分阶段拟合
│ ├── fig07_p2_velocity_boxplot.png ← 问题2速度箱线图
│ ├── fig08_p3_denoise_comparison.png ← 问题3去噪对比
│ ├── fig09_p3_anomaly_detection.png ← 问题3异常检测
│ ├── fig10_p3_grey_relation.png ← 问题3灰色关联度
│ ├── fig11_p3_regression_scatter.png ← 问题3回归散点图
│ ├── fig12_p4_train_phases.png ← 问题4训练集分阶段
│ ├── fig13_p4_test_prediction.png ← 问题4实验集预测
│ ├── fig14_p5_variable_selection.png ← 问题5变量选择
│ ├── fig15_p5_warning_thresholds.png ← 问题5预警阈值
│ └── fig16_p5_warning_status.png ← 问题5预警状态
└── paper/ ← 论文
└── C题论文.pdf ← PDF(23页)
赛题解析 - 2026年五一赛C 边坡预警问题
赛题信息
- 赛事:2026年第二十三届五一数学建模竞赛
- 题号:C题
- 题目:边坡预警问题
赛题背景
边坡稳定性是水利工程、交通路网、露天矿山等领域的核心安全问题。行业已构建"空天地"一体化多源监测体系(卫星遥感 + 无人机/激光雷达 + 地面传感器),为边坡全域监测与早期预警提供数据支撑。
核心理论——“三段式形变”:
- 缓慢匀速形变阶段:位移速度基本恒定,坡体缓慢稳定调整
- 加速形变阶段:位移速度显著增大,坡体进入非稳定形变阶段
- 快速形变阶段:位移速度急剧增大,坡体趋近整体失稳破坏
核心挑战:监测数据存在噪声强、异常跳变频繁、数据缺失等问题,需要从中精准识别形变阶段转换节点并构建预警模型。
数据附件
| 附件 | 内容 | 对应问题 |
|---|---|---|
| 附件1 | 两组位移时序数据(A:光纤位移计,B:振弦式位移计基准) | 问题1 |
| 附件2 | 位移时序数据 | 问题2 |
| 附件3 | 5变量监测数据(降雨量、表面位移、深部位移、孔隙水压力、微震事件数)训练集+实验集 | 问题3 |
| 附件4 | 6维监测数据(表面位移、降雨量、孔隙水压力、微震事件数、爆破点距离、单段最大药量)训练集+实验集 | 问题4 |
| 附件5 | 7维监测数据(表面位移、降雨量、孔隙水压力、微震事件数、干湿入渗系数、爆破点距离、单段最大药量) | 问题5 |
子问题结构化列表
问题1:数据校正
- 任务:对光纤位移计数据A进行校正,使校正后结果与基准数据B的偏差尽可能小
- 要求:建立数学模型 + 交叉验证 + 偏差量化指标 + 填表(5个校正值)
- 填表数据:校正前x = [7.132, 18.526, 84.337, 123.554, 167.667]
- 时间信息:起始2024-01-01 00:00,采集频率10分钟/次
问题2:三段式形变阶段识别
- 任务:识别位移时序的两个转换节点(缓慢匀速→加速、加速→快速)
- 要求:
- 给出区分"噪声/工程扰动引起的瞬时跳变"与"真实阶段转换节点"的核心准则
- 分阶段建立数学模型,给出模型参数并检验
- 计算各阶段表面位移平均速度(mm/h)
- 时间信息:起始2024-05-04 00:00,采集频率10分钟/次
- 速度公式:该阶段表面位移变化总量 / 该阶段总持续时间
问题3:多变量数据预处理与关联分析
问题3.1:去噪与缺失值补齐
- 任务:对训练集5变量数据进行去噪和缺失值补齐
- 要求:详细阐述各步骤的数学依据
问题3.2:异常值检测
- 任务:单变量异常检测 + 多变量共同异常点识别(同一时间点≥2个变量同时异常)
- 要求:填表3.1(各变量异常点数量)和表3.2(共同异常点变量清单)
问题3.3:关联分析与预测
- 任务:定量分析表面位移与其他4变量的关联,评估各因素贡献程度
- 要求:将模型应用于实验集估计表面位移 + 绘制散点图
问题4:分阶段位移预测模型
问题4.1:分阶段建模
- 任务:基于5项特征指标(降雨量、孔隙水压力、微震事件数、爆破点距离、单段最大药量)建立分阶段模型
- 要求:分析并预测表面位移变化规律,考虑不同阶段中外界扰动影响的变化
- 注意:爆破为偶发事件,非爆破时刻相应字段为空值
问题4.2:实验集预测
- 任务:用4.1模型对实验集预测表面位移
- 要求:绘制表面位移随时间变化图像 + 填表(5个时间点的预测值)
- 填表时间点:2025-05-09 12:00, 2025-05-27 08:00, 2025-06-01 12:00, 2025-06-03 22:00, 2025-06-04 01:40
- 注意:实验集阶段标签已给出,训练集与实验集阶段转换节点不一致
问题5:最优变量组合与预警机制
问题5.1:变量选择与最优模型
- 任务:从6类变量中选5类构建模型,评估不同组合下的误差
- 可选变量:降雨量、孔隙水压力、微震事件数、干湿入渗系数、爆破点距离、单段最大药量
- 要求:给出最优变量组合模型 + 解释原理
问题5.2:滑坡预警机制
- 任务:以表面位移速度为预警指标,分阶段构建滑坡预警阈值
- 要求:解释预警机制的合理性
问题间逻辑关系
问题1(数据校正) → 独立基础问题,展示数据处理能力
问题2(阶段识别) → 为问题4、5的分阶段建模提供方法论基础
问题3(数据预处理+关联分析) → 为问题4、5提供特征工程和多变量分析基础
问题4(分阶段预测模型) → 综合问题2的阶段划分 + 问题3的多变量分析
问题5(最优变量组合+预警机制) → 最终应用,综合前面所有成果
关键名词解释
| 名词 | 含义 |
|---|---|
| 表面位移 | 边坡表面监测点三维坐标变化量(mm) |
| 深部位移 | 边坡内部不同深度处岩土体相对于稳定基岩的水平剪切位移量(mm) |
| 孔隙水压力 | 岩土体孔隙中地下水产生的压力,降雨入渗导致升高,降低抗滑能力 |
| 微震事件数 | 岩体微小破裂被监测系统捕获的事件数量,滑坡前兆信息 |
| 累计降雨量 | 指定时间段内降雨量总和(mm) |
| 位移速度 | 单位时间内表面某点水平位移变化量(mm/h) |
| 数据跳变 | 短时间内远超正常蠕变趋势的瞬时阶跃或尖峰变化 |
| 干湿入渗系数 | 描述土体在干湿交替过程中渗透系数随含水率变化的参数 |
阶段2:思路分析 - 2026年五一赛C 边坡预警问题
总体技术路线
以简洁、可解释的经典方法为主,避免复杂模型。优先使用:多项式回归、滑动窗口、统计检验、灰色关联、多元线性回归等。
各问题建模方案
问题1:数据校正(光纤位移计A → 基准B)
确定方案:多项式回归校正
- 方法:以数据A为自变量x,数据B为因变量y,拟合多项式 y = a₀ + a₁x + a₂x² + … + aₙxⁿ
- 阶数选择:通过K折交叉验证(K=5)选择最优阶数(1~5阶)
- 评价指标:RMSE、MAE、R²
- 验证:对题目给出的5个x值代入模型得到校正值
Python库:numpy.polyfit, sklearn.model_selection.KFold
问题2:三段式形变阶段转换节点识别
确定方案:滑动窗口速度计算 + 分段线性拟合
- 步骤1:计算位移速度序列 v(t) = Δs/Δt
- 步骤2:滑动窗口平滑(窗口大小50~100点)去除噪声
- 步骤3:基于速度突变检测转换节点(使用ruptures库的Pelt算法或手动阈值)
- 区分噪声vs真实转换的核心准则:
- 持续性准则:真实转换后速度持续维持在新水平,噪声跳变在短时间内回落
- 幅度准则:真实转换的速度变化幅度显著大于局部噪声标准差
- 分阶段建模:
- 缓慢匀速阶段:线性模型 s = v₀t + b
- 加速阶段:二次多项式 s = at² + bt + c
- 快速阶段:指数模型 s = A·exp(kt) + c
- 各阶段平均速度 = 位移变化总量 / 持续时间 (mm/h)
Python库:numpy, scipy, ruptures
问题3.1:去噪与缺失值补齐
确定方案:中值滤波去噪 + 三次样条插值补齐
- 去噪:滑动中值滤波(窗口大小5~11),保留趋势同时去除脉冲噪声
- 缺失值补齐:三次样条插值(scipy.interpolate.CubicSpline)
- 数学依据:中值滤波对脉冲噪声鲁棒;样条插值保证C²连续性
Python库:scipy.signal.medfilt, scipy.interpolate
问题3.2:异常值检测
确定方案:3σ准则 + IQR双重检测
- 单变量异常:对每个变量,超出 μ±3σ 或 Q1-1.5IQR / Q3+1.5IQR 的点标记为异常
- 共同异常点:同一时间点≥2个变量同时被标记为异常
- 填表3.1:各变量异常点数量
- 填表3.2:共同异常点编号及对应异常变量
Python库:numpy, pandas
问题3.3:关联分析与贡献度评估
确定方案:灰色关联分析 + 多元线性回归
- 灰色关联分析:计算降雨量、深部位移、孔隙水压力、微震事件数与表面位移的关联度,评估贡献排序
- 多元线性回归:y(表面位移) = β₀ + β₁x₁ + β₂x₂ + β₃x₃ + β₄x₄
- 应用于实验集:代入实验集的4个自变量预测表面位移
- 绘制散点图:预测值 vs 实际值(如有)
Python库:numpy, statsmodels, matplotlib
问题4.1:分阶段位移预测模型
确定方案:分阶段多元线性回归
- 先识别训练集的三阶段转换节点(复用问题2方法)
- 对每个阶段独立建立多元回归模型:
- y(表面位移) = β₀ + β₁(降雨量) + β₂(孔隙水压力) + β₃(微震事件数) + β₄(爆破距离) + β₅(最大药量)
- 爆破处理:非爆破时刻,爆破点距离设为极大值(如9999),药量设为0
- 分析各阶段中各因素系数的变化,体现不同阶段扰动影响的差异
Python库:numpy, statsmodels, sklearn
问题4.2:实验集预测
确定方案:直接应用4.1分阶段模型
- 实验集已给出阶段标签(1/2/3),直接按标签选择对应阶段模型预测
- 绘制表面位移随时间变化图像
- 填表:5个指定时间点的预测值
问题5.1:最优变量组合
确定方案:全子集回归(C(6,5)=6种组合)
- 6类候选变量:降雨量、孔隙水压力、微震事件数、干湿入渗系数、爆破点距离、单段最大药量
- 从中选5类,共6种组合
- 每种组合建立多元回归模型
- 评价指标:RMSE、R²、调整R²
- 选择误差最小的组合为最优
- 从物理机理解释被剔除变量的原因
Python库:itertools, statsmodels, sklearn
问题5.2:滑坡预警机制
确定方案:基于位移速度的分级阈值预警
- 用问题2方法对问题5数据进行阶段划分
- 计算各阶段位移速度统计特征(均值、标准差)
- 设定三级预警阈值:
- 蓝色(注意):v > 缓慢阶段速度上限
- 橙色(警告):v > 加速阶段速度均值
- 红色(紧急):v > 快速阶段速度下限
- 从三段式形变理论角度解释合理性
Python库清单
| 用途 | 库 |
|---|---|
| 数据处理 | pandas, numpy |
| 可视化 | matplotlib, seaborn |
| 信号处理 | scipy.signal |
| 插值 | scipy.interpolate |
| 统计回归 | statsmodels, sklearn.linear_model |
| 变点检测 | ruptures |
| 交叉验证 | sklearn.model_selection |
| 组合枚举 | itertools |
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)