国赛经历复盘


2021年数学建模国赛时间: $9$ 月 $9$ 日 $18:00$ 到 $9$ 月 $12$ 日 $22:00$

第一天(9月9~10日)

出第一、二、三、四问思路

第一问

对数据采用三次样条插值方法进行插值,再将温度视为自变量,将乙醇转化率、C4 烯烃的选择性视为因变量,对插值出的结果进行拟合,求得具体函数。

先使用两项指标(乙醇转化率、C4 烯烃的选择性)分别做为横轴纵轴,描出二维空间中的点,并进行插值再拟合得到附件二对应的乙醇转化率-C4 烯烃的选择性函数,再在二维空间中描出 $A_{1}$ 到 $B_{7}$ 的 $21$ 个点,分别求点到直线的距离 $d(x_{i},y_{i}) \ 1 \leq i \leq 21$,求出最小的 $(x_{i},y_{i})$ :
$$
x_{min},y_{min}=arg_{x,y} min \ d(x,y)
$$

算法步骤(步骤不是重点,阐述模型才是重点)

采用分割逼近的方法,我们可以计算得到给定点到二维平面曲线的最小距离

  1. 对第一问中得到的二维函数进行切割,得到切割后的 $n$ 条曲线段;

  2. 计算给定点 $P\left(x_{k}, y_{k}\right)$ 到曲线段 $S_i(x)$ 左右两个端点 $(x_{i1},y_{i1}),(x_{i2},y_{i2})$ 的距离;

$$
\begin{aligned}
&\triangle t_{i1}=\sqrt{\left[x_{k}-x_{i1}\right]^{2}+\left[y_{k}-y_{i1}\right]^{2}} \
&\triangle t_{i2}=\sqrt{\left[x_{k}-x_{i2}\right]^{2}+\left[y_{k}-y_{i2}\right]^{2}}
\end{aligned}
$$

  1. 计算 $\triangle t_{i}^{1}$ 与 $\triangle t_{i}^{2}$ 的较小值;

$$
\triangle t_{i}=\min \left{\triangle t_{i}^{1}, \triangle t_{i}^{2}\right}
$$

  1. 求出整条曲线上 $\triangle t_i$ 最小的曲线段 $S_{i_min}(x)$ ,有给定点到函数的最小距离必然落在曲线段 $S_{i_min}(x)$ 上;

  2. 将曲线段 $S_{i_min}(x)$ 沿 $x$ 轴正方向等间距分为 $2$ 条,再重复上述步骤进行求解,直到分割后得到的 $2$ 个端点间的 $x$ 方向间距小于给定的计算精度 $\epsilon$ 为止。

备选方法

分别以附件二中的七项指标为坐标轴,描出七维空间中的点,再拟合构造七维空间中的函数,考虑 $21$ 个催化剂组合点与函数的欧氏距离(距离求解参考文献 ),找到距离最小的点,即为模型结果。

附件二中乙烯选择性、甲基苯甲醛和甲基苯甲醇选择性中的异常值较少,可以忽略,以减少计算量

数据降维:将七维数据转为二维数据,进行插值拟合,得到函数,再求出最近距离的点。

追赶法也可以考虑。

第三问

由于温度最高点以右的函数图像为预测值,不能保证其正确性,所以我们选择可靠图像的最右侧点作为最优选点。

可以考虑使用数据同趋化方法进行数据处理。

第四问

  1. 多次重复实验方法:Python模拟多次采样通过低概率事件多次重复实验趋近必然事件

  2. 聚类思想,以提高空间覆盖率为目的

空间内距离平方公式(椭圆):

$f(\triangle x,\triangle y,\triangle z) = a \times (x_1-x_2)^2 + b \times (y_1-y_2)^2 + c \times (z_1-z_2)^2$

其中 $a,b,c$ 为各指标的重要度

$a,b,c$ 怎么确定?

  1. 以结果更优作为重要度评判标准,沿着该方向结果越优秀(eg.若 Co/SiO2 质量比越高,选择率越高,则将 Co/SiO2 质量比的重要度提升),重要度越高。有实际意义,但不一定能显著提高空间覆盖率
  2. 以空旷程度作为重要度评判标准,数据点越空旷,重要度越高。可以最大程度提高空间覆盖率,但可能没有实际意义(eg.过高或过低的温度显然不符合实际意义)
  3. $1:1:1$ 实现最为简单,也需要统一量纲 $10mg \ 1% \ 1ml/min \ 1°C$

第二天(9月11日)

第一问第一小问具体实现步骤&第二小问具体实现步骤补充

第二问思路多次推翻重构

第三问思路重构

第四问思路重构

第一问

第一小问:

以温度 $x$ 为自变量,乙醇转化率 $y$ 为因变量,设置插值函数 $y=f(x)$ ,同理以温度 $x$ 为自变量,以 $C4$ 烯烃选择性 $z$ 为因变量,设置插值函数 $z=g(x)$ 。

我们采用三次样条插值的方法,使 $f(x),g(x)$ 满足下列条件:

  1. $f(x_i)=y_i,g(x_i)=z_i$ ,其中 $x_i$ 为各温度值,$y_i$ 为乙醇转化率值,$z_i$ 为 $C4$ 烯烃转化率值;
  2. 在每个子区间 $\left[x_i,x_{i+1}\right]$ 上 $f(x),g(x)$ 是三次多项式;
  3. $f(x),g(x)$ 在 $[200,450]$ 上二阶连续可微;

再使用 $Python$ 程序,分别读取数据并绘制 $f(x)$ ,$g(x)$ 图像,得到乙醇转化率、$C4$ 烯烃的选择性与温度的关系。

最后需加上流程图与文字总结

第二小问:

由模型假设,我们可知反应在一定时间后会达到平衡状态,选取附件 $2$ 中反应平衡后的乙醇转化率 $y$ 与 $C4$ 烯烃选择性 $z$ ,作点 $P(y,z)$ 。

分别选取附件 $1$ 中第 $i$ 种催化剂组合下 $350^{o}C$ 时的乙醇转化率 $y_i$ 与 $C4$ 烯烃选择性 $z_i$ ,作 $21$ 个点 $Q_i(y_i,z_i)$ ,其中 $1 \leq i \leq 21$ 。

再分别求点 $P(y,z)$ 与点 $Q_{i}(y_i,z_i)$ 间的距离 $d$ 并找到其最小值 $d_{min}$

$$
d_i=\sqrt{(y-y_i)^2+(z-z_i)^2}
$$

$$
d_{min} = \min_{1\leq i\leq 21} d_i
$$

求得与 $P(y,z)$ 距离最小的点 $Q_{t}(x_t,y_t)$ ,即可得出与附件 $2$ 最匹配的为附件 $1$ 中的第 $t$ 种催化剂组合。

无需分开每个催化剂因素,以概率论课本 $423$ 页方式,按照 A1,A2,……,B7 方式设置每个催化剂组合

第二问

旧思路

控制变量法

多因子方差分析,注意变量间交互性

方差公式在概率论课本 $426$ 页 $(8.1.13)$ ,检验方法在课本 $427$ 页 $(8.1.17)$ ,得到的值与课本后的表格进行比较得到显著性水平(假设检验)

通过多因子方差分析方法,我们分析催化剂组合及温度-转化率及选择性数据,可以得到 $P$ 为 $XXX$ ,(附上图片说明),有极强相关性,这也从侧面说明催化剂组合及温度对转化率及选择性有显著的影响。

新思路

采用主成分分析法( $PCA$ ),算法步骤如下:

设有 $n$ 种催化剂组合,每种催化剂组合下观测 $p$ 个温度指标,将原始数据写成矩阵
$$
X=\left[\begin{array}{cccc}
x_{11} & x_{12} & \cdots & x_{1 p} \
x_{21} & x_{22} & \cdots & x_{2 p} \
\vdots & \vdots & & \vdots \
x_{n 1} & x_{n 2} & \cdots & x_{n p}
\end{array}\right]
$$

  1. 数据标准化。在计算前需提前消除量纲对数据的影响,即作如下变换:

$$
x_{i j}=\frac{x_{0 i j}-\overline{x_{0 j}}}{s_{0 j}} \
$$

其中 $i=1,2, \cdots, n$ ,$j=1,2, \cdots, p$ ,$x_{0ij}$ 表示带量纲的原始数据,$\overline{x_{0j}}$ 表示 $x_{0ij}$ 的均值,$i$ 表示第 $i$ 个样本,共有 $n$ 个样本,$j$ 表示第 $j$ 个指标变量,共有 $p$ 个指标变量,$x_{ij}$ 表示消除量纲后的原始数据,$s_{0 j}=\sqrt{\frac{1}{n-1} \sum_{i=1}^{n}\left(x_{0 i j}-\overline{x_{0 j}}\right)^{2}}$ 表示第 $j$ 个指标变量的样本标准差。

  1. 计算相关矩阵 $R$

$$
R=\left[\begin{array}{cccc}
r_{11} & r_{12} & \cdots & r_{1 p} \
r_{21} & r_{22} & \cdots & r_{2 p} \
\vdots & \vdots & \cdots & \vdots \
r_{p 1} & r_{p 2} & \cdots & r_{p p}
\end{array}\right]
$$

其中 $r_{i j}=\frac{\sum_{k=1}^{n}\left(x_{k i}-\bar{x}{i}\right)\left(x{i j}-\bar{x}{j}\right)}{\sqrt{\sum{k=1}^{n}\left(x_{k i}-\bar{x}{i}\right)^{2} \sum{k=1}^{n}\left(x_{i j}-\bar{x}_{j}\right)^{2}}}$

  1. 求 $R$ 的特征根及相应的单位特征向量

$$
a_{1}=\left[\begin{array}{c}
a_{11} \
a_{21} \
\vdots \
a_{p 1}
\end{array}\right], a_{2}=\left[\begin{array}{c}
a_{12} \
a_{22} \
\vdots \
a_{p 2}
\end{array}\right], \cdots, a_{p}=\left[\begin{array}{c}
a_{1 p} \
a_{2 p} \
\vdots \
a_{pp}
\end{array}\right]
$$

则有
$$
\begin{gathered}
F_{i}=a_{1i} X_{1}+a_{2 i} X_{2}+\cdots+a_{p i} X_{p} \
i=1, \cdots, p
\end{gathered}
$$
即可写出主成分

  1. 计算主成分贡献率及累计贡献率

贡献率:$\frac{\lambda_{i}}{\sum_{k=1}^{p} \lambda_{k}} \quad(i=1,2, \cdots, p)$

累计贡献率:$\frac{\sum_{k=1}^{i} \lambda_{k}}{\sum_{i=1}^{p} \lambda_{k}}\quad(i=1,2, \cdots, p)$

我们取累计贡献率达 $70%$ 以上的特征值 $\lambda_1,\lambda_2,\cdots,\lambda_m$ 所对应的第 $1,2,\cdots,m\quad(m\leq p)$ 个主成分。

第三天凌晨我们才发现主成分分析( $PCA$ )需要提前计算 $KOM$ 值,值小于 $0.5$ 表示变量间相关性极小,极不适合做主成分分析

参考链接

第二问

采用控制变量法,将催化剂组合拆分为乙醇滴加速率、Co/SiO2质量、Co负载量三个指标,并对各个指标分别设置对照组:

对乙醇滴加速率,我们选择 $A7,A8,A9,A12$ 作为对照组

对Co负载量,我们选择 $A1,A2,A4,A6$ 作为对照组

对Co/SiO2质量,我们选择 $B1,B2,B3,B4,B6$ 作为对照组

对各对照组数据进行方差分析,求对照组中的参数条件是否对结果构成显著影响,再进行拟合处理,得到拟合曲线(拟合曲线见支撑材料)

第三问

以温度 $x$ 为自变量,$C4$ 烯烃收率 $w=xy$ 为因变量,设置函数 $w=h(x)$ ,通过 $Python$ 编程对已知点 $(x_i,w_i)$ 进行拟合,并绘制拟合曲线,选取曲线上 $w$ 最大的点,其对应的催化剂组合及温度即为我们所需要的值。

第四问

寻找以下项目:

  1. $450^{o}C$ 下最大的 $F$ 并求出对应的 $F_1,F_2$
  2. $350^{o}C$ 下最大的 $F$ 并求出对应的 $F_1,F_2$
  3. 验证初始阶段增长最快的超高曲线 $A1$
  4. $375^{o}C$ 下最大的 $F$ 并求出对应的 $F_1,F_2$
  5. $425^{o}C$ 下最大的 $F$ 并求出对应的 $F_1,F_2$

第三天(9月12日)

第四问

旧思路

对三条增速较快,可靠性较低的曲线进行验证($3$ 条)

对第三问中 $427.8^{o}C$ 与 $450^{o}C$ 下的最优解进行验证($2$ 条)

新思路

我们采用 $K-means++$ 算法对四维空间中的点进行聚类,得到的 $5$ 个聚类中心即为我们新增的实验;

我们先在四维空间中等比例设置点,将已有的 $21$ 个点作为聚类中心 $a_{1},a_2,\cdots,a_{21}$

  1. 先随机选择一个中心点 $a_i$ ;
  2. 计算数据到之前 $n$ 个聚类中心最远的距离 $D(x)$ ,并以概率 $P=\frac{D(x)^2}{\sum D(x)^2}$ 选择新中心点 $a_i$ ;
  3. 重复第二步。

最终模型

针对问题一,我们建立了基于 三次样条插值 的乙醇制备 $C4$ 烯烃模型,对每一个组合均进行 独立分析 ,通过建立基于距离最优的 点匹配 模型,将附件一二中两组数据的接近度简化为求解 两点间距离最短问题 ,随后利用 Python 编程 对模型进行求解,从两个维度出发,对数据进行 横纵对比 ,最后绘制堆积曲线图来分析 稳定性测试结果

针对问题二,我们从 三个角度 对问题二进行考虑,前两个角度进行问题一模型的 二次应用 ,第三个角度我们建立了基于 控制变量法 的组合影响模型,将催化剂组合划分成为三个因素,对每一个因素进行控制变量实验,并均 设立对照组 ,并且很好地得到了 $30$ 个小实验的 拟合可视化图 及其对应的 拟合函数方程 ,我们对于拟合方程进行 $R$ 检验 ,得到了不错的拟合优度值,验证了模型的合理性。

针对问题三,我们首先搭建 基于 组合影响模型 的单目标最优模型,将 $C4$ 烯烃收率作为目标,寻求其最大值,并且将温度拓展至 $450$ 度,建立基于 多项式拟合 的温度模型,在温度固定时对单一变量曲线进行拟合,求出最大值。拟合得到图形后,我们分析后 剔除了异常曲线值 ,得到了较为合理的最佳组合取值:$100mg \ 0.5wt%\ Co/SiO2- 100mg\ HAP-乙醇浓度\ 0.61ml/min$ 以及 $75.45mg \ 3.36wt%\ Co/SiO2- 75.45mg\ HAP-乙醇浓度\ 0.30ml/min$ 。

针对问题四,出于对在提高组合 C4 烯烃收率的同时,增加实验数据覆盖广度 的考虑,我们构造基于 K-means++优化、K-means 作基的 K 型聚类分析组合实验模型 ,通过对 $21+k$ 个点进行聚类,将得到的 $5$ 个新聚类中心作为我们的增加组。

最后,我们进行了模型的 优缺点分析 ,并对 模型优化 进行了讨论,对于控制变量法和三次样条插值法进行了 模型的推广 ,增加了模型的 实用性

参考链接

乙醇偶合制备丁醇及C4烯烃

三次样条插值法

三次样条插值(Cubic Spline Interpolation)及代码实现(C语言)

n维空间中距离公式、稳定体体积公式以及勾股定理的拓广

要研究数据组A对数据组B的影响程度大小,应用什么模型研究?

点到曲线的距离

基于几何特征的点到空间参数曲线最小距离的简化算法

分割逼近法快速求解点到复杂平面曲线最小距离

python之print字符串拼接输出方式

将python运行结果保存至本地文件中

B样条曲线(B-spline Curves)

Typora导出word失败

主成分分析(PCA)原理详解

如何通俗易懂地讲解什么是 PCA(主成分分析)? - 马同学的回答 - 知乎

界面内嵌Geogebra_如何理解矩阵特征值和特征向量?

如何通俗易懂地讲解什么是 PCA(主成分分析)? - 论智的回答 - 知乎

全国大学生数学建模竞赛论文格式规范(2020年修订稿)

数学建模——主成分分析(SPSS)

数模系列(2):主成分分析(PCA)

给裸赛的家人们整理了百种算法出处

经验与教训

本次建模比赛中,我们的时间把握非常不到位,在 $MD5$ 码提交前 $10$ 分钟还在修改模型。在本学期的训练中,目标达到看到题目知模型的地步。


文章作者: Heart-of-engine
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Heart-of-engine !
打赏
  目录