%***清空运行环境
clc
clear
%***读取数据
load movementdata.mat;
TXY2=TXY;
%matlab中的mapminmax函数只能按照行进行归一化
FlattenedData=TXY(:)'; % 展开矩阵为一列,然后转置为一行。
[MappedFlattened,PS]=mapminmax(FlattenedData,0,1);%归一化。
TXY=reshape(MappedFlattened,size(TXY));%还原为原始矩阵形式。此处不需转置回去,因为reshape恰好是按列重新排序
[row,col]=size(TXY);
%set=row/5;
row1=250;%row-set;
X=TXY;
%***原始数据累加生成
for i=1:row
y(i,1)=sum(X(1:i,1));
y(i,2)=sum(X(1:i,2));
y(i,3)=sum(X(1:i,3));
y(i,4)=sum(X(1:i,4));
y(i,5)=sum(X(1:i,5));
y(i,6)=sum(X(1:i,6));
y(i,7)=sum(X(1:i,7));
y(i,8)=sum(X(1:i,8));
y(i,9)=sum(X(1:i,9));
y(i,10)=sum(X(1:i,10));
y(i,11)=sum(X(1:i,11));
y(i,12)=sum(X(1:i,12));
end
%***网络参数随机初始化 (注意: 输入数据有5 维b1-b5,输出1 维a)
a=0.3+rand(1)/4;
b1=0.3+rand(1)/4;
b2=0.3+rand(1)/4;
b3=0.3+rand(1)/4;
b4=0.3+rand(1)/4;
b5=0.3+rand(1)/4;
b6=0.3+rand(1)/4;
b7=0.3+rand(1)/4;
b8=0.3+rand(1)/4;
b9=0.3+rand(1)/4;
b10=0.3+rand(1)/4;
b11=0.3+rand(1)/4;
%***学习速率初始化
u1=0.0015;
u2=0.0015;
u3=0.0015;
u4=0.0015;
u5=0.0015;
u6=0.0015;
u7=0.0015;
u8=0.0015;
u9=0.0015;
u10=0.0015;
u11=0.0015;
%***权数初始化
t=1;
w11=a;
w21=-y(1,1);
w22=2*b1/a;
w23=2*b2/a;
w24=2*b3/a;
w25=2*b4/a;
w26=2*b5/a;
w27=2*b6/a;
w28=2*b7/a;
w29=2*b8/a;
w210=2*b9/a;
w211=2*b10/a;
w212=2*b11/a;
w31=1+exp(-a*t);
w32=1+exp(-a*t);
w33=1+exp(-a*t);
w34=1+exp(-a*t);
w35=1+exp(-a*t);
w36=1+exp(-a*t);
w37=1+exp(-a*t);
w38=1+exp(-a*t);
w39=1+exp(-a*t);
w310=1+exp(-a*t);
w311=1+exp(-a*t);
w312=1+exp(-a*t);
theta=(1+exp(-a*t))*(b1*y(1,2)/a+b2*y(1,3)/a+b3*y(1,4)/a+b4*y(1,5)/a+b5*y(1,6)/a ...
+b6*y(1,7)/a+b7*y(1,8)/a+b9*y(1,10)/a+b10*y(1,11)/a+b11*y(1,12)/a-y(1,1));
%***设定网络循环次数并记录误差
for j=1:100
E(j)=0;
for i=1:row1 %资料笔数
t=i;
%***网络输出计算
LB_b=1/(1+exp(-w11*t)); %LB 层输出
LC_c1=LB_b*w21;
LC_c2=y(i,2)*LB_b*w22; %LC 层输出
LC_c3=y(i,3)*LB_b*w23; %LC 层输出
LC_c4=y(i,4)*LB_b*w24; %LC 层输出
LC_c5=y(i,5)*LB_b*w25; %LC 层输出
LC_c6=y(i,6)*LB_b*w26; %LC 层输出
LC_c7=y(i,7)*LB_b*w27; %LC 层输出
LC_c8=y(i,8)*LB_b*w28; %LC 层输出
LC_c9=y(i,9)*LB_b*w29; %LC 层输出
LC_c10=y(i,10)*LB_b*w210; %LC 层输出
LC_c11=y(i,11)*LB_b*w211; %LC 层输出
LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6 ...
+w37*LC_c7+w38*LC_c8+w39*LC_c9+w310*LC_c10+w311*LC_c11; %LD 层输出
theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2 ...
+w27*y(i,7)/2+w28*y(i,8)/2+w29*y(i,9)/2+w210*y(i,10)/2+w211*y(i,11)/2-y(1,1)); %阀值输出
ym=LD_d-theta; %网络预测值
yc(i)=ym;
%***权数修正计算
error=ym-y(i,1) %计算误差
E(j)=E(j)+abs(error); %误差求和
error1=error*(1+exp(-w11*t)); %LC 层误差
error2=error*(1+exp(-w11*t));
error3=error*(1+exp(-w11*t));
error4=error*(1+exp(-w11*t));
error5=error*(1+exp(-w11*t));
error6=error*(1+exp(-w11*t));
error7=error*(1+exp(-w11*t));
error8=error*(1+exp(-w11*t));
error9=error*(1+exp(-w11*t));
error10=error*(1+exp(-w11*t));
error11=error*(1+exp(-w11*t));
error12=(1/(1+exp(-w11*t)))*(1-1/(1+exp(-w11*t)))*(w21*error1+w22*error2+w23*error3+w24*error4+w25*error5+w26*error6 ...
+w27*error7+w28*error8+w29*error9+w210*error10+w211*error11); %LB 层误差
%***更新权数计算
w22=w22-u1*error2*LB_b;
w23=w23-u2*error3*LB_b;
w24=w24-u3*error4*LB_b;
w25=w25-u4*error5*LB_b;
w26=w26-u5*error6*LB_b;
w27=w27-u6*error7*LB_b;
w28=w28-u7*error8*LB_b;
w29=w29-u8*error9*LB_b;
w210=w210-u9*error10*LB_b;
w211=w211-u10*error11*LB_b;
w11=w11+a*t*error12;
end
end
%***预测开始
for i=row1+1:row
t=i;
LB_b=1/(1+exp(-w11*t)); %LB 层输出
LC_c1=LB_b*w21;
LC_c2=y(i,2)*LB_b*w22; %LC 层输出
LC_c3=y(i,3)*LB_b*w23; %LC 层输出
LC_c4=y(i,4)*LB_b*w24; %LC 层输出
LC_c5=y(i,5)*LB_b*w25; %LC 层输出
LC_c6=y(i,6)*LB_b*w26; %LC 层输出
LC_c7=y(i,7)*LB_b*w27; %LC 层输出
LC_c8=y(i,8)*LB_b*w28; %LC 层输出
LC_c9=y(i,9)*LB_b*w29; %LC 层输出
LC_c10=y(i,10)*LB_b*w210; %LC 层输出
LC_c11=y(i,11)*LB_b*w211; %LC 层输出
LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6 ...
+w37*LC_c7+w38*LC_c8+w39*LC_c9+w310*LC_c10+w311*LC_c11; %LD 层输出
theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2 ...
+w27*y(i,7)/2+w28*y(i,8)/2+w29*y(i,9)/2+w210*y(i,10)/2+w211*y(i,11)/2-y(1,1)); %阀值输出
ym=LD_d-theta; %网络预测值
yc(i)=ym;
end
%***预测结果递减求得每一笔预测值
for j=row:-1:row1+1
ys(j)=(yc(j)-yc(j-1));
end
ys = mapminmax('reverse',ys,PS);
plot(251:312,ys(251:312),'b',251:312,TXY2(251:312,1),'r')
GM.zip_FOA_GM_GM神经网络_grey_灰色
版权申诉
78 浏览量
2022-09-21
22:57:14
上传
评论
收藏 2KB ZIP 举报
我虽横行却不霸道
- 粉丝: 75
- 资源: 1万+
最新资源
- TG-2024-05-23-204718255.mp4
- 候志强@181 5428 8938_20240420112107.amr
- spispispispispi
- 实验二:IP协议分析.zip
- 驱动代码驱动代码驱动代码驱动代码
- SVID_20240523_141155_1.mp4
- Code for the complete guide to tkinter tutorial
- 关于百货中心供应链管理系统.zip
- SimpleFolderIcon-master 修改Unity的Project下的文件夹图标
- A python Tkinter widget to display tile based maps
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈