【数学建模】二元非线性回归(华数杯比赛)(Matlab代码实现)

目录

1 概述

2 算例 

2.1 算例

3 题目分析

4 Matlab代码实现

4.1 主函数

4.2 运行结果

5 全文求解结果及总结


1 概述

本次算例和前次一样,前次是用了随机森林的方法,这次用二元多项式回归。

【数学建模】随机森林预测(Python代码实现)

2 算例 

2.1 算例

熔喷非织造材料是口罩生产的重要原材料,具有很好的过滤性能,其生产工艺简单、成本低、质量轻等特点,受到国内外企业的广泛关注。但是,由于熔喷非织造材料纤维非常细,在使用过程中经常因为压缩回弹性差而导致其性能得不到保障。因此,科学家们创造出插层熔喷法,即通过在聚丙烯(PP)熔喷制备过程中将涤纶(PET)短纤等纤维插入熔喷纤维流,制备出了“Z型”结构的插层熔喷非织造材料。插层熔喷非织造材料制备工艺参数较多,参数之间还存在交互影响,加上插层气流之后更为复杂,因此,通过工艺参数(接收距离和热空气速度)决定结构变量(厚度、孔隙率、压缩回弹性),而由结构变量决定最终产品性能(过滤阻力、过滤效率、透气性)的研究也变得较为复杂。如果能分别建立工艺参数与结构变量、结构变量和产品性能之间的关系模型,则有助于为产品性能调控机制的建立提供一定的理论基础。请查阅相关文献,了解专业背景,研究题目数据
,回答下列问题:

问题:请研究工艺参数与结构变量之间的关系。表1给了8个工艺参数组合,请将预测的结构变量数据填入表1将图画为表格形式中。

3 题目分析

     关于基于工艺参数预测结构变量的问题,可利用二元非线性回归方程进行拟合。可将工艺参数作为自变量,结构变量作为因变量建立非线性回归方程。首先设定工艺参数的接受距离、热风速度分别为x1、x2,结构变量的厚度、孔隙率和压缩回弹性率分别y1、y2、y3。从题1中的相关系数求解可知,工艺参数与结构变量的关系为非线性,工艺参数决定结构变量。因而以x1、x2为自变量,yi(i=1,2,3)为因变量建立二元非线性回归模型,采用二元多项式回归法:

                 

其中 a、b、c、d、e 为代求参数。

数据如下:

 进行整理,方便编程:

【数学建模】二元非线性回归(华数杯比赛)(Matlab代码实现)_第1张图片

4 Matlab代码实现

以压缩回弹性率与接受距离与热空气速度的关系为例进行讲解,其他方法一样的。

4.1 主函数

clear
clc
data =csvread('C题数据3.csv')  

x1 = data(:,1);
x2 = data(:,2);
y = data(:,5);
%X = [ones(size(x1)) x1.^4 x1.^3 x1.^2 x1 x2.^2 x2 x2.*x1.^2 x1.*x2.^2 x1.*x2] ;
X = [ones(size(x1)) x1.*x1 x1 x2.*x2 x2 x1.*x2];
[b,bint,r,rint,stats] = regress(y,X)
scatter3(x1,x2,y,'filled')
hold on
x1fit = min(x1):0.5:max(x1);
x2fit = min(x2):0.5:max(x2);
[X1FIT,X2FIT] = meshgrid(x1fit,x2fit);
%YFIT=b(1)*X1FIT.^4+b(2)*X1FIT.^3+b(3)*X1FIT.^2-b(4)*X1FIT+b(5)*X2FIT.^2+b(6)*X2FIT+b(7)*X1FIT.*X2FIT.^2+b(8)*X1FIT.*X2FIT.^2+b(9)*X1FIT.*X2FIT+b(10);
YFIT = b(1)+ b(2)*X1FIT.*X1FIT+b(3)*X1FIT + b(4)*X2FIT.*X2FIT + b(5)*X2FIT + b(6)*X1FIT.*X2FIT;
%% 可视化
figure(1)
mesh(X1FIT,X2FIT,YFIT)
xlabel('接收距离(cm)')
ylabel('热风速度(r/min)')
zlabel('压缩回弹性率(%)')
%saveas(gcf,sprintf('相关系数热图.jpg'),'bmp'); %保存图片

figure(2)
rcoplot(r,rint)%做残差图
title('压缩回弹性率预测模型残差图')
xlabel('数据');ylabel('残差');




%% 输出设置
disp('=====95% 置信区间的矩阵 bint=========')
bint
disp('=====系数=========')
b
fprintf('压缩回弹性率与接受距离与热空气速度的关系y1=(%f+%f*x1^2+%f*x1+%f*x2^2+%f*x2+%f*x1*x2)\n', b(1),b(2),b(3),b(4),b(5),b(6)) % 注意输出格式前须有%符号,

4.2 运行结果

【数学建模】二元非线性回归(华数杯比赛)(Matlab代码实现)_第2张图片

【数学建模】二元非线性回归(华数杯比赛)(Matlab代码实现)_第3张图片

 效果还是挺不错的。

5 全文求解结果及总结

利用 matlab 对已知数据进行二元非线性拟合,分别得到结构变量的厚度、孔隙率、
压缩回弹系数与工艺参数(接受距离和热空气速度)的数学模型,得到了三组结构变量
基于工艺参数的预测模型:
【数学建模】二元非线性回归(华数杯比赛)(Matlab代码实现)_第4张图片

你可能感兴趣的:(数学建模,回归,python,机器学习,matlab)