声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1580|回复: 3

[编程技巧] 神经网络拟合实验曲线问题出现列数不对的错误提示

[复制链接]
发表于 2007-8-15 12:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-8-15 20:36 | 显示全部楼层
要求 p t 的列数 要一样
搞懂了就不会碰到这个问题了
 楼主| 发表于 2007-8-16 09:27 | 显示全部楼层
谢谢jimin,我知道p和t的列数要相等,我给出的网络好用,一组p和一组t没问题,但要是p是两组以上数据,就不行了,因为我的t数据与p数据是一一对应的,不可能出现列数不对的问题。我更想知道曲线是不是可以这样拟合(因为我的p和t数据都不规范),以前我是把p和t分别建网,按fft的结果分别建立目标函数,然后再把两个拟合结果合成为一副图,这样的效果很好,但觉得有点牵强。看了别人的论文,是按我问的情况拟合的,不知道目标数据不理想,拟合的效果能行吗?望解答,谢了!!!
 楼主| 发表于 2007-8-17 11:47 | 显示全部楼层
我的问题是试验得到数据(每组100个,有很多组),想用神经网络拟合,看了一篇文献写的比最小二乘拟合精度高,想知道神经网络是如何实现的,哪位高人做过这样的问题,麻烦解答一下,谢谢!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-8 16:56 , Processed in 0.073394 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表