EDA365电子论坛网

标题: RBF测试实例 [打印本页]

作者: Zedd    时间: 2020-3-23 11:05
标题: RBF测试实例
RBF测试实例
+ c0 k2 s* c. V5 {! Q. U  K8 w  M0 `' i, ~$ c9 e; B
% % % % % % % % % % % % % % % % % % % " R  `! u0 b  `5 {% \9 r
% approximate RBF网络对同意函数进行拟合9 m/ y1 H9 p" P. u
% % % % % % % % % % % % % % % % % % % 9 q, \* ?  ?' }$ y& u9 h3 G
%%清空环境变量  
: G9 W  G# v' o3 L: K7 y' p) rclc  5 D- ^# C; }( }  s8 n& i
clear  
# n. G5 Y6 p6 k! X5 D%%产生训练样本,训练输入,训练输出  
3 L* i2 |2 o1 G! H4 Z+ y; K%ld为样本隶属  
! W" T& ?# O: v6 n$ x* ]5 C* Jld=400;    t6 d- I: R* M! i( |
%产生2*ld的矩阵  
: l! h1 |" n0 [6 m+ jx=rand(2,ld);  ( R3 V" O0 k; M. d0 ?; X
%将x转换到[-1.5 1.5]之间  
5 L$ f. L# B! Rx=(x-0.5)*1.5*2;  
) @: @. ^+ y+ Z; r0 a%x的第一行为x1,第二行为x2  ( `, c! b9 Q; `; ?0 V1 v/ `
x1=x(1,: );  - B) w) `: H: i. I8 c  A; G
x2=x(2,: );  ' m1 E3 |  P' O5 T2 l9 C+ `* {
%计算网络输出F值  1 f: W) R) O: O& E% s
F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);  , I! }, n2 M9 ^  U- l
%%建立RBF神经网络  " S2 h9 H8 R2 f  j
%采用approximate RBF神经网络,spread为默认值  ; ^% l- |6 O0 d6 T) }" ]
net=newrb(x,F);  $ a& l- a3 g! r) @! L
%%建立测试样本  
( L+ l7 {. A, n) U. v' zinterval=0.1;  " E5 n# G' c! S' S9 p' h
[i,j]=meshgrid(-1.5:interval:1.5);  ( N2 T' _# {: U" w( [, B
row=size(i);  
6 u2 {1 M6 I) D" u. Xtx1=i(: );  7 o7 H, i8 I! w, K
tx1=tx1';  9 a) Z7 H5 S. y4 w* N' Q- Q' {
tx2=j(: );  
: k$ v' K  J4 d$ n  Ytx2=tx2';  . o5 C! G; ^4 K0 @8 ~8 N
tx=[tx1;tx2];  5 i" ]6 _2 E' T) y/ N$ M
  ! }% l6 s3 V% f7 ]) G2 C
%%使用建立的RBF网络进行模拟,得出网络输出  
  J1 q/ X3 K' c, ^- C6 L; _8 vty=sim(net,tx);  7 P  z9 A8 m/ [2 A- `$ n& h
%%使用图像,画出三维图  
& r9 u8 V: w1 l1 }+ M3 n: K%真正的函数图像  
( S" I# W8 O% y- g3 q( ~interval=0.1;  
2 V; U6 c, [2 l[x1,x2]=meshgrid(-1.5:interval:1.5);  ( |" D: [0 G, m$ E3 n- A
F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);  
* G0 y& i; \, [" ysubplot(1,3,1);  
# l7 T3 c0 o. W( y- Mmesh(x1,x2,F);  
. [; v. [4 D3 Z$ w& bzlim([0,60]);  
$ |# e( e& H3 n& H% d+ Q1 Ptitle('真正的函数图像');  5 V' C: L6 K) @' d7 f2 s3 \
%网络得出的函数图像  $ k- A% T% z8 S- X8 O! y6 G/ D
v=reshape(ty,row);  
3 z6 ^' Q; k2 ^9 x  g( v6 ]) Hsubplot(1,3,2);  
7 a; A. L+ M4 S9 x# l- M3 r+ wmesh(i,j,v);  
- T7 P9 Z% B: _  n5 _% k/ W, H5 B9 izlim([0,60]);  0 Q5 M8 E* X; g
title('RBF神经网络结果');  
) [* ^8 Q2 i, S7 A7 \  a%误差图像  
2 E' {2 M' c2 H6 msubplot(1,3,3);  
/ H* I( |# r: W# K' Ymesh(x1,x2,F-v);  
- e6 p% S- m/ W3 fzlim([0,60]);  + k( ?1 v7 m" b1 Y8 Q
title('误差图像');  1 M5 d" b6 c7 u
set(gcf,'position',[300,250,900,400])
  y5 `/ I2 K. k. P
作者: wu68aq    时间: 2020-3-23 18:28
看看楼主的代码。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2