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) r
clc
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* J
ld=400;
t6 d- I: R* M! i( |
%产生2*ld的矩阵
: l! h1 |" n0 [6 m+ j
x=rand(2,ld);
( R3 V" O0 k; M. d0 ?; X
%将x转换到[-1.5 1.5]之间
5 L$ f. L# B! R
x=(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' z
interval=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. X
tx1=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 Y
tx2=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 v
ty=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; \, [" y
subplot(1,3,1);
# l7 T3 c0 o. W( y- M
mesh(x1,x2,F);
. [; v. [4 D3 Z$ w& b
zlim([0,60]);
$ |# e( e& H3 n& H% d+ Q1 P
title('真正的函数图像');
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 ]) H
subplot(1,3,2);
7 a; A. L+ M4 S9 x# l- M3 r+ w
mesh(i,j,v);
- T7 P9 Z% B: _ n5 _% k/ W, H5 B9 i
zlim([0,60]);
0 Q5 M8 E* X; g
title('RBF神经网络结果');
) [* ^8 Q2 i, S7 A7 \ a
%误差图像
2 E' {2 M' c2 H6 m
subplot(1,3,3);
/ H* I( |# r: W# K' Y
mesh(x1,x2,F-v);
- e6 p% S- m/ W3 f
zlim([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