资源简介
RBF预测,可以进行GPS大地高和正常高的转换
代码片段和文件信息
%----------------------------- RBFNN程序 ----------------------------------
clc
clear
load(‘shuju.mat‘); %导入数据
%--------------------------- 学习RBFNN中心部分 开始 -----------------------
t=[P(:122)P(:130)P(:135)P(:2)P(:31)P(:52)P(:77)P(:97)P(:106)P(:114)P(:116)P(:119)...
P(:121)P(:127)P(:134)P(:137)P(:18)P(:42)P(:66)P(:90)P(:102)P(:110)P(:117)P(:118)]; %设置RBFNN初始中心
center_study_step=0.1; %设置学习步长
t_next=zeros(324); %初始化每次迭代后心的中心
t_n=1; %迭代次数初始化
while max(max(abs(t_next-t)))>=0.0001 %若两次迭代间中心的偏差大于限差,则继续迭代,否则认为中心达到稳定状态
sum=zeros(324); %sum作为计算Xk-ti的和,以后取平均值计算RBFNN中心调整量
k_num=zeros(124); %存储属于各个中心的训练样本数量
if t_n>1
t=t_next; %非第一次迭代时,把上一次迭代后得到的新的中心赋给本次迭代的初始中心
end
for k=1:137
for i=1:24
dis(i)=sqrt((P(1k)-t(1i))^2+(P(2k)-t(2i))^2+(P(3k)-t(3i))^2); %计算各训练样本到中心的距离
end
[valindx]=min(dis); %获取训练样本到中心距离的最小值
sum(:indx)=sum(:indx)+P(:k)-t(:indx); %对有相同中心的训练样本到相应中心的偏差求和,方便下面计算平均值并为计算中心调整量服务
k_num(indx)=k_num(indx)+1; %计算属于各个中心的训练样本数量
end
for i=1:24
sum(:i)=sum(:i)/k_num(i); %计算Xk-ti的平均值
t_next(:i)=t(:i)+center_study_step*sum(:i); %计算调整后的中心
end
t_n=t_n+1; %中心迭代次数累加
end
t=t_next;
%--------------------------- 学习RBFNN中心部分 结束 -----------------------
%--------------------------- 确定RBFNN方差部分 开始 -----------------------
for i=1:24
for j=i:24
dist(ij)=sqrt((t(1i)-t(1j))^2+(P(2i)-t(2j))^2+(P(3i)-t(3j))^2)
- 上一篇:风力发电模型在MATLAB中的模型建立
- 下一篇:决策树算法matlab
评论
共有 条评论