清空环境变量
clc
clear
%%
产生输入
输出数据
%
设置步长
interval=0.01
%
产生x1
x2
x1=-1.5:interval:1.5
x2=-1.5:interval:1.5
%
按照函数先求得相应的函数值,作为网络的输出。
F
=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2)
%%
网络建立和训练
%
网络建立
输入为[x1x2],输出为F。Spread使用默认。
net=newrbe([x1x2],F)
%%
网络的效果验证
%
我们将原数据回带,测试网络效果:
ty=sim(net,[x1x2])
%
我们使用图像来看网络对非线性函数的拟合效果
figure
plot3(x1,x2,F,'rd')
hold
on
plot3(x1,x2,ty,'b-.')
view(113,36)
title('可视化的方法观察准确RBF神经网络的拟合效果')
xlabel('x1')
ylabel('x2')
zlabel('F')
grid
on
%% 清空环境变量clc
clear
close all
%%
a=load('walk1.txt')%读取数据 % xlsread(‘ ‘);读取execl文件
data=a(1:500,5)%样本数据和测试数据
order=5%输入数据个数
snum=200%训练样本数
step=3%预测步数
input=data(1:snum)
output=data(1+order+step:snum+order+step)
delay=200%训练样本与测试样本间时延
input1=data(1+delay:snum+delay)
output1=date(1+order+delay+step:snum+order+delay+step)
input_train=zeros(snum,order)input_test=zeros(snum,order)
for i=1:snum
input_train(i,:)=data(i:i+order-1)
input_test(i,:)=data(i+delay:i+delay+order-1)
end
%% RBF神经网络预测
%% 网络建立和训练
net=newrb(input_train',output',0.001,100,300,25)
% net=newrbe(input_train',output',100)
% net=newgrnn(input_train',output',10)
%% 网络验证
ty=sim(net,input_train')
errR=abs(output-ty')
ty1=sim(net,input_test')
errR1=abs(output1-ty1')
figure
plot(1:snum,output1,'r*-')
hold on
plot(1:snum,ty1','kx-')
title('三步RBF')
xlabel('数据序号')
ylabel('数据值')
legend('实际值','预测值')
figure
subplot(2,1,1)
stem(1:snum,errR1,'r*')
title('三步RBF')
xlabel('数据序号')
ylabel('绝对误差值')
rbfmean = mean(errR1)
subplot(2,1,2)
stem(1:snum,
abs(errR1./output1),'r*')
title('三步RBF')
xlabel('数据序号')
ylabel('绝对误差率')
rbfpmean = mean(abs(errR1./output1))*100%%
自己对着改一下。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)