|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
RBF测试实例5 x5 J1 S3 G) o8 Y, R+ p3 l
, a2 W" t; P5 t( g0 G, {6 V% % % % % % % % % % % % % % % % % % %
" p9 y0 X8 R8 g& A5 w' d% approximate RBF网络对同意函数进行拟合
) H' Q$ a/ E8 M% % % % % % % % % % % % % % % % % % % / m# \+ P1 d$ v3 X( s, }
%%清空环境变量
8 k% }% G6 j; v6 n% iclc
) u1 q3 d* C/ t6 @. rclear " R5 @0 F3 C9 p
%%产生训练样本,训练输入,训练输出
- ^9 ~9 P3 |. P, ~" G%ld为样本隶属
+ K2 [$ @, O/ e# a- t9 W1 {ld=400; " g& v3 {7 U2 D6 n7 f3 C6 c, M0 d
%产生2*ld的矩阵
! W0 Y/ y& e1 B$ Wx=rand(2,ld); 2 R9 k% T+ ?% R
%将x转换到[-1.5 1.5]之间 1 W" z; z" L6 g; o
x=(x-0.5)*1.5*2; 7 t& F7 W4 \* h( ?& }
%x的第一行为x1,第二行为x2 ) o8 c& b2 V, E6 H# S
x1=x(1,: );
! Q0 v) P+ X+ V! z: ?* `" |( M1 D6 ax2=x(2,: );
* s! O4 j6 ?4 i. o%计算网络输出F值
5 r5 o% B/ n; k+ [6 O l1 ]5 _- XF=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
2 ~" D! P& E: L6 u) r5 F) b%%建立RBF神经网络 1 B) k* _/ Q6 g3 r- \' L! E& G
%采用approximate RBF神经网络,spread为默认值
; \; J6 J1 Q6 h1 M! n0 T: _2 Nnet=newrb(x,F); ( a0 V d$ Q& G p
%%建立测试样本 7 x, I4 E& ^) U0 j
interval=0.1;
/ A/ G9 Q, u, \% M[i,j]=meshgrid(-1.5:interval:1.5);
) x7 W* S& N4 Y9 N8 {row=size(i); ! ?- j4 J5 p3 c1 p _3 c; C
tx1=i(: );
( n8 r9 w! G0 m2 x% atx1=tx1'; 7 }- r3 K: N1 \
tx2=j(: ); 5 [3 N! y8 @2 u L4 t
tx2=tx2'; 5 \7 u9 o- c! y p$ w! z1 i* T
tx=[tx1;tx2];
% J' [ x6 N* x! c
3 j( ^4 m; @# O2 J& z%%使用建立的RBF网络进行模拟,得出网络输出 & y/ W8 Y; X5 U9 P
ty=sim(net,tx); 3 ^2 N$ ]. Q# s, m% g, e2 y
%%使用图像,画出三维图
2 h3 h4 l9 d K N4 l+ M# r& v%真正的函数图像 - a7 P0 C6 d& l( E" F
interval=0.1;
- P3 t7 f" c; o8 X' a& ^) M4 A/ t[x1,x2]=meshgrid(-1.5:interval:1.5);
- [4 n( C: h' q- c" }% |1 B( N- eF=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2); % v+ B7 W9 n/ ]6 Q- W4 u. ^
subplot(1,3,1); - s6 q9 X. l9 ^' X
mesh(x1,x2,F); A2 a& T3 u u" z/ {
zlim([0,60]);
' h u9 O& D% I! v- vtitle('真正的函数图像'); % R8 r1 o! E) I0 K$ p5 }2 o+ X
%网络得出的函数图像 0 h/ x( X. }' p0 k4 N
v=reshape(ty,row); 1 w- m% F8 ?; k6 j. w4 W
subplot(1,3,2); " ^( w- e/ U" V' Z2 x
mesh(i,j,v); ( r2 K! |4 a4 {8 Y+ X+ A8 u
zlim([0,60]);
, `( [$ ^# A X. \9 x1 |title('RBF神经网络结果'); 8 S( M* J8 X, ~9 T/ y
%误差图像
U' b. C8 v1 Gsubplot(1,3,3);
) J A% R- P9 S( _6 v; ~2 Dmesh(x1,x2,F-v);
8 N: |: `) c8 w0 D1 `3 c6 gzlim([0,60]);
3 j. @1 C! [6 V9 {. d, qtitle('误差图像');
/ V8 b% X6 y: f: Bset(gcf,'position',[300,250,900,400])
3 X$ }$ S1 k9 g R% H |
|