查看: 5082|回复: 3|关注: 0

[已解决] 关于RBF神经网络逼近求积分法的一个疑问

[复制链接]

新手

7 麦片

财富积分


050


2

主题

18

帖子

0

最佳答案
最近看书看到RBF神经网络逼近法求含有积分项的一类积分这一部分,看到书上P84页例6.2-4这道题目。对于程序中的几句话有点理解不能,还望大神赐教。如下:
  1. input = [U(:)';V(:)'];%网络输入
  2. output = Tf(:)';%网络输出
  3. net = newrb(input,output,0.00001,3*inf_u/nn);%生成逼近网络
  4. TfInet = sim(net,[UI(:)';VI(:)']);%网络给出的函数值
复制代码
看了文档我知道newrb函数输入的是训练样本都是列向量,但是为什么网络的输入和输出都要转置呢?我试了一下不转置的代码,如下:
  1. input = [U(:);V(:)];%网络输入
  2. output = Tf;%网络输出
  3. net = newrb(input,output,0.00001,3*inf_u/nn);%生成逼近网络
  4. TfInet = sim(net,[UI(:);VI(:)]);%网络给出的函数值
复制代码
结果好像就会出错,出错信息如下:
Error using network/sim (line 130)
Input 1 size does not match net.inputs{1}.size.

Error in case_1_3 (line 15)
Tf=sim(net,[UI;VI]);
希望大神能给予解答,谢谢啦!
还有一个小问题就是,如果要转置矩阵的话,语句
  1. output=Tf’;
复制代码
不就可以了吗?为何还要
  1. output = Tf(:)';
复制代码
这样?
再次感谢大神的解答!
回复主题 已获打赏: 0 积分

举报

书籍作者

364 麦片

财富积分



12

主题

974

帖子

75

最佳答案
  • 关注者: 65
发表于 2015-7-27 16:48:51 | 显示全部楼层 |此回复为最佳答案
[U( : )';V( : )'];这个是2*n的矩阵。每一列表示一个样本。
tf( : )’是为了确保tf输入不是列向量时,转成列向量,最新的MATLAB有了iscolumn和isrow函数,所以可以修改:
  1. if isrow(tf)
  2. output = tf;
  3. else
  4. output = tf';
  5. end
复制代码

回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


2

主题

18

帖子

0

最佳答案
 楼主| 发表于 2015-7-27 19:42:54 | 显示全部楼层
吴鹏 发表于 2015-7-27 16:48
;这个是2*n的矩阵。每一列表示一个样本。
tf( : )’是为了确保tf输入不是列向量时,转成列向量,最新的MATL ...

谢谢吴老师的解答,我大概懂了!那再叨扰地问一下,newrb函数中传播速度(spread)是什么东西,或者如果您能提供一些关于这方面介绍的文章或者网站我也可以自己去看看。多次承蒙您的指导,多谢多谢!感激不尽!
回复此楼 已获打赏: 0 积分

举报

书籍作者

364 麦片

财富积分



12

主题

974

帖子

75

最佳答案
  • 关注者: 65
发表于 2015-7-27 23:05:07 | 显示全部楼层
X.Human 发表于 2015-7-27 19:42
谢谢吴老师的解答,我大概懂了!那再叨扰地问一下,newrb函数中传播速度(spread)是什么东西,或者如果 ...

那个也叫散布常数,是调节RBF网络逼近结果平滑与否的一个参数。可以参考下这个文档,第9页的示例。http://wenku.baidu.com/link?url= ... AcIZH2eV6jOEDuNvDL_
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

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