输入18个样本点,将隐含节点书设置为18 ,其中心就是输入的X值,期望输出为对应的y值。如此,网络中就有一个输入节点,一个输出节点,18个隐含节点
%% 清理
clear all
close all
clc
%% 定义原始数据
x=-9:8;
y=[129,-32,-118,-138,-125,-97,-55,-23,-4,...
2,1,-31,-72,-121,-142,-174,-155,-77];
%% 设计RBF网络
P=x;
T=y;
% 计时开始
tic;
% spread = 2
net = newrb(P, T, 0, 2);
% 记录消耗的时间
time_cost = toc;
% 保存得到的RBF模型net
save curve_filt_newrb_build net
NEWRB, neurOns= 0, MSE = 5338.8 并且已经将相关数据保存到了
curve_filt_newrb_build.mat 中
接下来进行测试仿真
% curve_filt_newrb_sim.m
%% 原始训练数据
x=-9:8;
y=[129,-32,-118,-138,-125,-97,-55,-23,-4,...
2,1,-31,-72,-121,-142,-174,-155,-77];
%% 测试
% 测试数据
xx=-9:.2:8;
% 加载训练模型 上一步训练得到的net保存在example.mat中
load curve_filt_newrb_build.mat
% 网络仿真
yy = sim(net, xx);
%%绘图
% 原数据点
figure;
plot(x,y,'o');
hold on;
% 仿真得到的拟合数据
plot(xx,yy,'-');
hold off;
% 图例、标题
legend('原始数据','拟合数据');
title('用径向基函数拟合曲线');
结果与上一篇博客中写到的手算方式的得到的结果一致