马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
刚刚接触matlab
现在需要做一个BP神经网络,输入值是1km x 1km的平面中的坐标点离平面4个顶点信号强度(4个顶点假设成发射信号基站) target设定成1km x 1km的平面中的坐标点(一共测试3次,即1m为单位的点,50m为单位的点,100m为单位的点)这样一共测试3次想找3次执行中误差最小的单位
close all
clear
echo on
clc
%BP建模
%原始数据归一化
p1=load ('C:\test.txt');
t1=load ('C:\test2.txt');
p=p1';t=t1';
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);
%设置网络隐单元的神经元数
n=30;
%建立相应的BP网络
pause
clc
net=newff(minmax(pn),[10,6,2],{'tansig','logsig','purelin'},'trainlm');%traindm,trainlm
inputWeights=net.IW{1,1};
inputbias=net.b{1};
layerWeights=net.IW{1,1};
layerbias=net.b{2};
pause
clc
% 训练网络
net.trainParam.show=50;%50
net.trainParam.lr=0.05;
net.trainParam.mc=0.9;%0.9
net.trainParam.epochs=500;%1000
net.trainParam.goal=1e-5;%3
pause
clc
%调用TRAINGDM算法训练BP网络
net=train(net,pn,tn);
%对BP网络进行仿真
A=sim(net,pn);
echo off
pause
clc
自己网上东拼西凑写了下,不过执行结果不敢恭维 - -;
请教各位大大,上面的代码可以优化吗?
还有需要归一化过程吗?因为输入值和target值并不一样。。。
3次结果的曲线图能用matlab工具箱整合到一起做比较吗?
- -;请求支援 |