急:神经网络实际应用一例+matlab代码 50
最好有为什么要用神经网络方法,与其他方法比较的优缺点,一个大致的对比试验结果,谢啦可以发送邮箱:576669176@qq.com...
最好有为什么要用神经网络方法,与其他方法比较的优缺点,一个大致的对比试验结果,谢啦
可以发送邮箱:576669176@qq.com 展开
可以发送邮箱:576669176@qq.com 展开
3个回答
展开全部
这是个河道预测的例子,比较容易看懂,其中输入向量各类分别代表:流量,含沙量,流速,水位等影响因素,T为平均最小水深和淤积厚度。通过对训练资料与目标向量的训练确定网络间的权重系数,再代入要预测的影响因子,就可以预测出最小水深和淤积厚度!
clc
clear
P=[1520 510 5.155 33.88 0.7 1.9;
1468 521 5.321 35.79 0.6 1.798;
2412 1140 5.32 25.89 0.8 1.289;
1750 129 4.7 23.8 1 1.68;
1688 361 4.865 27.08 0.8 1.149;
1607 489 5.1 28.9 1.03 1.72;
1200 127 4.56 19.84 1.8 1.095;
1990 148 4.89 29.373 0.9 1.23;
1509 511 5.12 34.3 0.8 1.35;
1730 133 4.46 23.06 1.4 1.201]';
T=[0.7 0.6 0.8 1 0.8 1.03 1.8 0.9 0.8 1.4;
1.9 1.798 1.289 1.68 1.149 1.72 1.095 1.230 1.35 1.201];
%?????
[Pn minp,maxp]=premnmx(P);
[Tn,mint,maxt]=premnmx(T);
%????
Ptest=[Pn(:,1) Pn(:,3) Pn(:,5) Pn(:,7) Pn(:,8) Pn(:,10)];
Ttest=[Tn(:,1) Tn(:,3) Tn(:,5) Tn(:,7) Tn(:,8) Tn(:,10)];
%??????
No=[9 12 15];
for i=1:3
net=newff(minmax(Pn),[No(i),2],{'tansig','tansig'},'traingdx');
net.trainParam.epochs=1000 ;
net.trainParam.goal=0.001;
net.trainParam.show=50;
net=init(net);
Net=train(net,Pn,Tn);
Temp=sim(Net,Ptest);
y(2*i-1,:)=Temp(1,:);
y(2*i,:)=Temp(2,:);
end
Y1=[y(1,:);y(2,:)];
Y2=[y(3,:);y(4,:)];
Y3=[y(5,:);y(6,:)];
P1=postmnmx(Y1,mint,maxt);
P2=postmnmx(Y2,mint,maxt);
P3=postmnmx(Y3,mint,maxt);
%?????
for i=1:6
error1(i)=norm(Y1(:,i)-Ttest(:,i));
error2(i)=norm(Y2(:,i)-Ttest(:,i));
error3(i)=norm(Y3(:,i)-Ttest(:,i));
end
figure;
plot(1:6,error1,'o');
hold on;
plot(1:6,error2,'--');
hold on;
plot(1:6,error3,'*');
hold off;
py=[1820 266 471 25.13 1.1 1.05]';
py_new=tramnmx(py,minp,maxp);
pf=sim(net,py_new);
py=postmnmx(pf,mint,maxt);
py
clc
clear
P=[1520 510 5.155 33.88 0.7 1.9;
1468 521 5.321 35.79 0.6 1.798;
2412 1140 5.32 25.89 0.8 1.289;
1750 129 4.7 23.8 1 1.68;
1688 361 4.865 27.08 0.8 1.149;
1607 489 5.1 28.9 1.03 1.72;
1200 127 4.56 19.84 1.8 1.095;
1990 148 4.89 29.373 0.9 1.23;
1509 511 5.12 34.3 0.8 1.35;
1730 133 4.46 23.06 1.4 1.201]';
T=[0.7 0.6 0.8 1 0.8 1.03 1.8 0.9 0.8 1.4;
1.9 1.798 1.289 1.68 1.149 1.72 1.095 1.230 1.35 1.201];
%?????
[Pn minp,maxp]=premnmx(P);
[Tn,mint,maxt]=premnmx(T);
%????
Ptest=[Pn(:,1) Pn(:,3) Pn(:,5) Pn(:,7) Pn(:,8) Pn(:,10)];
Ttest=[Tn(:,1) Tn(:,3) Tn(:,5) Tn(:,7) Tn(:,8) Tn(:,10)];
%??????
No=[9 12 15];
for i=1:3
net=newff(minmax(Pn),[No(i),2],{'tansig','tansig'},'traingdx');
net.trainParam.epochs=1000 ;
net.trainParam.goal=0.001;
net.trainParam.show=50;
net=init(net);
Net=train(net,Pn,Tn);
Temp=sim(Net,Ptest);
y(2*i-1,:)=Temp(1,:);
y(2*i,:)=Temp(2,:);
end
Y1=[y(1,:);y(2,:)];
Y2=[y(3,:);y(4,:)];
Y3=[y(5,:);y(6,:)];
P1=postmnmx(Y1,mint,maxt);
P2=postmnmx(Y2,mint,maxt);
P3=postmnmx(Y3,mint,maxt);
%?????
for i=1:6
error1(i)=norm(Y1(:,i)-Ttest(:,i));
error2(i)=norm(Y2(:,i)-Ttest(:,i));
error3(i)=norm(Y3(:,i)-Ttest(:,i));
end
figure;
plot(1:6,error1,'o');
hold on;
plot(1:6,error2,'--');
hold on;
plot(1:6,error3,'*');
hold off;
py=[1820 266 471 25.13 1.1 1.05]';
py_new=tramnmx(py,minp,maxp);
pf=sim(net,py_new);
py=postmnmx(pf,mint,maxt);
py
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
clear all
close all
t1=0:0.05:4;
t2=4.04:0.024:6;
t=[t1 t2];
T=[sin(t1*4*pi) sin(t2*8*pi)];
T=con2seq(T); %将信号转换成序列的形式
%目标信号
P=T;
%绘制待测的目标信号曲线
plot(t,cat(2,T{:}))
%生成自适应滤波网络
%学习速率
lr=0.1;
delays=[1 2 3 4 5];
net=newlin(minmax(cat(2,P{:})),1,delays,lr);
%对网络进行训练
[net,Y,E]=adapt(net,P,T);
%绘制网格预测输出曲线
figure
plot(t,cat(2,T{:}),'--',t,cat(2,Y{:}),'r')
figure
%绘制预测误差曲线
plot(t,cat(2,E{:}),[min(t),max(t)],[0 0]',':r')
close all
t1=0:0.05:4;
t2=4.04:0.024:6;
t=[t1 t2];
T=[sin(t1*4*pi) sin(t2*8*pi)];
T=con2seq(T); %将信号转换成序列的形式
%目标信号
P=T;
%绘制待测的目标信号曲线
plot(t,cat(2,T{:}))
%生成自适应滤波网络
%学习速率
lr=0.1;
delays=[1 2 3 4 5];
net=newlin(minmax(cat(2,P{:})),1,delays,lr);
%对网络进行训练
[net,Y,E]=adapt(net,P,T);
%绘制网格预测输出曲线
figure
plot(t,cat(2,T{:}),'--',t,cat(2,Y{:}),'r')
figure
%绘制预测误差曲线
plot(t,cat(2,E{:}),[min(t),max(t)],[0 0]',':r')
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以详细一些嘛?我正在做一个这方面的东西,可是我的数据比较多,可能你想要的东西没必要有那么多数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询