|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
RBF测试实例
# f- P5 Y2 z' Q- Q4 w+ {" `$ c: J
/ d3 @9 _ z2 d% % % % % % % % % % % % % % % % % % % , n3 h2 S# x7 `3 `2 F* l9 l
% approximate RBF网络对同意函数进行拟合
3 E) f5 i; M* G9 e' Q% % % % % % % % % % % % % % % % % % %
% A! V) `8 U7 o: @. u%%清空环境变量 : d" x* V7 B# \9 g; O3 d) `- H4 u8 q
clc : D9 y) s" Z) e
clear 8 B/ l8 W: j0 _; Z
%%产生训练样本,训练输入,训练输出 3 b1 h* I7 h) r0 A3 k
%ld为样本隶属 # ?. ~* j( |. u6 Y1 n
ld=400; & }6 Z2 `# C% J& w% E6 Y
%产生2*ld的矩阵
& X) i5 j/ ]" b C6 S, lx=rand(2,ld);
9 ]+ S+ m L. N, E3 E3 K" B1 A2 E%将x转换到[-1.5 1.5]之间 ; G5 k, Z B) z2 r6 c
x=(x-0.5)*1.5*2; 3 S$ r' C7 ^( n* B$ x
%x的第一行为x1,第二行为x2
) |0 B* D8 l' w' ?- j9 O, P# _x1=x(1,: );
6 _$ U- k$ [( B' ix2=x(2,: ); 2 W+ I* R3 P8 e6 F1 x- d
%计算网络输出F值
7 R3 y7 n/ t, L0 O; I* ]F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
, A& p {$ m# P4 t( q+ u%%建立RBF神经网络 6 M; N% l- E/ O* D2 |; D& r4 b
%采用approximate RBF神经网络,spread为默认值
! T; J6 v$ F$ R& [net=newrb(x,F); : @: e% M( U+ [4 D. n
%%建立测试样本
+ _# @3 K' z( Q6 [interval=0.1; * t. J6 e+ Q: _0 ]5 }6 V% I3 Q* l
[i,j]=meshgrid(-1.5:interval:1.5);
0 s+ V7 H! A; |* K- srow=size(i);
7 y* Z: q, @. j8 E- Utx1=i(: ); " @* x9 y/ ?; @1 B* t: A
tx1=tx1';
2 S2 G. j$ a% N8 Q( t2 S6 P2 J/ V; Ltx2=j(: );
u8 G }- G5 J. e) t- g! _* G4 etx2=tx2'; ( F+ a V( k# ~. M% ^3 ]8 Z
tx=[tx1;tx2]; : h1 R4 T7 L7 @) E5 x/ W, V2 b1 i
# e* t/ Q( o: g' C%%使用建立的RBF网络进行模拟,得出网络输出 * M* k* H1 \! T! Y* Q i a7 n+ o
ty=sim(net,tx); " m3 \4 P( K9 O( ~5 y, J5 f! W. {1 [: v
%%使用图像,画出三维图
/ O; _. m! _/ t& A* P0 c%真正的函数图像 d! h1 J# \3 M) H. Z
interval=0.1;
, r7 H4 D; J% Y9 x( W[x1,x2]=meshgrid(-1.5:interval:1.5);
& z n/ t+ S, Z% \3 ~3 u: HF=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2); 9 K0 v1 o* o% q$ A- n; |
subplot(1,3,1);
0 h: X% W; {: p1 Q" `mesh(x1,x2,F);
C+ r) z4 i$ F, fzlim([0,60]);
. o; E2 q/ w3 {8 Jtitle('真正的函数图像');
( p% V& `. `7 f [2 Y. U/ x5 I4 J& b2 V%网络得出的函数图像
. Z) J0 n; n3 _: n( S3 F* @v=reshape(ty,row);
9 X' h% u. E! Hsubplot(1,3,2); $ d' Y0 {% ~' M+ i1 F
mesh(i,j,v); * l/ |+ L0 }5 t
zlim([0,60]); ( {1 M# L \" ~) {1 K" H
title('RBF神经网络结果'); 6 B( t; v1 e% W$ h! o. F u
%误差图像 7 O* w- p& Q" e* Z$ \
subplot(1,3,3);
* j* S* P7 b# X4 {+ Bmesh(x1,x2,F-v);
, I4 d; i: c v7 ^% }! ~zlim([0,60]); |7 m+ d. k' R, M/ A8 l3 R
title('误差图像'); 1 f6 {) u+ f" X3 v' y: h' g7 t8 O( |
set(gcf,'position',[300,250,900,400])
- J) p$ w) A& I, e3 D4 E |
|