当前位置:网站首页>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 ------
边栏推荐
- There is no red exclamation mark after SVN update
- Design and implementation of general interface open platform - (39) simple and crude implementation of API services
- dosbox第一次使用
- Unity3D摄像机,键盘控制前后左右上下移动,鼠标控制旋转、放缩
- Basic operations of databases and tables ----- modifying data tables
- 基于Redis的分布式锁 以及 超详细的改进思路
- Compilation principle: preprocessing of source program and design and implementation of lexical analysis program (including code)
- 2021.11.10汇编考试
- Theoretical derivation of support vector machine
- [899]有序队列
猜你喜欢

Fabrication d'un sac à dos simple fairygui

SVN更新后不出现红色感叹号

Fabrication of fairygui simple Backpack

Guided package method in idea

Esp8266 connect onenet (old mqtt mode)

Prove the time complexity of heap sorting

Page performance optimization of video scene

Redis based distributed locks and ultra detailed improvement ideas

MySQL时间、时区、自动填充0的问题

JS Title: input array, exchange the largest with the first element, exchange the smallest with the last element, and output array.
随机推荐
PT OSC deadlock analysis
Walk into WPF's drawing Bing Dwen Dwen
Problèmes avec MySQL time, fuseau horaire, remplissage automatique 0
idea中导包方法
Basic operations of databases and tables ----- modifying data tables
Page performance optimization of video scene
[leetcode622]设计循环队列
Solution to the problem of automatic login in Yanshan University Campus Network
Fairygui joystick
记一次云服务器被密码爆破的经历——关小黑屋、改密码、改端口
JS Title: input array, exchange the largest with the first element, exchange the smallest with the last element, and output array.
(the first set of course design) sub task 1-5 317 (100 points) (dijkstra: heavy edge self loop)
(课设第一套)1-4 消息传递接口 (100 分)(模拟:线程)
数据库课程设计:高校教务管理系统(含代码)
[Red Treasure Book Notes simplified version] Chapter 12 BOM
What is the maximum length of MySQL varchar field
C programming exercise
[Offer29] 排序的循环链表
(the first set of course design) 1-4 message passing interface (100 points) (simulation: thread)
How to add music playback function to Arduino project