|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
RBF测试实例- F# l5 r. \" J- K. W- E
6 k1 D6 L0 A% X
% % % % % % % % % % % % % % % % % % %
' B' h H9 R: \; B8 Q% S) l% approximate RBF网络对同意函数进行拟合
* W1 ]* v/ L4 D! A! R" S9 s% % % % % % % % % % % % % % % % % % %
2 v z# S8 t m4 r7 P& `) u* {" P%%清空环境变量 , `. ?, w' L6 f9 L% S' T7 @1 P6 w# ~! E
clc
5 g9 T+ S, j- @+ n% Rclear
9 K% k4 ~7 m3 J H- U%%产生训练样本,训练输入,训练输出
. c7 y! @- r, b# O0 g%ld为样本隶属 , N. b: {* P" {2 M' g
ld=400; 7 q+ B2 U0 I y) b& u
%产生2*ld的矩阵 6 K. r" d9 W2 X+ Y0 x2 J
x=rand(2,ld);
1 [0 _$ _. y- I u! N' n%将x转换到[-1.5 1.5]之间
% K& N9 b* B3 \3 `" t, Ex=(x-0.5)*1.5*2; 2 Q( L j2 J. ^" [
%x的第一行为x1,第二行为x2
4 M5 ]7 G) i% m# s& i1 Tx1=x(1,: ); # Z2 L+ l1 m' U% e# D
x2=x(2,: ); & K) j: f& {# Y7 P5 g) ~: H
%计算网络输出F值
1 }% m7 J. w+ a @: m2 XF=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
5 l( B8 i5 d5 P# b5 ]- u) l* d9 }# a%%建立RBF神经网络 * P) Q. {1 M0 Q9 p* e8 W/ w; g) E
%采用approximate RBF神经网络,spread为默认值 . x/ X2 u" _7 j' M2 \
net=newrb(x,F);
" W( Z3 C- d2 j `6 Q9 I) c+ H%%建立测试样本
- k0 M7 S B, l( i: ` B0 H) Ginterval=0.1; 2 T9 U$ J) r/ I) b8 N/ O* J1 Q' |
[i,j]=meshgrid(-1.5:interval:1.5);
. t3 s% ^# k8 H( yrow=size(i);
2 F* J ?; a& {$ [tx1=i(: ); 7 v$ k; e1 v" l ^
tx1=tx1';
- g4 x. g: E) q1 @# O2 \% Utx2=j(: ); & G* ?; O% X( E {- b# b7 m
tx2=tx2';
% W! _4 [3 Q# z# ^3 n3 N1 m* mtx=[tx1;tx2]; ; T( }- J, {' w+ q/ B
z2 K- j( I6 u- A0 H' M
%%使用建立的RBF网络进行模拟,得出网络输出 6 b/ u& R( I" e7 p9 {
ty=sim(net,tx);
D" U' ?! `* S# ^% V+ f%%使用图像,画出三维图 ( l! n% r/ O# J7 c- J8 Y
%真正的函数图像 4 S2 P& o$ D: L1 V* Q
interval=0.1;
4 z7 p# \ k: f: ^[x1,x2]=meshgrid(-1.5:interval:1.5);
6 u0 K& h' [0 } j- FF=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
. ?4 U' X7 m5 [7 X% c" t% esubplot(1,3,1); + |; q9 }& t. _4 h
mesh(x1,x2,F);
4 \7 Q$ ^) J6 Y; ?7 C( Jzlim([0,60]);
, O, H7 Z* H. _8 I( m& A! w0 ttitle('真正的函数图像');
% b: b9 U g$ M4 H" S%网络得出的函数图像 8 Y5 ?; f/ {! X; x
v=reshape(ty,row);
% ~6 X1 ^7 {5 a" Csubplot(1,3,2);
5 B% ~! {0 s& \; T. amesh(i,j,v);
- A) t1 p3 H, {1 ~; qzlim([0,60]);
2 G/ @8 S. K& L# O9 `+ ?0 e2 n( R; [! @title('RBF神经网络结果'); ) A) j2 M* c# y7 O: T
%误差图像
8 m) ~( o9 J8 R/ h4 Bsubplot(1,3,3);
Y- K, G8 W) [; u) |+ \: M W/ |. hmesh(x1,x2,F-v); $ ^% W/ a+ u6 h( R- z a) ^
zlim([0,60]);
2 g) v8 K0 w! O* g- B) g0 b$ Htitle('误差图像');
* H4 E# j# l* s9 mset(gcf,'position',[300,250,900,400])6 m; @7 W) `. p, E8 k2 g% g
|
|