- 积分
- 3
- 注册时间
- 2010-8-8
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 starbinbin_csu 于 2010-9-11 21:57 编辑
首先一段BP做函数拟合代码如下:- function BP()
- %% 数据处理
- clear;clc
- load 平头圆柱体数据 ;
- input=[v_cal1;v_cal11];
- output=[v1;v11];
- k=rand(1,152);
- [m,n]=sort(k);
- input_train=input(n(1:100),:)';
- output_train=output(n(1:100),:)';
- input_test=input(n(101:152),:)';
- output_test=output(n(101:152),:)';
-
- %训练数据归一化
- [inputn,inputps]=mapminmax(input_train);
- [outputn,outputps]=mapminmax(output_train);
-
- %% BP神经网络的构建与训练
- % %初始化网络结构
- net=newff(inputn,outputn,5);
- net.trainParam.epochs=1000;
- net.trainParam.lr=0.1;
- net.trainParam.goal=0.01;
- %网络训练
- net=train(net,inputn,outputn);
- %% BP网络预测
- %预测数据归一化
- inputn_test=mapminmax('apply',input_test,inputps);
-
- %网络预测输出
- an=sim(net,inputn_test);
-
- %网络输出反归一化
- BPoutput=mapminmax('reverse',an,outputps);
- %% 结果分析
- figure(1)
- plot(BPoutput,':og')
- hold on
- plot(output_test,'-*');
- legend('预测输出','期望输出')
- title('BP网络预测输出','fontsize',12)
- ylabel('函数输出','fontsize',12)
- xlabel('样本','fontsize',12)
- %预测误差
- error=BPoutput-output_test;
- figure(2)
- plot(error,'-*')
- title('BP网络预测误差','fontsize',12)
- ylabel('误差','fontsize',12)
- xlabel('样本','fontsize',12)
- figure(3)
- plot((output_test-BPoutput)./BPoutput,'-*');
- title('神经网络预测误差百分比')
- errorsum=sum(abs(error))
- end
复制代码 有兴趣的可以运行一下,为什么预测误差这么大啊?有什么办法可以减小误差吗?相关数据如下: |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|