2025年数学建模国赛集训笔记
Notes
动态过程建模
多项式拟合
利用最小二乘法拟合多项式。通常最多用到三次多项式。
适合小范围内的数据拟合、预测。
Fourier级数拟合
适合具有明显周期性波动特点的数据拟合,例如气温、光照、城市用电等的。
时间序列分析
没有明显多项式特征(不平滑)或周期性,具有一定随机性。
差分方程
元胞自动机
兼顾时间和空间维度,例如生物的迁移,污染物、烟尘、火焰的扩散。
微分方程
几类特殊的微分方程可以求解析解。
常微分方程的稳定点、极限环,可以用于分析稳定性。
最优化方法建模
指派问题(assignment prob.)
最优化问题的一般数学模型
设定\(\vec x\in\mathbb R^n\),在满足约束\(g_i(\vec x)=0\)和\(h_i(\vec x)\leq0\)的条件下,求\(\min f(\vec x)\)。
不同软件求出的最优解可能不同,因为都是求的局部最优解。
组合/离散最优化问题
寻找离散事件的最优编排、分组、次序或筛选等。大多情况下可行域为有限点集,但往往因为计算量过大而没有可以接受的algorithm。
例如:背包问题、旅行商问题(最短Hamilton回路)、装箱问题。
求近似解(采用heuristic):贪心、邻域搜索、禁忌搜索、遗传、模拟退火、人工神经网络、蚁群。
统计学方法与数据挖掘
探索性分析
假设检验
微分方程及其数值解法
Fourier定律:
则对于闭区域\(\Omega\subset\mathbb R^3\),有
再对时间积分,得
解一阶常微分方程的前向欧拉法
给定一阶常微分方程
\[\frac{\mathrm dy}{\mathrm dx}=\varphi(x,y) \]和初值
\[f(x_0)=y_0 \]求函数\(y=f(x)\)。
由导数定义,
故有近似
因此
所以有迭代式
其中
特点
简单直观,计算量小,在线算法;精度较低,稳定性差。
在实际的科学和工程计算中,人们通常会使用更高阶、更稳健的方法,如改进欧拉法、龙格-库塔法(Runge-Kutta methods)等。
解一阶常微分方程的改进欧拉法
改进欧拉法也常被称为休恩法(Heun's Method)或二阶龙格-库塔法(RK2),它相对于前向欧拉法显著提升了计算的准确性。其核心思想是,与其只用起点的斜率,不如用一个更具代表性的平均斜率来计算下一步。它通过预测-校正的步骤来获得这个平均斜率。
预测
设\((x_n,y_n)\)已知,起点斜率\(k_{n,0}=f'(x_n)=\varphi(x_n,y_n)\)。按照前向欧拉法,可以求出预测值\(\tilde y_{n+1}=y_n+\delta\cdot k_{n,0}\)。
校正
计算终点斜率的估计值\(k_{n,1}=f'(x_{n+1})=\varphi(x_{n+1},y_{n+1})\approx\varphi(x_{n+1},\tilde y_{n+1})\)。以平均斜率\(\overline k_n=\frac{1}{2}(k_{n,0}+k_{n,1})\)来作为整个区间的“最佳”斜率。于是得
龙格-库塔法
龙格-库塔法不是指某一个特定的方法,而是一个庞大的方法家族。它们的共同思想是通过在当前区间内巧妙地选取几个点进行“探测”,并对这些点上的斜率进行加权平均,从而得到一个精度极高的对整个区间平均斜率的估计。前向欧拉法、改进欧拉法分别可以看作一阶和二阶的龙格-库塔法,简写为RK1和RK2。但通常说的龙格-库塔法特指四阶,即RK4。
改进欧拉法的优化启发我们考虑更优秀的斜率计算方式。RK4和前面方法一样,都是从点\((x_n,y_n)\)出发,计算出下一个点\((x_{n+1},y_{n+1})\)的近似值。但它不像改进欧拉法那样只“预测-校正”一次,而是通过计算4个不同的斜率值来获得一个非常精确的加权平均斜率。
计算起点斜率
计算第一个中点斜率
这相当于“预测”向前“走半步”(\(\frac{1}{2}\delta\))到达的位置。
计算第二个中点斜率
计算终点斜率
这是利用\(k_{n,3}\)估计区间终点位置,并计算斜率。
求加权平均斜率
利用这个平均斜率,估计下一个点
特点
精度极高,稳定性好,在线算法;计算量较大。
更高级的龙格-库塔法还包括嵌入式方法(如RK45或Dormand-Prince),它们在每一步计算两个不同阶数的结果,通过比较二者的差异来自适应地调整步长\(\delta\),从而在保证精度的前提下,实现最高的计算效率。这些自适应步长的方法是现代ODE求解器的核心。
机器学习
线性回归
普通最小二乘法(ordinary linear square, OLS)
给定输入\(X\in\mathbb F^{n\times m}\)和对应的输出\(\vec y\in\mathbb F^n\),求系数\(\vec a\in\mathbb F^m\)和偏置\(b\in\mathbb F\)使\(\vec y\)与\((X\vec a+b\vec1)\)尽可能接近,即误差\(\vec e=\vec y-(X\vec a+b\vec1)\)的模\(\Vert\vec e\Vert\)尽可能小。
当数据满足以下条件时
- 自变量和因变量之间存在线性关系。
- \(\tilde X^\top\tilde X\)可逆,此时\(X\)不能多重共线。
- 自变量与误差项不相关。
- 误差项具有恒定的方差。
- 误差项之间相互独立。
- \(m<n\),即特征数量小于数据组数。
有
其中增广矩阵\(\tilde X=\begin{bmatrix}X & \vec1\end{bmatrix}\)。
正则化方法
如果输入\(X\)有多重共线的情况,或者如果\(n\leq m\)了,OLS就会爆炸。为了让回归模型更稳定,同时缓解过拟合问题,数学家们引入了正则化/惩罚项(regularizer/penalty),这个操作称为正则化(regularization)。引入正则化项后,要最小化的目标函数就变为了
L2正则化
引入了L2正则化的线性回归又称为Ridge回归。相比于OLS,Ridge回归允许数据存在多重共线性,也允许\(m\geq n\),但要求对数据进行缩放(scaling)预处理。
采用系数的L2范数的平方\(\Vert\vec a\Vert_2^2\)作为惩罚项,此时目标函数
其中\(\lambda\)称为正则化强度。可以解得最小值点
其中
L1正则化
引入了L1正则化的线性回归又称为LASSO(least absolute shrinkage and selection operator)回归。LASSO允许一定程度的共线性,但当共线性较强时可能不稳定。LASSO同样允许\(m\geq n\),要求缩放预处理。
采用L1范数\(\Vert\vec a\Vert_1\)作为惩罚项,此时
LASSO回归通常没有解析解。
Elastic Net
同时引入这两种正则化项的回归称为弹性网络(elastic net)回归。它适合处理存在高度相关的特征组,希望进行特征选择,且\(m\gg n\)的情况,同样要求缩放预处理。
同时加上两个惩罚项,得
其中\(\alpha\in[0,1]\)。
降维
维数过多会导致计算量大、模型性能下降等问题,需要降维处理。利用LASSO回归可以筛除多余特征量(即系数为\(0\)的特征)。
通常采用两步法回归(Relaxed LASSO):
- 计算LASSO的系数估计结果,选出合适的变量。
- 对于选出的变量,应用Ridge回归。
数值计算
线性方程组的解法
直接方法
Gauss消元。忽略舍入误差时,经过有限次算术运算即可得到精确解。
迭代法
构造无穷数列逼近精确解,通常在有限步内得不到精确解。
矩阵最大、最小特征值计算
幂法
当我们用一个矩阵\(A\)反复左乘一个初始向量\(\vec v_0\)时,得到的向量序列的方向会逐渐收敛到矩阵\(A\)的主特征向量的方向。
设\(A\in\mathbb F^{n\times n}\)可以特征值分解为\(X\Lambda X^{-1}\),\(\vec\lambda=\mathrm{diag}\ \Lambda\),且\(A\)有一个严格的主特征值,即\(\lambda_0>\lambda_1,\ \forall i\in\mathbb N\cap[1,n-1)\ (|\lambda_i|\geq|\lambda_{i+1}|)\)。
设\(X=[\vec x_i]_{i=0}^{n-1}\)。任取非零初始向量\(\vec x_0\),由矩阵\(A\)构造向量列\(\{\vec v_i\}_{i=0}^n\)使得\(\vec v_{i+1}=A\vec v_i\)。因为这\(n\)个特征向量线性无关,故存在\(\vec c\in\mathbb F^n\backslash\{\vec0\}\)满足
于是
因为\(\forall i\in\mathbb N\cap[1,n)\ (\lambda_0>\lambda_i)\),所以随着\(i\)增大,\(\vec v_i\)会越来越接近\(\vec x_0\)方向。
基于以上性质设计的求\(\lambda_0\)的算法称为幂法(power iteration)。
当\(\vec x_i\)非常已经接近主特征向量时,可以通过瑞利商(Rayleigh quotient)更稳定而精确地求出主特征值:

浙公网安备 33010602011771号