2016年亚太杯APMCM数学建模大赛A题基于光学信息数据的温度及关键元素含量预测求解全过程文档及程序

2016年亚太杯APMCM数学建模大赛

A题 基于光学信息数据的温度及关键元素含量预测

原题再现

  光含有能量,在一定条件下可以转化为热。燃烧是一种常见的现象,既能发光又能发热。光和热通常是同时存在的,一般来说,光强度越高,温度越高。
  光强度与温度没有直接关系,但光频率与温度有很大关系,如低频红外光和远红外光,具有典型的热效应,而高频紫外光几乎没有热效应。在相同频率下,光强越大,热效应越好。
  金属熔炼是将金属材料抛入一定的熔炉中,在一定温度下进行熔炼,以控制或消除劣质元素,保持或增加劣质元素的比例。从而寻求获得目标金属的最佳性能。因此,金属冶炼的关键在于温度和关键元素含量的控制。在金属冶炼过程中,炉膛产生火焰,通过小孔成像原理将火焰发出的光学信息投影到光电探测器上。然后,根据离散频率,由光电探测器每隔0.5s记录一次火焰的光强数据。某一时刻光信息数据生成过程:
在这里插入图片描述
  从上面的图像中,光电探测器每0.5秒接收的数据量为2048。需要利用2048光强值实时预测火焰温度和原料中关键元素的含量。

  附录给出了1.xlsx、2.xlsx和3.xlsx三种金属熔炼过程的数据,包括时间t、燃烧气体累积消耗量Q、燃烧气体累积消耗率p、光学信息数据(f\u 1-f\u 2048,不同频率的光强)、开尔文温度t和关键元素C的含量。

  词汇表:
  光学信息特性:以一次生成的2048光强数据为输入,以火焰温度和关键元素含量为输出,建立数学模型必然比较复杂,无法达到预测结果。为了减少输入数据的数量,尝试寻找一个或多个光强数据的特征值,将其作为输入,降低模型计算的复杂度,增强模型的适用性。
  交叉实验:给出了三种金属冶炼过程的数据,建立了基于三种不同工艺的温度和关键元素含量预测模型。为了验证该模型的通用性,分别对1过程和2过程、3过程进行了仿真。然后探讨了误差特性。交叉试验设计见下表:
在这里插入图片描述
  Err11表示基于1工序预测模型的自检误差,Err21表示基于1工序预测模型和2工序数据的交叉检验误差,依此类推。
  通过以上背景,探索以下三个问题:

  1) 根据附件中给出的数据建立数学模型或算法模型,求出光学信息数据的特征λ,并将特征(λ1,λ2,…,λn)提取到Excel表格中。数据文件名为:feature\u output\u 1.xlsx、feature\u output\u 2.xlsx和feature\u output\u 3.xlsx。
  2) 利用1)中提取的光学信息特征数据和数据表中给出的时间t、助燃气体累计消耗量Q等数据,建立数学模型或算法模型,预测开尔文温度t和关键元素含量C,并探讨其关系。
  3) 通过问题1)和问题2)的探索,设计交叉实验方案,交叉验证预测目标产生的误差,并在误差分析的基础上给出误差控制方案。

整体求解过程概述(摘要)

  在金属冶炼过程中,温度和关键元素含量的控制对获得目标金属的最佳性能具有重要意义。本文的核心目标是建立一个数学模型或算法模型,来描述在燃气比累积消耗量和燃气累积消耗率条件下,温度、关键元素含量与光照强度之间的关系。
  在第一个问题中,我们采用主成分分析法,从每0.5秒记录的2048组光强数据中找出特征值。根据SPSS软件计算的原始光强数据的计算结果,可以用13个主成分来表示2048组数据的光学信息。以各主成分的贡献率为权重,通过加权求和得到特征值,可以代表原始光强数据的绝大部分信息。
  在第二个问题中,我们首先探讨了光学信息特征数据λ的规律,发现它可以很好地拟合成线性函数。特别地,由于λ的散点图的特殊性,我们在过程1中采用了分割函数。然后通过观察和探索,决定采用多元线性回归预测开尔文温度和关键元素含量C,最后进行相关检验,检验结果是否显著,并得到正确答案。从而得出多元线性回归可以预测T和C的结论,并给出了各过程的预测表达式。
  在第三个问题中,我们首先在三个预测模型和三个过程数据之间进行交叉实验,计算交叉实验中每个单元的均方误差。并对模型的普适性进行了一般性分析。然后,为了提高模型的通用性和控制误差,对整个过程中的误差来源进行了全面详细的分析。区分了误差中可人为控制的部分。针对不同类型的误差,从给定数据的误差、PCA算法的误差、回归预测模型的误差和随机误差四个方面提出了提高模型精度和通用性的误差控制方案。

模型假设:

  1.假设所选主成分具有高度代表性。
  2.假设代表85%以上信息的特征值可以代替所有原始光强数据。
  3.假设原始光强数据之间有很强的相关性
  4.附录1-3中给出的数据真实有效。
  5.由问题1得到的光学信息特征数据λ是正确的。
  6.光学信息特征数据λ可以在可接受的范围内波动,少数离群数据可以丢弃。。
  7.没有更多的元素会影响开尔文温度T和关键元素含量C的预测。

问题分析:

  问题1分析
  给出了从金属冶炼过程中提取的三组数据,包括时间t、燃烧气体累积消耗量Q、燃烧气体累积消耗率p、光学信息数据(f\u 1-f\u 2048,不同频率的光强)、开尔文温度t和关键元素C的含量。如果以一次生成的2048个光强数据为输入,以火焰温度和关键元素含量为输出,构建数学模型必然比较复杂,因此我们的核心任务是找到一个或多个光强数据的特征值来代表原始数据中的大部分信息。采用主成分分析的方法对2048组数据进行降维处理,将原始数据替换为维数较小且互不相关的主成分。利用SPSS软件计算了光强数据的特征值。

  问题2分析
  问题2要求我们利用光学信息特征数据λ、时间t和累积消耗量Q来预测开尔文温度t和关键元素含量C。通过观察,我们发现变量t、Q、t和C呈线性增加,变量λ的散点图表明它可以拟合成一条直线。因此,我们决定选择多元线性回归预测开尔文温度T和关键元素含量C。

  问题3分析
  问题3首先设计一个交叉实验,并根据交叉实验结果交叉验证预测目标产生的误差。进一步根据分析结论设计误差控制方案。在我们的研究中,误差的构成可能包括但不限于问题求解的模型和算法以及随机误差。在分析误差来源的基础上,提出一种误差控制方法。所以,我们将测试误差分为可控制和不可人工功率两类。,并提出了不同的误差控制方法。从而达到提高模型通用性的目的。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

部分程序如下:
%T 总程序
%T1 总程序
clear;clc
load APMCM1
y1=polyfit(time1,lamda1,1); %对散点图进行线性拟合
lamdatest1=y1(1)*time1+y1(2);
figure (1)
x1=1:269;
plot(x1,lamda1,'b-');
hold on
plot(x1,lamdatest1,'r-');
title('lamda 拟合');
xlabel('t');
ylabel('lamda');
legend('实验值','预测值');
%对 T1 进行多元回归
e1=ones(269,1);
X1=[e1,time1,Q1,lamdatest1];
[b1,bint1,r1,rint1,stats1]=regress(T1,X1,0.05);
figure (2)
rcoplot(r1,rint1);
%绘制 T1 与 Ttest1 曲线
Ttest1=b1(1)+b1(2)*time1+b1(3)*Q1+b1(4)*lamdatest1;
figure (3)
x1=1:269;
subplot(1,2,1)
plot(x1,T1,'b-');
title('温度 T 的多元回归');
xlabel('横坐标');
ylabel('T');
legend('实验值');
subplot(1,2,2)
plot(x1,Ttest1,'r-');
xlabel('横坐标');
ylabel('T');
legend('预测值');
figure (4)
plot(x1,T1,'b-');
hold on
plot(x1,Ttest1,'r-');
title('温度 T 的多元回归');
xlabel('横坐标');
ylabel('T');
legend('实验值','预测值');
%T2 总程序
y2=polyfit(time2,lamda2,1);% 对散点图进行线性拟合
lamdatest2=y2(1)*time2+y2(2);
%lamdatest2=[];
%for i=1:135
% lamdatest2(i,1)=1.9.*time2(i)+1276.9;
%end
figure (5)
x2=1:135;
plot(x2,lamda2,'b-');
hold on
plot(x2,lamdatest2,'r-');
title('lamda 拟合');
xlabel('t');
ylabel('lamda');
legend('实验值','预测值');
%用 SPSS 对 lamda 和 lamdatest 进行相关性检测
%对 T2 进行多元回归
e2=ones(135,1);
X2=[e2,time2,Q2,lamdatest2];
[b2,bint2,r2,rint2,stats2]=regress(T2,X2,0.05);
figure (6)
rcoplot(r2,rint2)
%绘制 T2 与 Ttest2 曲线
Ttest2=b2(1)+b2(2)*time2+b2(3)*Q2+b2(4)*lamdatest2;
%Ttest2=[];
%for i=1:135
% Ttest2(i)=-1.9956.*time2(i)+0.1605.*Q2(i)+1.0503.*lamdatest2(i);
%end
figure (7)
x2=1:135;
subplot(1,2,1)
plot(x2,T2,'b-');
title('温度 T 的多元回归');
xlabel('横坐标');
ylabel('T');
legend('实验值');
subplot(1,2,2)
plot(x2,Ttest2,'r-');
xlabel('横坐标');
ylabel('T');
legend('预测值');
figure (8)
plot(x2,T2,'b-');
hold on
plot(x2,Ttest2,'r-');
title('温度 T 的多元回归');
xlabel('横坐标');
ylabel('T');
legend('实验值','预测值');
%绘制 T 与 Ttest 曲线
Ttest=[];
for i=1:404
if i<=269Ttest(i)=Ttest1(i);
elseTtest(i)=Ttest2(i-269);
end
end
figure (9)
x=1:404;
plot(x,T,'b-','linewidth',2)
hold on
plot(x,Ttest,'r-','linewidth',2)
title('mutiple linear regression for T prediction');
xlabel('xlabel');
ylabel('T');
h1=legend('actual value','fitted value');
set(h1,'Fontsize',14)
figure (10)
subplot(1,2,1)
plot(x,T,'b-','linewidth',2)
title('mutiple linear regression for T prediction');
xlabel('xlabel');
ylabel('T');
h2=legend('actual value');
subplot(1,2,2)
plot(x,Ttest,'r-','linewidth',2)
xlabel('xlabel');
ylabel('T');
h3=legend('fitted value');
set(h2,'Fontsize',14);
set(h3,'Fontsize',14);
%探索 T、C 之间的关系
clear;
clc;
load APMCM1;
%C 和 T 的线性回归
e=ones(404,1);
X=[e,T];
[b,bint,r,rint,stats]=regress(C,X,0.05);
figure (1)
rcoplot(r,rint)
Ctest=b(1)+b(2)*T;
%y3=polyfit(T,C,1);
%Ctest=y3(1)*T+y3(2);
ttt=1:404;
figure (2)
plot(ttt,C,'b-','linewidth',2)
hold on
plot(ttt,Ctest,'r-','linewidth',2)
title('The relationship between T and C')
xlabel('T');
ylabel('C');
h=legend('actual value','fitted value');
set(h,'Fontsize',14)
b
%y3 %线性拟合参数 常数项 α
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

2023年香水行业数据分析:国人用香需求升级,高端香水高速增长

在人口结构变迁的背景下&#xff0c;“Z世代”作为当下我国的消费主力&#xff0c;正在将“悦己”消费推动成为新潮流。具备经济基础的“Z世代”倡导“高颜值”、“个性化”、“精致主义”&#xff0c;这和香水、香氛为代表的“嗅觉经济”的特性充分契合&#xff0c;因此&#…

mysql中limit和offset的用法详细介绍

有的时候我们在学习或者工作中会使用到SQL语句&#xff0c;那么介绍一下limit和offset的使用方法。 mysql里分页一般用limit来实现&#xff0c;例如&#xff1a; 1、select* from user limit 3 表示直接取前三条数据 2、select * from user limit 1,3; 表示取1后面的第2,3,…

翻页视图ViewPager

ViewPager控件允许页面在水平方向左右滑动&#xff0c;就像翻书、翻报纸&#xff0c;Android提供了已经分装好的控件。对于ViewPager来说&#xff0c;一个页面就是一个项&#xff08;相当于ListView的一个列表项&#xff09;&#xff0c;许多页面组成ViewPager的页面项。 List…

【计算机网络笔记】网络应用对传输服务的需求

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

LuatOS-SOC接口文档(air780E)--log - 日志库

常量 常量 类型 解释 log.LOG_SILENT number 无日志模式 log.LOG_DEBUG number debug日志模式 log.LOG_INFO number info日志模式 log.LOG_WARN number warning日志模式 log.LOG_ERROR number error日志模式 log.setLevel(level) 设置日志级别 参数 传入值…

实现打包后暴露可修改接口地址文件

### vue-cli3 实现打包后暴露可修改接口地址文件 在前后端分离的开发模式中,有时候我们开发好打包的文件在部署完之后,需要去修改获取接口的地址,这个时候就需要前端修改完之后重新打包再部署了,但是如果我们只是需要修改接口地址时,反复的重新打包就太麻烦了,接下来就分享一种…

Rust笔记【1】

元组和解构语法 let tup : (i32, f64, u8) (666, 2.0, 1);let tup (666, 2.0, 1); let (x, y, z) tup;let x tup.0; let y tup.1; let z tup.2;数组类型 数组定义是方括号&#xff1a;[ ] 元组定义是小圆括号&#xff1a;( ) 结构体定义是大括号&#xff1a;{ }&#xf…

USB学习(2):USB端点和传输协议(数据包、事物)详解

接着上一篇文章USB学习(1)&#xff1a;USB基础之接口类型、协议标准、引脚分布、架构、时序和数据格式&#xff0c;继续介绍一下USB的相关知识。 文章目录 1 USB端点(Endpoints)1.1 基本知识1.2 四种端点 2 传输协议2.1 数据包类型2.1.1 令牌数据包(Token packets)2.1.2 数据数…

【机器学习合集】激活函数合集 ->(个人学习记录笔记)

文章目录 综述1. S激活函数(sigmoid&Tanh)2. ReLU激活函数3. ReLU激活函数的改进4. 近似ReLU激活函数5. Maxout激活函数6. 自动搜索的激活函数Swish 综述 这些都是神经网络中常用的激活函数&#xff0c;它们在非线性变换方面有不同的特点。以下是这些激活函数的主要区别&am…

学习笔记二十三:Deployment入门到企业实战应用

Deployment入门到企业实战应用 Deployment控制器&#xff1a;概念、原理解读Deployment概述Deployment工作原理&#xff1a;如何管理rs和Pod&#xff1f;什么叫做更新节奏和更新逻辑呢 Deployment使用案例&#xff1a;创建一个web站点,2个副本deploy-demo详细解读 通过k8s实现滚…

分布式:一文搞定Redis/Zookeeper/MySQL实现分布式锁

目录 一、项目准备spring项目数据库 二、传统锁演示超卖现象使用JVM锁解决超卖解决方案JVM失效场景 使用一个SQL解决超卖使用mysql悲观锁解决超卖使用mysql乐观锁解决超卖四种锁比较Redis乐观锁集成Redis超卖现象redis乐观锁解决超卖 三、分布式锁概述四、Redis分布式锁实现方案…

Ubuntu 命令行设置静态IP地址方法

一、先ifconfig查看电脑的网卡信息 找到有线网络或WiFi网络的网卡名称&#xff0c;我这里是eno1 二、输入route -n命令&#xff0c;打印路由表&#xff0c;这里主要是为了查看网关地址 我这里网关地址是192.168.10.1 三、更改配置文件 输入 vim /etc/network/interfaces&am…

Spring Boot拦截器Interceptor

文章目录 Interceptor 作用原理自定义 InterceptorStep 1 实现/继承Step 2 重写方法Step 3 拦截器Interceptor注册例子 Interceptor 作用 日志记录&#xff1a;记录请求信息的日志&#xff0c;以便进行信息监控、信息统计、计算 PV&#xff08;Page View&#xff09;等&#x…

禾匠旧版对接微信小程序发货系统(发货信息管理 接口)

最近小程序如果是商家交易需要再小程序后台点击一下发货&#xff0c;特别麻烦&#xff0c;但是旧版的禾匠又没有这个功能&#xff0c;所以只能手动增加这个功能&#xff0c;但是每一个版本发货逻辑都不一样&#xff0c;大家只能自己手动去兼容一下&#xff0c;下面只是写了一个…

实例详解:Java使用JWT和Redis实现高效单点登录(SSO)

前言 单点登录&#xff08;Single Sign-On&#xff0c;简称SSO&#xff09;是一种身份验证和访问控制机制&#xff0c;允许用户使用一组凭证&#xff08;如登录名和密码&#xff09;登录到多个应用程序中&#xff0c;而无需为每个应用程序单独进行身份验证。用户只需要登录一次…

uniapp 单选框以及多选框样式更改

radio以及checkbox默认样式不符合自身需求时&#xff0c;根据自身需求更改样式&#xff0c;以下是自身的示例&#xff1a; 单选&#xff1a; 多选&#xff1a; 由于uniapp自身包含了一套默认的样式&#xff0c;所以如果不想全局更改只想在某个单据页面使用的话&#xff0c;就…

Mysql,SqlServer,Oracle获取库名 表名 列名

先看下需求背景&#xff1a; 获取某个数据源连接下所有库名&#xff0c;库下所有表名&#xff0c;表中所有字段 1.MySql 先说MySql吧&#xff0c;最简单 1.1获得所有数据库库名 这是一个mysql和sqlserver公用的方法&#xff0c;这里url不用担心数据库问题&#xff0c;他其实…

程序的编译和链接

目录 翻译环境 linux下的测试 ​编辑 预定义符号 执行环境 #define定义宏 #和## # ## 宏参数的副作用 宏和函数对比 优点 缺点 #undef 条件编译 头文件包含 在标准c的任何实现中&#xff0c;存在两种环境——翻译环境和执行环境 翻译环境 翻译环境生成目标文件…

2023年中国磷酸一铵行业产能、产量及发展趋势分析:农业需求稳定增长[图]

磷酸一铵是一种重要的氮磷复合肥料&#xff0c;在农业生产中广泛应用。亚洲地区尤其是中国、印度等国家是磷酸一铵的主要消费市场。近年来&#xff0c;中国磷酸一铵产能呈现下降趋势&#xff0c;2022年开始恢复增长。2022年中国磷酸一铵产能达1945万吨&#xff0c;同比增长5.4%…

linux工具篇

文章目录 linux工具篇1. linux 软件包管理器-yum1.1 什么是软件包1.2 yum的使用1.3 yum源 2. linux编辑器-vim2.1 vim概念2.2 vim各个模式切换2.3 vim正常模式命令汇总2.4 vim底行模式各命令汇总2.5 vim的简单配置 3. Linux编译器-gcc/g使用3.1 复习程序编译过程(1) 预处理(2) …