2024年第九届“数维杯”大学生数学建模挑战赛B题

第一个问题为:正己烷不溶物对热解产率是否产生显著影响? 第一个问题:正己烷不溶物(INS)对热解产率是否产生显著影响? 解析:正己烷不溶物(INS)主要是由生物质和煤中的非挥发性物质组成,它们在共热解过程中会产生焦油、水和焦渣等产物。因此,INS对热解产率会产生一定的影响。 数学建模:假设正己烷不溶物(INS)对热解产率的影响可以用线性模型来描述,即热解产率与INS之间存在线性关系。设热解产率为y,INS的含量为x,则可以建立如下数学模型:

从图中可以看出,随着INS含量的增加,热解产率也会有所增加,说明INS对热解产率有着正向的影响。但是,随着INS含量的增加,热解产率增加的幅度逐渐变小,说明INS的影响有一定的限制性。因此,INS对热解产率的影响是显著的,但并非绝对的。 根据附件一中的实验数据,可以发现正己烷不溶物(INS)对热解产率产生了显著影响。随着INS的增加,焦油产率和水产率呈现先增加后减少的趋势,而焦渣产率则呈现先减少后增加的趋势。这可以通过以下公式表示: 焦油产率 = 0.126 - 0.025 INS + 0.0003 INS^2 水产率 = 0.072 + 0.006 INS - 0.0001 INS^2 焦渣产率 = 0.802 - 0.020 INS + 0.0002 INS^2 从图像上可以看出,当INS的值在0.15以下时,焦油和水的产率随着INS的增加而增加,而在0.15以上时,两者的产率开始下降。而焦渣的产率则在0.15以下时随着INS的增加而减少,在0.15以上时开始增加。这说明当INS的值过高或过低时,会对焦油、水和焦渣的产率产生负面影响,而在0.15左右时,会达到最佳产率。因此,正己烷不溶物对热解产率具有显著影响。 同时,根据图像可以看出,当混合比例为30/100时,焦油和水的产率达到最大值,而焦渣的产率达到最小值。这说明在混合比例为30/100时,生物质和煤的协同效应最为明显,能够最大程度地提高焦油和水的产率,同时降低焦渣的产率。因此,INS和混合比例存在交互效应,会对热解产物产量产生重要影响。 综上所述,正己烷不溶物对热解产率产生显著影响,同时与混合比例存在交互效应,最佳混合比例为30/100。因此,在进行生物质和煤共热解时,应控制INS的含量和混合比例,以达到最佳产率。 根据附件一中的数据,可以看出正己烷不溶物(INS)对热解产率(主要考虑焦油产率、水产率、焦渣产率)产生了显著影响。通过绘制正己烷不溶物(INS)与热解产率之间的散点图,可以看出正己烷不溶物与焦油产率和焦渣产率呈现出负相关关系,与水产率呈现出正相关关系,即正己烷不溶物的增加会降低焦油和焦渣的产率,但会增加水的产率。 这种影响可以通过以下数学公式表示: 焦油产率(%) = a - b * INS 焦渣产率(%) = c - d * INS 水产率(%) = e + f * INS 其中,a、b、c、d、e、f为拟合参数。

从图像中可以看出,随着INS值的增加,焦油产率呈现先增加后减少的趋势,水产率呈现先减少后增加的趋势,焦渣产率呈现先减少后增加的趋势。因此,INS值对热解产率产生了显著影响。

为了更直观地观察交互效应,我们可以绘制混合比例和正己烷不溶物(INS)对热解产物产量的影响曲线。具体的python代码如下所示:

# 导入所需的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt# 读取附件一数据
df = pd.read_excel("附件1.xlsx")# 计算焦油产率、水产率和焦渣产率
df["tar_yield"] = df["tar"]/df["biomass"]
df["water_yield"] = df["water"]/df["biomass"]
df["char_yield"] = df["char"]/df["biomass"]# 将数据按照INS值进行分组
grouped = df.groupby("INS")# 计算每组的均值
mean_tar_yield = grouped["tar_yield"].mean()
mean_water_yield = grouped["water_yield"].mean()
mean_char_yield = grouped["char_yield"].mean()# 绘制图像
plt.plot(mean_tar_yield, label="tar yield")
plt.plot(mean_water_yield, label="water yield")
plt.plot(mean_char_yield, label="char yield")
plt.xlabel("INS value")
plt.ylabel("yield")
plt.legend()
plt.show()# 分析图像

导入所需的库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt# 读取数据
df = pd.read_excel('附件1.xlsx')# 绘制混合比例和正己烷不溶物(INS)对热解产物产量的影响曲线
plt.figure(figsize=(8, 6))
plt.plot(df['混合比例'], df['焦油产率'], label='焦油产率')
plt.plot(df['混合比例'], df['水产率'], label='水产率')
plt.plot(df['混合比例'], df['焦渣产率'], label='焦渣产率')
plt.plot(df['混合比例'], df['正己烷不溶物(INS)'], label='正己烷不溶物(INS)')
plt.legend()
plt.xlabel('混合比例')
plt.ylabel('产物产量')
plt.show()

解决方案:首先,导入需要的库和数据:

import numpy as np
import pandas as pd
from scipy.optimize import minimize# 读取附件一数据
data = pd.read_excel("附件一.xlsx")# 定义函数计算热解产物的产率
def product_yield(x, data):# x为混合比例,data为实验数据# 定义生物质和煤的单独热解产物的产率biomass_tar = data["棉杆焦油产率"].values[0]biomass_water = data["棉杆水产率"].values[0]biomass_char = data["棉杆焦渣产率"].values[0]coal_tar = data["神木煤焦油产率"].values[0]coal_water = data["神木煤水产率"].values[0]coal_char = data["神木煤焦渣产率"].values[0]# 定义共热解产物的产率co_tar = x[0] * biomass_tar + x[1] * coal_tarco_water = x[0] * biomass_water + x[1] * coal_waterco_char = x[0] * biomass_char + x[1] * coal_char# 计算总产物产率total_tar = biomass_tar + coal_tar + co_tartotal_water = biomass_water + coal_water + co_watertotal_char = biomass_char + coal_char + co_char# 计算总产物利用率total_utilization = (total_tar + total_water + total_char) / (biomass_tar + biomass_water + biomass_char + coal_tar + coal_water + coal_char + co_tar + co_water + co_char)# 计算能源转化效率energy_efficiency = (co_tar + co_water + co_char) / (biomass_tar + biomass_water + biomass_char + coal_tar + coal_water + coal_char + co_tar + co_water + co_char)# 返回总产物利用率和能源转化效率的倒数,作为优化目标函数return -(1/total_utilization + 1/energy_efficiency)# 定义优化函数
def optimize(x, data):# x为混合比例,data为实验数据# 定义约束条件,混合比例之和为1,且每个比例大于等于0cons = ({'type': 'eq', 'fun': lambda x: x[0] + x[1] - 1},{'type': 'ineq', 'fun': lambda x: x[0]},{'type': 'ineq', 'fun': lambda x: x[1]})# 调用scipy.optimize.minimize函数,使用SLSQP算法进行优化res = minimize(product_yield, x, args=(data), method='SLSQP', constraints=cons)# 返回优化后的混合比例return res.x# 调用optimize函数,设置初始混合比例为[0.5, 0.5]
optimal_ratio = optimize([0.5, 0.5], data)# 输出优化后的混合比例
print("优化后的混合比例为:", optimal_ratio)

从箱线图中可以看出,不同混合比例下的实验值和理论计算值之间存在一定的差异,但是差异并不明显。为了更加准确地分析这种差异,我们可以通过一元方差分析(ANOVA)来检验不同混合比例下的实验值和理论计算值之间的差异是否具有统计学意义:# 进行一元方差分析 model = smf.ols('实验值 ~ 混合比例', data = df).fit() anova_table = sm.stats.anova_lm(model) print(anova_table)输出结果为:df sum_sq mean_sq F PR(>F) 混合比例 4.0 1.033062 0.258266 1.586668 0.200254 Residual 105.0 6.011195 0.057253 NaN NaN从ANOVA表中可以看出,混合比例对实验值和理论计算值之间的差异并没有显著影响(P值为0.200254),即实验值和理论计算值之间的差异可以归结为随机误差。因此,我们可以认为实验值和理论计算值之间的差异并不具有统计学意义。为了更加直观地分析实验值和理论计算值之间的差异,我们可以通过绘制折线图来观察:# 绘制折线图 fig, axes = plt.subplots(figsize=(10,6)) plt.plot(df['混合比例'], df['实验值'], marker='o', label='实验值') plt.plot(df['混合比例'], df['理论计算值'], marker='o', label='理论计算值') plt.legend(loc='upper right') plt.title('实验值和理论计算值的折线图') plt.xlabel('混合比例') plt.ylabel('产物收率') plt.show()从折线图中可以看出,随着混合比例的增加,实验值和理论计算值都呈现出先增加后减小的趋势,但是两者之间的差异并不明显。因此,我们可以认为实验值和理论计算值之间的差异并不具有统计学意义。最后,我们可以通过对不同混合比例的数据进行子组分析,确定实验值和理论计算值之间的差异在哪些混合比例上体现:# 子组分析 sub_df = df.groupby('混合比例').mean() print(sub_df)输出结果为:不同混合比例下的实验值和理论计算值的平均值 混合比例 5/100 0.16000 10/100 0.20225 20/100 0.19500 30/100 0.16075 50/100 0.15125从子组分析的结果可以看出,当混合比例为10/100时,实验值和理论计算值之间的差异最大,为0.20225。因此,我们可以认为实验值和理论计算值之间的差异在混合比例为10/100时体现得最为明显。

import pandas as pd
import numpy as np
import statsmodels.api as sm
import statsmodels.formula.api as smf
import matplotlib.pyplot as plt# 导入附件二数据
df = pd.read_excel('附件二.xlsx', sheet_name='数据')然后,我们可以通过绘制箱线图来观察每种共热解组合的实验值和理论计算值之间的差异:# 绘制箱线图
fig, axes = plt.subplots(figsize=(10,6))
df.boxplot(column=['实验值', '理论计算值'], by='混合比例', ax=axes)
plt.title('实验值和理论计算值的箱线图')
plt.ylabel('产物收率')
plt.show()
从箱线图中可以看出,不同混合比例下的实验值和理论计算值之间存在一定的差异,但是差异并不明显。为了更加准确地分析这种差异,我们可以通过一元方差分析(ANOVA)来检验不同混合比例下的实验值和理论计算值之间的差异是否具有统计学意义:# 进行一元方差分析
model = smf.ols('实验值 ~ 混合比例', data = df).fit()
anova_table = sm.stats.anova_lm(model)
print(anova_table)输出结果为:df    sum_sq   mean_sq         F    PR(>F)
混合比例       4.0  1.033062  0.258266  1.586668  0.200254
Residual  105.0  6.011195  0.057253       NaN       NaN从ANOVA表中可以看出,混合比例对实验值和理论计算值之间的差异并没有显著影响(P值为0.200254),即实验值和理论计算值之间的差异可以归结为随机误差。因此,我们可以认为实验值和理论计算值之间的差异并不具有统计学意义。为了更加直观地分析实验值和理论计算值之间的差异,我们可以通过绘制折线图来观察:# 绘制折线图
fig, axes = plt.subplots(figsize=(10,6))
plt.plot(df['混合比例'], df['实验值'], marker='o', label='实验值')
plt.plot(df['混合比例'], df['理论计算值'], marker='o', label='理论计算值')
plt.legend(loc='upper right')
plt.title('实验值和理论计算值的折线图')
plt.xlabel('混合比例')
plt.ylabel('产物收率')
plt.show()从折线图中可以看出,随着混合比例的增加,实验值和理论计算值都呈现出先增加后减小的趋势,但是两者之间的差异并不明显。因此,我们可以认为实验值和理论计算值之间的差异并不具有统计学意义。最后,我们可以通过对不同混合比例的数据进行子组分析,确定实验值和理论计算值之间的差异在哪些混合比例上体现:# 子组分析
sub_df = df.groupby('混合比例').mean()
print(sub_df)输出结果为:不同混合比例下的实验值和理论计算值的平均值
混合比例
5/100   0.16000
10/100  0.20225
20/100  0.19500
30/100  0.16075
50/100  0.15125从子组分析的结果可以看出,当混合比例为10/100时,实验值和理论计算值之间的差异最大,为0.20225。因此,我们可以认为实验值和理论计算值之间的差异在混合比例为10/100时体现得最为明显。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit# 读取实验数据
data = pd.read_excel('附件2.xlsx')# 定义模型函数
def model(x, a, b, c):return a + b * x + c * x**2# 定义拟合函数
def fit(xdata, ydata, model):popt, pcov = curve_fit(model, xdata, ydata)a = popt[0]b = popt[1]c = popt[2]return a, b, c# 对每种共热解组合进行拟合,并计算预测值
for i in range(1, 5):# 提取数据xdata = np.array(data['混合比例'])ydata = np.array(data['产物收率实验值' + str(i)])# 拟合a, b, c = fit(xdata, ydata, model)# 计算预测值ypred = model(xdata, a, b, c)# 绘制图像plt.scatter(xdata, ydata, label='实验值')plt.plot(xdata, ypred, label='拟合曲线')plt.xlabel('混合比例')plt.ylabel('产物收率实验值' + str(i))plt.legend()plt.show()# 计算预测值与实验值的平均绝对误差mae = np.mean(np.abs(ypred - ydata))print('产物收率实验值' + str(i) + '的平均绝对误差为:', mae)

2024数维杯B题思路+代码+论文

https://mbd.pub/o/bread/ZpWakpdq

https://mbd.pub/o/bread/ZpWakpdq

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/688412.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通信指挥类装备(多链路聚合设备)-应急通信指挥解决方案

现场通信指挥系统是一种功能全面的便携式音视频融合指挥通信平台,可实现现场应急救援指挥、多种通信手段融合、现场通信组网等功能,是现场指挥系统的延伸。 多链路聚合设备,是一款通信指挥类装备,具有 4G/5G,专网&…

Cloudera的简介及安装部署

简介 Cloudera是一家位于美国的软件公司,成立于2008年,专注于为企业客户提供基于Apache Hadoop的软件、支持、服务以及培训。Cloudera的开源Apache Hadoop发行版,即Cloudera Distribution including Apache Hadoop(CDH&am…

AI赋能未来教育:中国教学科研新蓝图

设“人啊 前言 回顾过去,传统的教育模式以知识灌输和应试为主,虽培养出大量人才,但也存在着学生创新能力不足、实践经验缺乏等问题。随着时代的进步和科技的发展,传统教育模式已难以满足当今社会对人才的需求。然而,当…

阿里云和AWS负载均衡服务对比分析

在云计算时代,负载均衡作为一种关键的网络基础设施,承担着在多个服务器之间分发网络流量的重要任务。作为全球两大主要的云服务提供商,阿里云和Amazon Web Services(AWS)都提供了强大的负载均衡解决方案。本文将从性能、功能、可用性和成本等方面对两者进行对比分析。我们九河云…

Html + Express 实现大文件分片上传、断点续传、秒传

在日常的网页开发中,文件上传是一项常见操作。通过文件上传技术,用户可以将本地文件方便地传输到Web服务器上。这种功能在许多场景下都是必不可少的,比如上传文件到网盘或上传用户头像等。 然而,当需要上传大型文件时,…

不容错过的秘籍:JavaScript数组的创建和使用详解

在编程的世界里,数据是构建一切的基础。而在JavaScript中,有一种特殊且强大的数据结构,它就是——数组。 今天,我们就来一起探索数组的奥秘,从创建到使用,一步步掌握这个重要的工具。 一、什么是数组 数…

pycharm滚轮放大字体

进入settings,然后按从左到右的箭头顺序依次点击即可

Win10鼠标右键新增软件快速打开项

1、cmd 运行 regedit 2、找到该位置的shell文件夹 3、在shell文件夹下创建需要添加的软件名的文件夹,并修改相关信息 4、新建子文件夹command,并修改相关信息 5、效果

斯坦福李飞飞最新对话:AI不会对人类造成“灭绝性危机” | 最新快讯

美国斯坦福大学教授、美国国家工程院院士李飞飞(来源:斯坦福大学账号) 北京时间 5 月 10 日凌晨举行的 Bloomberg Tech 活动上,著名华人计算机科学家、美国斯坦福大学教授李飞飞(Fei-Fei Li)与彭博社 Emily…

【NodeMCU实时天气时钟温湿度项目 4】通过NTPClient库获取实时网络时间并显示在TFT屏幕上

今天是【实时天气时钟温湿度项目】第四专题,主要内容是:学习导入NTPClient库,通过这个库获取实时网络时间,显示在1.3寸TFT液晶屏幕上。此前三个专题,请选择查看以下链接。 第一专题内容,请参考 【N…

C语言神奇的经典程序

因为C语言语法格式的特殊性,还诞生了一个C语言乱码大赛,从1984年开始,一直办到现在。在它官网上能看到历年所有的参赛获奖的作品。 官网链接: https://www.ioccc.orghttps://github.com/ioccc-src/temp-test-ioccc 这个比赛的目…

美国政府发布新的国际网络空间和数字政策战略(上)

文章目录 前言一、战略内容介绍二、数字团结的含义三、如何建立数字团结前言 美国务院5月6日正式发布《美国国际网络空间和数字政策战略:迈向创新、安全和尊重权利的数字未来》,旨在指导国际社会参与技术外交并推动《美国国家安全战略》和《美国国家网络安全战略》。 美国务…

界面组件DevExpress Reporting中文教程 - 标记(可访问)PDF导出增强

DevExpress Reporting是.NET Framework下功能完善的报表平台,它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表。 可访问性支持在DevExpress这里仍然是一个高优先…

深入理解卷积函数torch.nn.Conv2d的各个参数以及计算公式(看完写模型就很简单了)

代码解释帮助理解: torch.randn(10, 3, 32, 32),初始数据:(10, 3, 32, 32)代表有10张图片,每张图片的像素点用三个数表示,每张图片大小为32x32。(重点理解这个下面就好理解了) nn.Conv2d(3, 64…

独家丨美团直播积极寻求MCN公司合作,却意外成商家刷单圣地?

图片|《扫黑决战》截图 ©自象限原创 作者丨薛黎 编辑丨程心 2023年4月18日,美团直播在“神券节”中正式上线。整整一年之后,美团直播又在持续加码。 据「自象限」独家获悉,在去年12月美团上线达人直播后,近期…

Verilog_学习路线(小白)

#前言: 自从专心学习专业课后,发现知识点得用,越用越熟练,工具也一样,高级工具的学习可帮助我们在工作中极大地提高效率,但这里要记住一点,任何工具都是为解决实际问题出现的,即落脚…

Spring Cloud Gateway 全局过滤器

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 全局过滤器作用于所…

可以直接用的搭建训练一个气象深度学习模型全流程代码--part1 以预报预测为例

本期内容分享一套全流程搭建训练气象深度学习模型的代码,并考虑在基础的预报预测领域的应用。 本期内容的目标是:尽量让看过本文的读者,可以直接在本地一键跑通如SmaAtUNet、UNet等卷积网络,ConvLSTM、TrajGRU、PhyDNet、STPhy等…

Android Studio 读不到Android设备

Android Studio 读不到Android设备 在进行Android应用开发时,我们经常会遇到一种情况,就是Android Studio无法读取到连接在电脑上的Android设备。这个问题可能出现在不同的场景中,比如在运行应用程序时,设备列表中找不到连接的设…

CSS-背景属性

目录 背景属性 background-color (背景颜色 ) background-image (背景图片 ) background-repeat (背景图平铺方式 ) no-repeat 不平铺 repeat-x 水平方向平铺 repeat-y 垂直方向平铺 repeat 平铺 background-position (背景图位置) background-size (背景缩…