当前位置:网站首页>KF UD分解之伪代码实现进阶篇【2】
KF UD分解之伪代码实现进阶篇【2】
2022-07-06 09:18:00 【Proletarians】
废话不多说,直接上伪代码,matlab版,易于阅读。
基于UD的KF分为两部分:
第一部分实现对残差和v的更新;
第二部分实现对D\U\b三部分的更新。
%% 基于UD分解的KF仿真代码
% ------ Part One Start ------
% 这部分实现 J>1 残差计算和v的更新
for J=n:-1:2
z=z-a(J)*x(J); % residual=delta_z
for K=1:J-1
a(J)=a(J)+U(K,J)*a(K); % f=U^T*a, 赋值后的a(J)就是f
end
v(J)=U(J,J)*a(J);% vi=di*fi
end
% 这部分实现 J=1 残差计算和v的更新
z=z-a(1)*x(1);
v(1)=U(1,1)*a(1);
% ------ Part One Last ------
% ------ Part Two Start------
% 这部分实现 J=1 矩阵D、矩阵U、未加权的KF增益b三部分更新
alpha=r+v(1)*a(1);
gamma=1.0/alpha;
U(1,1)=U(1,1)*r*gamma;
b(1)=v(1);
% 这部分实现 J>1 矩阵D、矩阵U、未加权的KF增益b三部分更新
for J=2:N
beta=alpha; % 将alpha(J-1)代入
alpha=alpha+v(J)*a(J); % 更新alpha(J)
p=-a(J)*gamma; % 将gamma(J-1)代入
gamma=1.0/alpha; % 更新gamma(J)
U(J,J)=U(J,J)*beta*gamma; % 更新D
b(J)=v(J);
for I=1:J-1
beta=U(I,J);
U(I,J)=beta+b(I)*p; % 更新U
b(I)=b(I)+v(J)*beta;% 更新b
end
end
z=z/alpha; % delta_z=delta_z/alpha,即delta_z为加权后的残差
for J=1:N
x(J)=x(J)+b(J)*z; % x_=x+(k)*delta_z=x+(b/alpha)*delta_z,即k=b/alpha,实现了对b的加权
end
% ------ Part Two Last ------
边栏推荐
- Who says that PT online schema change does not lock the table, or deadlock
- Pat 1097 duplication on a linked list (25 points)
- Acwing-116 pilot brother
- 基於Redis的分布式ID生成器
- FairyGUI簡單背包的制作
- 程序设计大作业:教务管理系统(C语言)
- It has been solved by personal practice: MySQL row size too large (> 8126) Changing some columns to TEXT or BLOB or using ROW_ FORMAT
- Basic operations of databases and tables ----- modifying data tables
- Unity scene jump and exit
- NRF24L01故障排查
猜你喜欢
idea问题记录
Mysql database index
Redis cache update strategy, cache penetration, avalanche, breakdown problems
Gravure sans fil Bluetooth sur micro - ordinateur à puce unique
FairyGUI简单背包的制作
C programming exercise
Affichage du changement de valeur du Buff de gain de l'interface graphique de défaillance
Fairygui joystick
Programming homework: educational administration management system (C language)
FairyGUI增益BUFF数值改变的显示
随机推荐
Knowledge summary of request
2021.11.10汇编考试
Custom view puzzle getcolor r.color The color obtained by colorprimary is incorrect
Mysql database index
基于Redis的分布式锁 以及 超详细的改进思路
1041 Be Unique (20 point(s))(哈希:找第一个出现一次的数)
[leetcode622] design circular queue
idea中导包方法
Database table splitting strategy
PR 2021 quick start tutorial, first understanding the Premiere Pro working interface
Pat 1097 duplication on a linked list (25 points)
There is no red exclamation mark after SVN update
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
Introduction to the daily practice column of the Blue Bridge Cup
Symbolic representation of functions in deep learning papers
Combination of fairygui check box and progress bar
HCIP Day 12
FairyGUI简单背包的制作
FairyGUI循环列表
JS regular expression basic knowledge learning