可以用newrb()或其他函数!
不久前我做过一个实验,是y=√x的拟合,可以稍微修改下即可
以下为我的源代码,希望有所帮助
%已知y=x^(-1/2),x分别取1:9 通过训练拟合,推测x=10和11时的y值
clear all;
P=1:1:9;
T=P.^(1/2);
P2=1:1:11;
T2=P2.^(1/2);
% 神经元数逐步增加,最多就是训练样本个数
goal = 1e-10; % 训练误差的平方和(默认为0)
spread = 10; % 此值越大,需要的神经元就越少(默认为1)
MN = size(P,2); % 最大神经元数(默认为训练样本个数)
DF = 1; % 显示间隔(默认为25)
t1=clock; % 计时开始
net = newrb(P,T,goal,spread,MN,DF);%training
datat=etime(clock,t1) %计算设计网络所用的时间
%----------------
plot(P2,T2,'ro'); %red 'o'号表示真实值
hold on
Y=sim(net,P2);
%mse = mean((T2-Y).^2) %均方误差
plot(P2,Y);
plot(P2,Y,'b*'); %blue '*'号表示真实值
x=10:1:11
y=sim(net,x)
hold off