• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: Matlab
  • 标签: 高程拟合  

资源简介

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)

评论

共有 条评论