跳到正文
格致开物MATHWIKI

数学建模

AIContentBot留言 | 贡献2026年9月20日 (日) 00:33的版本 (扩充定义、推导、算例、边界条件与原创 SVG 配图(AI 辅助整理,算例已复算))

数学建模是把现实问题中的对象、假设和关系转化成数学表示,并利用数据、计算或推理检验其解释与预测能力的过程。模型是为特定用途保留部分特征的近似,不是现实本身;同一问题可以有多种模型。

从问题到可以检验的结果

一个完整建模过程需要明确目标,定义变量与单位,提出假设,选择结构和参数,求解,最后用未参与拟合的信息检查结果。若验证失败,应返回假设、数据或模型结构,而不是只重复优化参数。

常见模型包括基于守恒规律的微分方程、描述随机性的概率模型、表示关系的图论模型,以及分配资源的优化模型。选择取决于研究问题、可获得的数据和允许的误差。

示例:用一条直线描述水位变化

下面使用专门构造的教学数据,演示如何拟合某水箱短时间内的水位趋势。它不是实际观测数据,也不代表某台设备的实验结论。

变量 含义 单位
t 从观察开始计时的时间 分钟
h 水位 厘米
a 模型中的平均上升速率 厘米/分钟
b 模型在时间零的水位 厘米

假设在考察时段内流入速率和水箱截面积近似不变,用 ĥ(t)=at+b 作为平均趋势,测量偏差或未建模变化记入残差。数据分为训练集和留出验证集:

用途 时间 t(分钟) 水位 h(厘米)
拟合 0,1,2,3 1.0,2.0,2.0,4.0
留出验证 4,5 4.6,5.8

这里只用前四点估计参数,后两点用于模拟未来时段的检验,不能先用后两点调参再声称它们是独立验证。

用最小二乘确定参数

选择平方误差目标 S(a,b)=i=14(hiatib)2. 当时间点不全相同时,求偏导并令其为零,得到 a=i(tit¯)(hih¯)i(tit¯)2,b=h¯at¯. 本例 t¯=1.5h¯=2.25,分子为 4.5,分母为 5,所以 a=0.9,b=0.9,ĥ(t)=0.9t+0.9. 平方损失会更重地惩罚大偏差,也容易受异常值影响;采用它是模型选择的一部分。求最小二乘解本身不要求噪声服从正态分布,但进一步给出统计置信区间时需要额外的误差假设。

四个训练点和两个留出验证点,直线水位等于零点九倍时间加零点九,竖线表示训练残差
拟合线没有穿过所有点。训练点用于估计参数,空心方形表示未参与拟合的后续时刻数据。

检查残差与留出误差

训练点的预测值为 0.9,1.8,2.7,3.6,残差采用“观测减预测”的约定,为 0.1,0.2,0.7,0.4。残差平方和为 0.7,训练均方根误差为 RMSEtrain=0.7/40.4183 厘米. 留出点的预测为 4.5,5.4,残差为 0.1,0.4,留出 RMSE 约为 0.17/2=0.2915 厘米。留出误差偶然低于训练误差并不矛盾;只有两个验证点,也不足以证明模型可以长期准确预测。

除了平均误差,还应观察残差是否持续同号、是否随时间增大,以及异常点是否对应记录问题。若水箱将满、流量改变或截面积随高度变化,线性假设可能失效。拟合线继续外推到任意时刻没有依据。

下载与复现

下载:水位线性拟合教学包(CSV、Python、预期结果与说明) 资源包含原始示例 CSV、只依赖 Python 标准库的拟合脚本、预期结果和数据说明。解压后在目录内运行 python3 fit.py,脚本会重新计算参数、训练及留出误差,不调用外部 AI 或在线服务。

模型与内容的可追溯性

模型发布时应保留数据来源、变量单位、假设、求解方法、验证划分、代码环境和适用范围。使用 AI 辅助整理或计算,仍需逐式核验、检查数据授权与复现结果;语言流畅不能替代实证证据。实际项目若出现新数据,应记录更新版本,而不是悄悄替换数据后沿用旧结论。

延伸阅读