马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我的P和T是原始的实验数据,二者应该是一条迟滞曲线,T只有数据,没有表达式,写了一个神经网络,结果与原始曲线相差太远,我应该怎么做才行呢?我这里只给出了一个迟滞环的数值,如果增加训练数据(如P是10圈的数据或更多),T的数据也是10圈并与P数据一一对应,列数也相同,错误提示是列数不对,这是什么原因?谢谢解答!我的网络
P=[1.12 1.22 1.32 1.46 1.56 1.66 1.76 1.9 2 2.05 ...
2.1 2.15 2.2 2.25 2.25 2.29 2.29 2.29 2.25 2.2 ...
2.2 2.2 2.1 2.1 2.05 2 1.9 1.81 1.76 1.61 ...
1.51 1.42 1.32 1.22 1.07 0.93 0.78 0.63 0.49 0.39 ...
0.24 0.1 0 -0.1 -0.24 -0.39 -0.54 -0.68 -0.78 -0.88 ...
-0.98 -1.12 -1.22 -1.42 -1.51 -1.61 -1.71 -1.76 -1.86 -1.95 ...
-2 -2.1 -2.15 -2.2 -2.25 -2.25 -2.25 -2.25 -2.25 -2.25 ...
-2.25 -2.2 -2.2 -2.15 -2.1 -2.05 -1.95 -1.9 -1.81 -1.71 ...
-1.61 -1.56 -1.42 -1.27 -1.17 -1.03 -0.88 -0.78 -0.54 -0.44 ...
-0.29 -0.15 0 0.1 0.24 0.39 0.59 0.73 0.83 0.98];
T=[-0.015 -0.02 -0.015 0 0 0 0.005 0.005 0.015 0.02 ...
0.02 0.024 0.024 0.015 0.02 0.02 0.024 0.024 0.02 0.02 ...
0.02 0.015 0.015 0.029 0.029 0.034 0.034 0.034 0.044 0.039 ...
0.039 0.039 0.039 0.029 0.034 0.029 0.029 0.029 0.015 0.015 ...
0.015 0.005 0.005 0.02 0.02 0.015 0.01 0.01 0.015 0.015 ...
0.01 0.02 0.015 0 0 -0.005 -0.01 -0.01 -0.015 -0.02 ...
-0.02 -0.024 -0.029 -0.02 -0.02 -0.024 -0.024 -0.024 -0.02 -0.015 ...
-0.02 -0.015 -0.02 -0.029 -0.029 -0.034 -0.034 -0.034 -0.034 -0.034 ...
-0.034 -0.034 -0.039 -0.029 -0.029 -0.029 -0.029 -0.029 -0.02 -0.015 ...
-0.015 -0.005 -0.005 -0.02 -0.02 -0.02 -0.015 -0.01 -0.02 -0.02];
%对训练数据进行归一化处理
[Pn,minp,maxp]=premnmx(P);
clc
%创建BP神经网络
net=newff(minmax(Pn),[15 1],{'tansig','purelin'},'trainbr');
clc
% 设置训练参数
net.performFcn='sse';
net.trainParam.goal=0.0001;
net.trainParam.show=1;
net.trainParam.epochs=15;
net.trainParam.Mu_max=1e-5;
net.trainParam.min_grad=1e-16;
% net.trainParam.mc=0.95;
net.trainParam.mem_reduc=1;
% 重新初始化网络
net=init(net);
% 对BP神经网络进行训练
[net,tr]=train(net,Pn,T);
% 对BP神经网络进行仿真分析
Yn=sim(net,Pn);
%计算均方误差
E=T-Yn;
MSE=mse(E);
figure(2);
plot(P,T,'r--',P,Yn,'b-');
[ 本帖最后由 eight 于 2007-8-15 20:41 编辑 ] |