⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 feixianxinghuigui.m

📁 非线性回归模型测量PH值和亚硫酸浓度的一个Matlab程序
💻 M
字号:
clc
clear
S=[
0.050	0.169	0.450	0.077	56.0	2.0	  0.00154
0.055	0.169	0.450	0.077	56.0	2.0	  0.00144
0.065	0.169	0.450	0.077	56.0	2.0	  0.00133
0.070	0.169	0.450	0.077	56.0	2.0	  0.00123
0.080	0.169	0.450	0.077	56.0	2.0	  0.00133
0.085	0.169	0.450	0.077	56.0	1.95  0.00143
0.070	0.150	0.450	0.077	56.0	2.0	  0.00297
0.070	0.155	0.450	0.077	56.0	2.0	  0.00277
0.070	0.160	0.450	0.077	56.0	2.0	  0.00266
0.070	0.165	0.450	0.077	56.0	2.0	  0.00143
0.070	0.170	0.450	0.077	56.0	2.0   0.00113
0.070	0.175	0.450	0.077	56.0	2.0   0.00113
0.070	0.180	0.450	0.077	56.0	2.0	  0.00113
0.070	0.169	0.435	0.077	56.0	1.9	  0.00267
0.070	0.169	0.440	0.077	56.0	1.9	  0.00215
0.070	0.169	0.445	0.077	56.0	1.9	  0.00144
0.070	0.169	0.450	0.077	56.0	2.0	  0.00123
0.070	0.169	0.455	0.077	56.0	2.0	  0.00133
0.070	0.169	0.460	0.077	56.0	1.9	  0.00195
0.070	0.169	0.465	0.077	56.0	1.9	  0.00205
0.070	0.169	0.470	0.077	56.0	1.9	  0.00215
0.070	0.169	0.450	0.060	56.0	2.2	  0.00164
0.070	0.169	0.450	0.065	56.0	2.0	  0.00154
0.070	0.169	0.450	0.070	56.0	2.0	  0.00154
0.070	0.169	0.450	0.075	56.0	2.0	  0.00143
0.070	0.169	0.450	0.080	56.0	1.9	  0.00102
0.070	0.169	0.450	0.085	56.0	1.85  0.00092
0.070	0.169	0.450	0.090	56.0	1.85  0.00062
0.070	0.169	0.450	0.077	50.0	1.9	  0.00133
0.070	0.169	0.450	0.077	52.0	1.9	  0.00133
0.070	0.169	0.450	0.077	54.0	2.0	  0.00123
0.070	0.169	0.450	0.077	56.0	2.0	  0.00123
0.070	0.169	0.450	0.077	60.0	2.0	  0.00113
0.070	0.169	0.450	0.077	62.0	2.0	  0.00113
]; % 全部数据样本

S1=S([2:5,8:12,15:20,23:27,30:33],:);  % 训练用数据样本
S2=S([1,6:7,13:14,21:22,28:29,34],:); % 测试用数据样本
S1X=S1(1:1:24,1:1:5); % 输入变量_训练
S2X=S2(1:1:10,1:1:5); % 输入变量_测试
S1Y1=S1(1:1:24,6); % 输出变量PH_训练
S2Y1=S2(1:1:10,6); % 输出变量PH_测试
S1Y2=S1(1:1:24,7); % 输出变量H2SO3_训练
S2Y2=S2(1:1:10,7); % 输出变量H2SO3_测试

%训练数据
x11=S1X(1:24,1); % A1
x12=S1X(1:24,2); % A2
x13=S1X(1:24,3); % A3
x14=S1X(1:24,4); % A4
x15=S1X(1:24,5); % 温度
X1=[x11,x12,x13,x14,x15]; % 输入

%测试数据
x21=S2X(1:10,1); % A1
x22=S2X(1:10,2); % A2
x23=S2X(1:10,3); % A3
x24=S2X(1:10,4); % A4
x25=S2X(1:10,5); % 温度

%PH的训练
beta0_0=[0.01 1 1 1 1 0.1];
beta0=nlinfit(X1,S1Y1,'PH',beta0_0); 
C=beta0(1);
a1=beta0(2);
a2=beta0(3);
a3=beta0(4);
a4=beta0(5);
a5=beta0(6);
for i=1:10
y(i)=C*exp(-(a1*x21(i)+a2*x22(i)+a3*x23(i)+a4*x24(i)+a5*x25(i)));
end
error=zeros(10,1);
error2=zeros(10,1);
t=1:10;
figure;
for i=1:10
error(i)=y(i)-S2Y1(i);
end
plot(t,y,'g',t,S2Y1,'k',t,error,'r-o');
title('ph值比较')
legend('测试值','样本值','误差值',1);

%H2SO3浓度的训练测试
beta1_0=[0.01 1 1 1 1 0.1];
beta1=nlinfit(X1,S1Y2,'H2SO3',beta1_0); 
D=beta1(1);
b1=beta1(2);
b2=beta1(3);
b3=beta1(4);
b4=beta1(5);
b5=beta1(6);
for i=1:10
y(i)=D*exp(-(b1*x21(i)+b2*x22(i)+b3*x23(i)+b4*x24(i)+b5*x25(i)));
end
t=1:10;
figure;
for i=1:10
    error2(i)=y(i)-S2Y2(i);
end
plot(t,y,'g',t,S2Y2,'k',t,error2,'r-o');
title('H2SO3值比较')
legend('测试值','样本值','误差值',1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -