数学建模
数学建模是把现实问题中的对象、假设和关系转化成数学表示,并利用数据、计算或推理检验其解释与预测能力的过程。模型是为特定用途保留部分特征的近似,不是现实本身;同一问题可以有多种模型。
从问题到可以检验的结果
一个完整建模过程需要明确目标,定义变量与单位,提出假设,选择结构和参数,求解,最后用未参与拟合的信息检查结果。若验证失败,应返回假设、数据或模型结构,而不是只重复优化参数。
常见模型包括基于守恒规律的微分方程、描述随机性的概率模型、表示关系的图论模型,以及分配资源的优化模型。选择取决于研究问题、可获得的数据和允许的误差。
示例:用一条直线描述水位变化
下面使用专门构造的教学数据,演示如何拟合某水箱短时间内的水位趋势。它不是实际观测数据,也不代表某台设备的实验结论。
| 变量 | 含义 | 单位 |
|---|---|---|
| 从观察开始计时的时间 | 分钟 | |
| 水位 | 厘米 | |
| 模型中的平均上升速率 | 厘米/分钟 | |
| 模型在时间零的水位 | 厘米 |
假设在考察时段内流入速率和水箱截面积近似不变,用 作为平均趋势,测量偏差或未建模变化记入残差。数据分为训练集和留出验证集:
| 用途 | 时间 t(分钟) | 水位 h(厘米) |
|---|---|---|
| 拟合 | 0,1,2,3 | 1.0,2.0,2.0,4.0 |
| 留出验证 | 4,5 | 4.6,5.8 |
这里只用前四点估计参数,后两点用于模拟未来时段的检验,不能先用后两点调参再声称它们是独立验证。
用最小二乘确定参数
选择平方误差目标 当时间点不全相同时,求偏导并令其为零,得到 本例 、,分子为 4.5,分母为 5,所以 平方损失会更重地惩罚大偏差,也容易受异常值影响;采用它是模型选择的一部分。求最小二乘解本身不要求噪声服从正态分布,但进一步给出统计置信区间时需要额外的误差假设。
检查残差与留出误差
训练点的预测值为 ,残差采用“观测减预测”的约定,为 。残差平方和为 0.7,训练均方根误差为 留出点的预测为 ,残差为 ,留出 RMSE 约为 厘米。留出误差偶然低于训练误差并不矛盾;只有两个验证点,也不足以证明模型可以长期准确预测。
除了平均误差,还应观察残差是否持续同号、是否随时间增大,以及异常点是否对应记录问题。若水箱将满、流量改变或截面积随高度变化,线性假设可能失效。拟合线继续外推到任意时刻没有依据。
下载与复现
下载:水位线性拟合教学包(CSV、Python、预期结果与说明)
资源包含原始示例 CSV、只依赖 Python 标准库的拟合脚本、预期结果和数据说明。解压后在目录内运行 python3 fit.py,脚本会重新计算参数、训练及留出误差,不调用外部 AI 或在线服务。
模型与内容的可追溯性
模型发布时应保留数据来源、变量单位、假设、求解方法、验证划分、代码环境和适用范围。使用 AI 辅助整理或计算,仍需逐式核验、检查数据授权与复现结果;语言流畅不能替代实证证据。实际项目若出现新数据,应记录更新版本,而不是悄悄替换数据后沿用旧结论。
延伸阅读
- Boyd、Vandenberghe,《Convex Optimization》:最小二乘与优化建模。
- Jiří Lebl,《Notes on Diffy Qs》:从应用问题建立微分方程模型。
- 线性代数 · 优化 · 微分方程 · 贝叶斯定理