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

📄 fuping.m

📁 BP神经网络预测。这是一个用于交通流量预测的MATLAB原程序
💻 M
字号:
%输入矢量p
p=[52 50 0.5;
   56 55 1;
   55 59 1; 
   57 55 1;
   35 33 0.1;
   32 34 0.1;
   57 56 1;
   58 56 1;
   59 58 1;
   59 58 1;
   56 55 1;
   58 57 1;
   59 57 1;
   59 58 1;
   55 56 1;
   51 50 0.5;
   52 53 0.5;
   51 50 0.5;
   60 59  1;
   55 54 1;
   57 57 1;
   35 31 0.1;
   58 59 1;
   56 56 1;
   59 59 1;
   30 30 0.1;
   50 49 0.5;
   53 50 0.5;
   57 56 1;
   58 58 1]';
%目标矢量
t=[35 31 20 36 35 39 ;
   48 40 28 49 40 48 ;
   55 48 31 55 42 60;
   58 45 32 57 44 59 ;
   51 42 32 50 48 50 ;
   30 28 23 33 31 32 ;
   32 29 22 30 29 35 ;
   53 43 33 51 42 52;
   52 43 29 56 45 51 ;
   50 45 29 55 39 51 ;
   50 50 32 50 41 54 ;
   55 43 29 56 41 51 ;
   53 50 30 54 43 51 ;
   52 43 35 49 40 55 ;
   52 52 32 47 41 50 ;
   54 52 28 47 42 55;
   46 49 30 48 46 49 ;
   47 48 35 50 38 45 ;
   48 45 30 48 39 48 ;
   56 44 28 53 41 58 ;
   54 50 31 52 45 50 ;
   29 25 30 35 28 28 ;
   52 45 32 51 46 55 ;
   54 50 32 50 41 57;
   51  48 29 48 42 52;
   30 27 20 31 29 32 ;
   49 41 29 41 40 49 ;
   47 43 30 40 39 48 ;
   50 48 30 40 40 53;
   51 47 32 48 43 52 ];
%归一化

u_test=[ t(:,28) t(:,29) t(:,30)];
 
%创建一个新的前向神经网络
%带动量的批处理梯度下降法(TRAINGDM)
net=newff(minmax(P),[20,1],{'logsig','purelin'},'traingdm')%minmax(p)是说p输入的最大值和最小值;[20,1]:Size of ith layer, for Nl layers;'traingdm':训练功能;
%{'logsig','purelin'}:转移函数

%当前输入层权值和阀值
%inputWeights=net.IW{1,1}
inputWeights=-2.5+5*rand(20)
inputbias=net.b{1}

%当前网络层权值和阀值
layerWeights=net.LW{2,1}
layerbias=net.b{2}

%设置训练参数
net.trainParam.show=200;%每隔50次显示一次
net.trainParam.lr=0.15;%lr表示学习速率
net.trainParam.mc=0.8;%mc表示动量系数
net.trainParam.epochs=100000;
net.trainParam.goal=1e-15;

%调用traingdm算法训练BP网络
[net,tr]=train(net,P,T);

%对BP网络进行仿真
A=sim(net,P)

%计算仿真误差
E=T-A;
MSE=mse(E)

Y=[1 2 2.5 3];

X=sim(net,Y)

%plot(P,A,Y,X,'o')
echo off
--------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------
%我写了个径向基函数神经网络试一下,不知行不行呀 
close all 
clf reset 
figure(gcf); 
echo on 
clc 
% NEWRB    设计径向基函数神经网络 
% SIM    对径向基函数网络进行仿真 
pause 
clc 
x=[-1:0.05:-0.05 0.05:0.05:1];% 扣除‘0’的不可除 
y=sin(pi*x)./(pi*x); 
%  画出待逼近函数的图形 
aa=length(x); 
for i=1:aa 
  for j=1:aa 
      z(i,j)=y(i).*y(j); 
  end 
end 
mesh(z) 
pause 
clc 
%  设计径向基函数网络,对函数进行逼近 
goal=1e-10;  % 误差指标 
sp=1; %  扩展常数 
mn=20; %  神经元的最多个数 
df=1;  %训练过程的显示频率 
net=newrb(x,z,goal,sp,mn,df); 
pause 
clc 
%  对网络进行仿真,并画出样本数据和网络输出图形 
Y=sim(net,x); 
figure; 
mesh(z); 
pause 
figure; 
mesh(Y); 
E=z-Y 
echo off 

⌨️ 快捷键说明

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