MATLAB借助小波分析进行溶解氧预测
先晒一下图


再晒一下预测准确度

调用指令
[ACC,R,DK1,DK2,MES,ynn,output_test,N11]=xiaobohanshu('xiaoboshuai2.mat',3,1,90,10,6,0.01,0.001,200)
[ACC,R,DK1,DK2,MES,ynn,output_test,N11]=xiaobohanshu('xiaoboshuai2.mat',3,1,90,10,6,0.01,0.001,200)
采用上述代码完成小波预测,其中ACC R DK1 DK2 为评价指标
MES为数据记录信息
ynn为预测值 output为实际值
'xiaoboshuai2.mat',为数据源
3,1, 3个输入1个输出
90,10 前90行学习,后10行预测,可灵活设置,比如前50行,后5行预测
,6,0.01,0.001,200 隐藏点个数 学习概率 学习概率 迭代次数
function [ACC,R,DK1,DK2,MES,ynn,output_test,N11]=xiaobohanshu(CC,ru,chu,xuexigeshu,yucegeshu,J1,J2,J3,J4)%预测 ACC为准确率,R为学习系数,DK1为±0.1mg/L,DK2为±0.2mg/L
%CC mat路径指令 ru 强调几个输入,chu强调几个输出,xuexigeshu为喂入多少行数据
% yucegeshu为对标实际值区间个数,前80行输入,20行用来测试结果。
%J1 %隐形节点个数 J2 %学习概率 J3 %学习概率 J4 迭代次数
%load traffic_flux input output input_test output_test
clc
%load 925xiaobo input output
D=CC;
X22=load(D).xiaoboshuai;
input=X22(:,1:ru);
output=X22(:,ru+1:ru+chu);
M=size(input,2); %输入节点个数 几个输入
N=size(output,2); %输出节点个数 几个输出
input_test=input(xuexigeshu+1:xuexigeshu+yucegeshu,:);
output_test=output(xuexigeshu+1:xuexigeshu+yucegeshu,:);
N11=size(input_test,1); %0矩阵用这个
n=J1; %隐形节点个数 6
lr1=J2; %学习概率 0.01
lr2=J3; %学习概率 0.001
maxgen=J4; %迭代次数 100
%权值初始化
Wjk=randn(n,M);Wjk_1=Wjk;Wjk_2=Wjk_1;
Wij=randn(N,n);Wij_1=Wij;Wij_2=Wij_1;
a=randn(1,n);a_1=a;a_2=a_1;
b=randn(1,n);b_1=b;b_2=b_1;
%节点初始化
y=zeros(1,N);
net=zeros(1,n);
net_ab=zeros(1,n);
%权值学习增量初始化
d_Wjk=zeros(n,M);
d_Wij=zeros(N,n);
d_a=zeros(1,n);
d_b=zeros(1,n);
%% 输入输出数据归一化
[inputn,inputps]=mapminmax(input');
[outputn,outputps]=mapminmax(output');
inputn=inputn';
outputn=outputn';
error=zeros(1,maxgen);
%% 网络训练
for

本文介绍了使用MATLAB进行溶解氧预测的方法,通过调用xiaobohanshu函数并展示预测准确度。代码中,3个输入参数和1个输出参数用于预测,90行数据用于训练,10行用于测试。隐藏节点数量、学习概率和迭代次数也是关键参数,用于优化模型。实验结果显示了预测值(ynn)与实际值(output),以及评价指标ACC、R、DK1、DK2和MES。

660

被折叠的 条评论
为什么被折叠?



