|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
RBF测试实例
! x2 B+ W& W' ?, J# b% }$ O' y2 W! m1 i6 L. a: N
% % % % % % % % % % % % % % % % % % %
7 X7 I( }/ s% |0 i2 `% approximate RBF网络对同意函数进行拟合
" H+ O7 ~8 d; o% ]# B) J3 Z% % % % % % % % % % % % % % % % % % % ) a; t& B. Q% B \+ r* O4 O" y' N
%%清空环境变量 % L9 ]3 A1 v h0 o$ U6 M. R& h
clc
1 a, }; [8 s! |( j J* O5 l9 m$ ~0 rclear
4 q0 L. S% h3 Z( O2 k0 H+ ]%%产生训练样本,训练输入,训练输出
: P! r$ V6 V9 w. y# ]9 i1 I%ld为样本隶属
t# v- W0 w, z% G9 l0 e$ N$ ?ld=400; 8 K, U2 @5 T G" Q" H7 j& @; H
%产生2*ld的矩阵 6 s: |3 l3 }! z7 W9 [
x=rand(2,ld); 6 g5 T$ g$ b/ j
%将x转换到[-1.5 1.5]之间
+ @% F) F. {7 G4 C1 @: _x=(x-0.5)*1.5*2; + O/ }( Y5 |; }! a9 l- ]2 B8 h
%x的第一行为x1,第二行为x2 % j) R m5 ^* s7 X# x( K y% f
x1=x(1,: );
( J* y* B$ u4 V& @$ Tx2=x(2,: ); - ^) {) h' ]$ u m% `0 o
%计算网络输出F值
( ?# X0 {8 @7 p3 j( |. ]1 ^0 `3 K9 ZF=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
2 G8 k6 A+ `3 E9 i%%建立RBF神经网络
3 N: T) n- O4 y! D%采用approximate RBF神经网络,spread为默认值 7 h. L6 p4 h, j; J w# d
net=newrb(x,F); 1 d/ A3 P; d* |: e) Z
%%建立测试样本 ' l- k: F' l0 d4 C# s
interval=0.1;
' F9 }& r/ O9 B* n p- |$ R! P[i,j]=meshgrid(-1.5:interval:1.5);
% e a4 {4 [6 ^1 ^2 ^row=size(i);
* \4 ?3 ~ Y" ytx1=i(: );
2 V7 \) L' N$ Z% U% b3 S; e0 ?! Q. Dtx1=tx1';
' ~. E; I) y( ytx2=j(: ); / i; f+ r4 j9 J% d' i$ v
tx2=tx2'; 7 ?6 z6 K% b1 n4 f. H2 K
tx=[tx1;tx2]; + Q3 c. g4 a5 D. Y+ v
2 Z( j8 W3 v7 ^- X& a* M%%使用建立的RBF网络进行模拟,得出网络输出 + Q7 T( U7 E: Z, {2 X. d
ty=sim(net,tx);
' U; Q' C* F3 O$ h& Q%%使用图像,画出三维图 5 q! q( A! N9 k' k, L: A2 c
%真正的函数图像
. ?# ^* E; f: h0 K. O5 Linterval=0.1;
1 x1 y1 q" \8 V9 Z0 D4 G! E[x1,x2]=meshgrid(-1.5:interval:1.5);
6 r* v! _/ R) b8 i- NF=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
: C- V6 |3 n) Q4 B; tsubplot(1,3,1);
$ I- i4 J. M6 ]9 s3 Rmesh(x1,x2,F); 1 A: G/ M' A" |' i
zlim([0,60]); 2 q" Z8 ^* i6 _: p; u" q
title('真正的函数图像'); 1 l% ^% A3 u& o! Z
%网络得出的函数图像 ( P- t9 O0 O0 A1 @) I+ y
v=reshape(ty,row);
: \! C/ S' q; w$ ~4 |subplot(1,3,2); 7 L; H# I: L! J
mesh(i,j,v); & g, K4 I9 z( u4 z
zlim([0,60]);
9 i& a2 W% o" U! Rtitle('RBF神经网络结果'); ) y5 @3 w0 h- A, P0 k y ]2 g- i' \
%误差图像 " F( v2 T! O0 J( N. O; G
subplot(1,3,3); 5 h3 Z0 d& [# m- O/ l# j+ q
mesh(x1,x2,F-v);
& x$ F2 O( W& Y& |6 ~8 S! B) J3 \% |# Fzlim([0,60]); # T% y$ t$ w% p F
title('误差图像');
2 k& Z+ v! e+ C+ fset(gcf,'position',[300,250,900,400])6 P% k) c' h) O, I9 y1 @! F
|
|