当前位置:   article > 正文

2023年数维杯国际赛B题赛题解题思路+部分代码_相同脱硫灰比例的催化作用下,ce和lg的热解产物产率以及热解气体各组分产率是否存

相同脱硫灰比例的催化作用下,ce和lg的热解产物产率以及热解气体各组分产率是否存

问题B:棉秸秆热解的催化反应

B题催化剂为背景的题目,该赛题与2021年国赛B题高度相仿。同时,本人21年带了一队国一、一队国二。出于对这个赛题的特殊感情,本次竞赛的所有助攻将围绕这个问题展开(论文、代码、数据结果等),下面对B题进行简要的思路介绍。

数据类题目,第一步都是数据预处理。无论到底有没有异常值、缺失值都要进行处理。及时没有异常值、缺失值也要说,进行了相应的处理,未发现异常值。(可以参考2017年国赛C题的数据预处理,数据没问题,组委会仍然设置了10分的数据预处理分值)。然后对于给出的数据简单的绘制散点图,进行描述即可完成数据预处理的工作。

(1)对于附件一中的每个热解组合,分析热解产物(焦油、水、焦炭渣、合成气)的收率与相应热解组合的混合比的关系,并说明脱硫灰作为催化剂是否对促进棉秸秆、纤维素和木质素的热解有重要作用?

问题一,对附件一进行分析分析热解产物(焦油、水 、焦炭渣、合成气)的收率与相应热解组合的混合比的关系。简单的做法利用数据处理绘制的散点图直接描述正负相关即可,这样这一问可以直接拿到60%的分数。如果不满足可以直接分析折线图判断反应机理,拟合出确切的函数关系。后者大概可以拿到70-80%的分数。

创新点,可以使用相关性分析得出指标值之间的关系,利用矩阵热力图等,增加可视化效果。这样就可以多拿分。

下面是python绘图代码,也可以使用matlab或者excel都是可以的

  1. MixtureRatio:混合比(例如 10/100, 20/100, ...)
  2. TarYield:焦油产率
  3. WaterYield:水产率
  4. CharYield:焦炭渣产率
  5. GasYield:合成气产率
  6. import pandas as pd
  7. import matplotlib.pyplot as plt
  8. import seaborn as sns
  9. # 替换以下路径为你的实际文件路径
  10. file_path = 'path_to_your_data.xlsx'
  11. data = pd.read_excel(file_path)
  12. # 基本统计描述
  13. description = data.describe()
  14. print(description)
  15. # 假设混合比是以 '10/100' 这种格式存储的,我们需要转换它为数值型
  16. data['MixtureRatio'] = data['MixtureRatio'].apply(lambda x: int(x.split('/')[0]))
  17. # 制作散点图
  18. plt.figure(figsize=(12, 8))
  19. sns.scatterplot(x='MixtureRatio', y='TarYield', data=data, label='焦油产率')
  20. sns.scatterplot(x='MixtureRatio', y='WaterYield', data=data, label='水产率')
  21. sns.scatterplot(x='MixtureRatio', y='CharYield', data=data, label='焦炭渣产率')
  22. sns.scatterplot(x='MixtureRatio', y='GasYield', data=data, label='合成气产率')
  23. plt.xlabel('混合比')
  24. plt.ylabel('产率')
  25. plt.title('热解产物收率与混合比的关系')
  26. plt.legend()
  27. plt.show()

(2) 根据附件二,对于三种热解组合中的每一种,通过制作相应的图像,讨论了热解组合的混合比对产率的影响,并解释了每组热解气体的影响。

问题二,对附件二进行分析处理。首先制作相应的图像,这里绘制散点图就可以或者折线图。讨论了热解组合的混合比对产率的影响,可以类似与问题一的简单做法,直接讨论正负相关。也可以尝试得到确切的函数关系。

基本步骤与问题一相同。无非就是对数据绘制折线图,进行文字描述分析,最后可以加入一个相关性分析增加亮点。

(3) 在相同比例的脱硫灰的催化作用下,CE和LG热解产物的产率以及热解气组分的产率是否存在显著差异?请提供理由。

问题三,对同种比例下的结果进行显著性分析即可。什么是显著性分析,大家去上网一查就能学会。下面给出部分实现代码。

 

  1. import pandas as pd
  2. from scipy import stats
  3. # 替换以下路径为你的实际文件路径
  4. file_path = 'path_to_your_data.xlsx'
  5. data = pd.read_excel(file_path)
  6. # 假设混合比是以 '10/100' 这种格式存储的,我们需要转换它为数值型
  7. data['MixtureRatio'] = data['MixtureRatio'].apply(lambda x: int(x.split('/')[0]))
  8. group1 = data[data['MixtureRatio'] == 10]['TarYield']
  9. group2 = data[data['MixtureRatio'] == 20]['TarYield']
  10. # 使用 ttest_ind 函数进行两独立样本的t检验
  11. t_statistic, p_value = stats.ttest_ind(group1, group2)
  12. # 输出结果
  13. if p_value < 0.05: # 假设显著性水平为 0.05
  14. print(f'两组数据在显著性水平下存在显著差异,t统计量为 {t_statistic:.3f}, p值为 {p_value:.3f}')
  15. else:
  16. print(f'两组数据在显著性水平下没有显著差异,t统计量为 {t_statistic:.3f}, p值为 {p_value:.3f}')
  17. 或者是matlab代码
  18. % 假设数据已经导入到 MATLAB,存在于表格 'data'
  19. % data 包含列 'MixtureRatio''TarYield'
  20. % 假设我们比较的是混合比为1020的两组数据
  21. group1 = data.TarYield(data.MixtureRatio == 10);
  22. group2 = data.TarYield(data.MixtureRatio == 20);
  23. % 使用 ttest2 函数进行两独立样本的t检验
  24. % 返回值 h 是检验的结果(0 表示接受零假设,即认为没有显著差异;1 表示拒绝零假设,即存在显著差异)
  25. % p 是检验的 p 值
  26. [h, p] = ttest2(group1, group2);
  27. % 输出结果
  28. if h == 1
  29. fprintf('两组数据在显著性水平下存在显著差异,p 值为 %.3f\n', p);
  30. else
  31. fprintf('两组数据在显著性水平下没有显著差异,p 值为 %.3f\n', p);
  32. End

 

注意事项:

数据正态性:t检验通常假设数据是正态分布的。如果数据不符合这一假设,可能需要使用其他类型的检验,如非参数检验(例如Wilcoxon rank-sum test)。

数据方差齐性:t检验还假设两组数据具有相同的方差。如果不确定是否满足这一假设,可以使用Levene's test来检验方差齐性。

(4) 如何建立CE、LG等模型化合物的脱硫灰的催化反应机理模型,并建立反应动力学模型进行分析?

问题四,可以理解为想要我们得到确切的函数表达式,即随着比例的变化,生成的产物的变化等等。这里就可以直接使用回归分析得到一元线性或者非线性表达式即可。

(5) 请使用数学模型或人工智能学习方法来制作在有限的数据条件下,对热解产物的产量或数量的预测。

问题五,预测模型。简单的可以直接使用问题四的函数表达式进行回归预测。复杂的可以根据题目说的使用机器学习进行月都是可以的。前者更加注重问题模型的整体新,后者模型更加高级。想要融合两者,可以使用加权平均预测。

下面是论文中,加权预测的部分,大家可以赏析一下。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/579344
推荐阅读
相关标签
  

闽ICP备14008679号