matlab中用RBF神经网络做预测的代码怎么写

我写毕业论文要用matlab的RBF神经网络做预测,我的输入是边坡的几个指标(容重粘聚力摩擦角边坡角边坡高度水压力比)输出为边坡安全系数,我想出一个误差图如下图所示,该怎... 我写毕业论文要用matlab的RBF神经网络做预测,我的输入是边坡的几个指标(容重 粘聚力 摩擦角 边坡角 边坡高度 水压力比)输出为边坡安全系数,我想出一个误差图如下图所示,该怎么编代码啊,毕设24号就要交了,求大家帮帮忙,十分感谢!p=[20.41,24.91,13,22,10.67,0.35;19.63,11.97,20,22,12.190.405;21.82,8.62,32,28,12.8,0.49;20.41,33.52,11,16,45.72,0.2;18.84,15.32,30,25,10.67,0.38];t=[1.4;1.35;1.03;1.28;1.63];
p=p’ ;
t=t’;
spread=1.2;
goal=0.001;
net=newrb(p,t,goal,spread);我只会编到这,但是没有出图啊,还应该怎么继续编啊。我师姐说可以不用编代码直接用RBF神经网络工具箱就可以,可是我不会,她也不会。麻烦大家帮我看看,谢谢各位!
展开
 我来答
爱教育爱学习
高粉答主

2019-10-15 · 学而不思则罔,思而不学则殆
爱教育爱学习
采纳数:384 获赞数:112736

向TA提问 私信TA
展开全部

clc;

clearall;

closeall;

%%----BuildatrainingsetofasimilarversionofXOR

c_1=[00];

c_2=[11];

c_3=[01];

c_4=[10];

n_L1=20;%numberoflabel1

n_L2=20;%numberoflabel2

A=zeros(n_L1*2,3);

A(:,3)=1;

B=zeros(n_L2*2,3);

B(:,3)=0;

%createrandompoints

fori=1:n_L1

A(i,1:2)=c_1+rand(1,2)/2;

A(i+n_L1,1:2)=c_2+rand(1,2)/2;

end

fori=1:n_L2

B(i,1:2)=c_3+rand(1,2)/2;

B(i+n_L2,1:2)=c_4+rand(1,2)/2;

end

%showpoints

scatter(A(:,1),A(:,2),[],'r');

holdon

scatter(B(:,1),B(:,2),[],'g');

X=[A;B];

data=X(:,1:2);

label=X(:,3);

%%Usingkmeanstofindcintervector

n_center_vec=10;

rng(1);

[idx,C]=kmeans(data,n_center_vec);

holdon

scatter(C(:,1),C(:,2),'b','LineWidth',2);

%%Calulatesigma

n_data=size(X,1);

%calculateK

K=zeros(n_center_vec,1);

fori=1:n_center_vec

K(i)=numel(find(idx==i));

end

%UsingknnsearchtofindKnearestneighborpointsforeachcentervector

%thencalucatesigma

sigma=zeros(n_center_vec,1);

fori=1:n_center_vec

[n,d]=knnsearch(data,C(i,:),'k',K(i));

L2=(bsxfun(@minus,data(n,:),C(i,:)).^2);

L2=sum(L2(:));

sigma(i)=sqrt(1/K(i)*L2);

end

%%Calutateweights

%kernelmatrix

k_mat=zeros(n_data,n_center_vec);

fori=1:n_center_vec

r=bsxfun(@minus,data,C(i,:)).^2;

r=sum(r,2);

k_mat(:,i)=exp((-r.^2)/(2*sigma(i)^2));

end

W=pinv(k_mat'*k_mat)*k_mat'*label;

y=k_mat*W;

%y(y>=0.5)=1;

%y(y<0.5)=0;

%%trainingfunctionandpredictfunction

[W1,sigma1,C1]=RBF_training(data,label,10);

y1=RBF_predict(data,W,sigma,C1);

[W2,sigma2,C2]=lazyRBF_training(data,label,2);

y2=RBF_predict(data,W2,sigma2,C2);

扩展资料

matlab的特点

1、具有完备的图形处理功能,实现计算结果和编程的可视化;

2、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;

3、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

参考资料来源:百度百科—MATLAB

iwantt
推荐于2017-09-03 · TA获得超过2800个赞
知道小有建树答主
回答量:430
采纳率:100%
帮助的人:427万
展开全部

%RBF预测模型
%标准化后的测试数据集t_data
t_data=[0.1 0.68668 0.67143 0.79999 0.79091 0.40004;
0.36667 0.58001 0.1 0.7 0.71818 0.20001;
0.26 0.47334 0.1 0.29997 0.2091 0.80009;
0.36667 0.9 0.9 0.29997 0.13637 0.37504;
0.26 0.84668 0.67143 0.1 0.42727 0.37504;
0.36667 0.58001 0.44286 0.49999 0.1 0.55006;
0.15333 0.47334 0.44286 0.7 0.42727 0.60006;
0.1 0.84668 0.67143 0.29997 0.5 0.1;
0.15333 0.42 0.21429 0.49999 0.5 0.55006;
0.20667 0.79335 0.21429 0.59999 0.5 0.32503;
0.1 0.42 0.21429 0.9 0.5 0.45005;
0.1 0.84668 0.32857 0.59999 0.5 0.27502;
0.20667 0.47334 0.32857 0.29997 0.13637 0.50005;
0.1 0.68668 0.67143 0.49999 0.24546 0.20001;
0.42 0.58001 0.21429 0.9 0.9 0.42504;
0.31334 0.58001 0.44286 0.49999 0.31818 0.25002;
0.15333 0.42 0.1 0.19999 0.35454 0.55006;
0.20667 0.47334 0.32857 0.29997 0.31818 0.27502;
0.15333 0.68668 0.44286 0.29997 0.31818 0.40004;
0.20667 0.20667 0.21429 0.39999 0.28183 0.52506;
0.26 0.79335 0.21429 0.49999 0.57273 0.9;
0.42 0.36667 0.1 0.59999 0.35454 0.30003;
0.47334 0.36667 0.1 0.59999 0.57273 0.35003;
0.1 0.47334 0.67143 0.7 0.42727 0.49894;
0.42 0.58001 0.67143 0.49999 0.24546 0.47505;
0.31334 0.1 0.32857 0.9 0.79091 0.8501;
0.1 0.52667 0.21429 0.9 0.5 0.50005;
0.52667 0.55867 0.21429 0.1 0.28183 0.42504;
0.9 0.58001 0.55715 0.1 0.17273 0.32503;
0.15333 0.68668 0.62572 0.29997 0.2091 0.57506];
%初始化数据
tt=t_data(:,6);x=t_data(:,1:5);tt=tt';
%随机选取中心
c=x;
%定义delta平方为样本各点的协方差之和
delta=cov(x');
delta=sum(delta);
%隐含层输出R
for i=1:1:30
  for j=1:1:30
     R(i,j)=((x(i,:)-c(j,:)))*((x(i,:)-c(j,:))');
     R(i,j)=exp(-R(i,j)./delta(j));
  end
end
p=R;
%建模
%r=radbas(p);
err_goal=0.001;
sc=3;
net=newrb(p,tt,err_goal,sc,200,1);
%测试
ty=sim(net,p);
tE=tt-ty;
tSSE=sse(tE);
tMSE=mse(tE);
%预测(测试)曲线
figure;
 plot(tt,'-+');
 hold on;
 plot(ty,'r:*');
 legend('化验值','预测值');
 title('RBF网络模型输出预测曲线');
 xlabel('输入样本点');
 ylabel('淀粉利用率');
axis([1,30,0,1]);

 

更多追问追答
追问
你好非常感谢你的回答,对我就是要这样的图,可是你的编码有点复杂我看不太懂,真是不好意思,我刚刚接触RBF 。你可不可以编个简单点的编码,能出第一个图就行,谢谢啦!
追答
数据部分保留,剩下的都删掉,用下面三行替换  由于字数限制不能贴数据部分了,你懂得吧

tt=t_data(:,6);x=t_data(:,1:5);tt=tt';
speed=1;
net=newrb(x',tt,err_goal,speed);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大家雨运9
2018-01-23
知道答主
回答量:1
采纳率:0%
帮助的人:910
展开全部
你好,能请教一下您吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
geberal
2018-05-22
知道答主
回答量:1
采纳率:0%
帮助的人:869
展开全部
可以QQ交流
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式