【数据分析】基于非线性多混合函数拟合模型的植被过滤带计算matlab源码

一、简介

不同植被配置下的植被过滤带净化效果排序为:草地过滤带→灌草植被过滤带→灌草植被过滤带(灌木较多)→空白带,其中草本群落发达的草地过滤带具有最好的净化效果,混合过滤带中的沙棘会影响草本群落的发育,但能改善土壤渗透性。以植被过滤带净化效果为分析背景,借助于MATLAB分析软件,进行数据的分析和非线性模型的快速求解,给科研人员一定的参考和借鉴作用。
在这里插入图片描述
不同草本植被过滤带对SS的浓度削减率图

% 非线性拟合
clc,clear;close all
warning off
format long
global X0 X1 X2 X3 X4 X5 X6
X0 = xlsread('数据','1#','B3:B30');  % EXCEL数据
X1 = xlsread('数据','1#','E3:E30');  % EXCEL数据
X2 = xlsread('数据','1#','G3:G30');  % EXCEL数据
X3 = xlsread('数据','1#','I3:I30');  % EXCEL数据
X4 = xlsread('数据','1#','K3:K30');  % EXCEL数据
X5 = xlsread('数据','1#','M3:M30');  % EXCEL数据
X6 = xlsread('数据','1#','O3:O30');  % EXCEL数据
% initial value
a1 = 1; % 植被因子C 系数
a2 = 1; % 入流流量Q 系数
b = 1;  % 入流流量Q 指数
a3 = 1; % 土壤初始含水量因素 系数
a4 = 1; % SS入流浓度 系数
a5 = 1; % 带宽因素m  系数
a6 = 1; % 坡度因素%  系数
a7 = 1; % 常数项     系数
x0 = [a1;a2;b;a3;a4;a5;a6;a7];       % 初始值
% [x,fval] = fminimax(@myfun,x0)
[x,fval] = lsqcurvefit(@myfun1,x0)
% 计算后的系数
a1 = x(1); % 植被因子C 系数
a2 = x(2); % 入流流量Q 系数
b = x(3);  % 入流流量Q 指数
a3 = x(4); % 土壤初始含水量因素 系数
a4 = x(5); % SS入流浓度 系数
a5 = x(6); % 带宽因素m  系数
a6 = x(7); % 坡度因素%  系数
a7 = x(8); % 常数项     系数
for i = 1:length(X0)
    X0_fit(i) = a1*X1(i)+a2*(X2(i))^(b)+a3*X3(i)+a4*X4(i)+a5*log(X5(i))+a6*X6(i)+a7;
    err(i) = X0_fit(i)-X0(i);  % 拟合误差
end
figure('color',[1,1,1])
subplot(121),plot(X0_fit,'r','linewidth',2);hold on
plot(X0,'b','linewidth',2);hold off;axis tight
legend('拟合值','实际值');title('SS的浓度削减率%')
subplot(122),plot(err,'g','linewidth',2);hold off;
axis tight;legend('误差');title('SS的浓度削减率% -- 误差')

clc,clear;close all
warning off
format long
X0 = xlsread('数据','2#','B3:B16');  % EXCEL数据
X1 = xlsread('数据','2#','E3:E16');  % EXCEL数据
X2 = xlsread('数据','2#','G3:G16');  % EXCEL数据
X3 = xlsread('数据','2#','I3:I16');  % EXCEL数据
X4 = xlsread('数据','2#','K3:K16');  % EXCEL数据
X5 = xlsread('数据','2#','M3:M16');  % EXCEL数据
X6 = xlsread('数据','2#','O3:O16');  % EXCEL数据
% initial value
a1 = 1; % 植被因子C 系数
a2 = 1; % 入流流量Q 系数
b = 1;  % 入流流量Q 指数
a3 = 1; % 土壤初始含水量因素 系数
a4 = 1; % SS入流浓度 系数
a5 = 1; % 带宽因素m  系数
a6 = 1; % 坡度因素%  系数
a7 = 1; % 常数项     系数
xs = [a1;a2;b;a3;a4;a5;a6;a7];       % 初始值
xdata = [X1,X2,X3,X4,X5,X6];
[x,resnorm] = lsqcurvefit(@myfun1,xs,xdata,X0)
% 计算后的系数
a1 = x(1); % 植被因子C 系数
a2 = x(2); % 入流流量Q 系数
b = x(3);  % 入流流量Q 指数
a3 = x(4); % 土壤初始含水量因素 系数
a4 = x(5); % SS入流浓度 系数
a5 = x(6); % 带宽因素m  系数
a6 = x(7); % 坡度因素%  系数
a7 = x(8); % 常数项     系数
for i = 1:length(X0)
    X0_fit(i) = a1*X1(i)+a2*(X2(i))^(b)+a3*X3(i)+a4*X4(i)+a5*log(X5(i))+a6*X6(i)+a7;
    err(i) = X0_fit(i)-X0(i);  % 拟合误差
end

clc,clear;close all
warning off
format long
X0 = xlsread('数据','3#','B3:B45');  % EXCEL数据
X1 = xlsread('数据','3#','E3:E45');  % EXCEL数据
X2 = xlsread('数据','3#','G3:G45');  % EXCEL数据
X3 = xlsread('数据','3#','I3:I45');  % EXCEL数据
X4 = xlsread('数据','3#','K3:K45');  % EXCEL数据
X5 = xlsread('数据','3#','M3:M45');  % EXCEL数据
X6 = xlsread('数据','3#','O3:O45');  % EXCEL数据
% initial value
a1 = 1; % 植被因子C 系数
a2 = 1; % 入流流量Q 系数
b = 1;  % 入流流量Q 指数
a3 = 1; % 土壤初始含水量因素 系数
a4 = 1; % SS入流浓度 系数
a5 = 1; % 带宽因素m  系数
a6 = 1; % 坡度因素%  系数
a7 = 1; % 常数项     系数
xs = [a1;a2;b;a3;a4;a5;a6;a7];       % 初始值
xdata = [X1,X2,X3,X4,X5,X6];
[x,resnorm] = lsqcurvefit(@myfun1,xs,xdata,X0)
% 计算后的系数
a1 = x(1); % 植被因子C 系数
a2 = x(2); % 入流流量Q 系数
b = x(3);  % 入流流量Q 指数
a3 = x(4); % 土壤初始含水量因素 系数
a4 = x(5); % SS入流浓度 系数
a5 = x(6); % 带宽因素m  系数
a6 = x(7); % 坡度因素%  系数
a7 = x(8); % 常数项     系数
for i = 1:length(X0)
    X0_fit(i) = a1*X1(i)+a2*(X2(i))^(b)+a3*X3(i)+a4*X4(i)+a5*log(X5(i))+a6*X6(i)+a7;
    err(i) = X0_fit(i)-X0(i);  % 拟合误差
end

在这里插入图片描述

四、备注

完整代码或者代写添加QQ1575304183

往期回顾>>>>>>

【数据分析】时变参数随机波动率向量自回归模型(TVP-VAR)matlab源码

【信号处理】基于ICA算法信号分离matlab源码

【数据分析】模糊二元决策树matlab源码

【数据聚类】基于遗传算法之聚类设计matlab源码

【数据聚类】基于蚁群算法聚类matlab源码

【数据聚类】基于模拟退火算法聚类设计matlab源码

【数据聚类】基于粒子群算法之聚类设计matlab源码

【数据分析】基于贝叶斯网络识别的机场航班延误因素分析matlab源码

【数据分析】基于 SOM的数据分类matlab源码

【数据分析】基于多元宇宙优化DBSCAN聚类matlab源码

猜你喜欢

转载自blog.csdn.net/qq_34763204/article/details/113776390
今日推荐