|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
RBF测试实例6 R0 v1 ]3 o4 l) T. d
1 G6 ]7 \; \0 q" _5 U( m3 `
% % % % % % % % % % % % % % % % % % % $ V3 E$ X6 I3 @
% approximate RBF网络对同意函数进行拟合# h3 ?; E/ v# }. t" z5 `2 K: j
% % % % % % % % % % % % % % % % % % % . Y, {8 _2 ]& s
%%清空环境变量 0 X, b* q4 q/ P' D* e& P
clc
" \+ Q: D |2 J- ]" Xclear
7 U3 t3 D- B- F! Q* S. P. n%%产生训练样本,训练输入,训练输出
6 K6 `( K8 U9 n( p h1 F%ld为样本隶属
) { e- f* S* P. y* J/ ~% l5 mld=400;
! w& p1 r3 v' h0 i3 t w* H%产生2*ld的矩阵
+ q% V0 N a; `: f& D/ `. o7 sx=rand(2,ld);
9 P! J) p& z2 `( } n%将x转换到[-1.5 1.5]之间
3 r4 o2 u# b6 H& Sx=(x-0.5)*1.5*2; $ }" L$ h, g0 p
%x的第一行为x1,第二行为x2
+ _$ F! z" L d& [7 }, X5 Px1=x(1,: ); # a; z" I+ s5 s+ k) S4 @
x2=x(2,: );
E# H# U' _$ e: w8 s%计算网络输出F值 $ Y" n/ `/ L; A9 j0 e3 q
F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
# d: h0 X# \( R) ~7 s% J4 w%%建立RBF神经网络 $ ?' k$ l/ M d- y; {
%采用approximate RBF神经网络,spread为默认值
; a% [2 ~6 H, C4 F3 Q6 Enet=newrb(x,F); 7 d _2 N+ Y) b8 g
%%建立测试样本
' U$ ^3 A9 m$ y$ y$ o2 a: C1 i- Rinterval=0.1; 8 C! E; X" B* X. ^; ]
[i,j]=meshgrid(-1.5:interval:1.5);
" `8 [. {4 U! @& R/ P8 wrow=size(i); 1 w. {; M, W3 x% B/ s. `, z0 ]# L
tx1=i(: ); , W5 I, f( [( O4 l1 D4 w8 q
tx1=tx1';
+ ?! Z, J2 n0 p( ?+ h5 ?tx2=j(: );
3 r! S6 I9 c# C" f6 d+ x; u4 l$ B9 ~' utx2=tx2';
8 g/ N0 M9 f- V& a& Q, P2 {tx=[tx1;tx2];
+ z: \2 h6 a) f- E& F) h+ P5 |
V* s2 ?; S# g' L b$ g%%使用建立的RBF网络进行模拟,得出网络输出 7 i3 r3 O4 V f* H# f# Q, H
ty=sim(net,tx);
+ m" K3 Q- x: w%%使用图像,画出三维图 ) f; J0 E8 {- c& y3 D% [
%真正的函数图像 , e) t! |; J# N! M5 z
interval=0.1;
( c2 B3 C& h" _5 ~6 G: w* M7 A& ?[x1,x2]=meshgrid(-1.5:interval:1.5);
* Z. o) a( k9 A% j& yF=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
7 A: V* `/ h& f$ m3 `subplot(1,3,1); % u/ J3 @! ]7 g6 k7 N, X
mesh(x1,x2,F); . O: U# [2 d) z) H- E1 ]9 y: c1 l
zlim([0,60]);
i8 q9 d7 U: Q8 e9 S% a9 P, Ftitle('真正的函数图像');
% U: C; h$ I5 a+ Q1 l: d4 ^5 ?%网络得出的函数图像
& G" P7 O7 G8 v" l# ]3 b' Fv=reshape(ty,row);
) a) d& M& C. c1 jsubplot(1,3,2);
7 `8 Y. j+ J: pmesh(i,j,v); f- j' j h, z2 y4 u. `
zlim([0,60]);
. z. b- {3 s/ P! s* ztitle('RBF神经网络结果'); - U5 a4 ~% [( ?1 @
%误差图像
* x, f( p- @% X( Ysubplot(1,3,3);
* \2 q( R1 d. {( i# {9 ?mesh(x1,x2,F-v);
7 _; S$ B: Z w% wzlim([0,60]); ; t) z% S2 P- L1 ?$ A* _
title('误差图像'); ) b* G5 v7 c! J. I& n6 q
set(gcf,'position',[300,250,900,400])) L8 {, a4 }# c
|
|