当前位置:网站首页>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 ------
边栏推荐
- Symbolic representation of functions in deep learning papers
- Talking about the startup of Oracle Database
- It has been solved by personal practice: MySQL row size too large (> 8126) Changing some columns to TEXT or BLOB or using ROW_ FORMAT
- (the first set of course design) 1-4 message passing interface (100 points) (simulation: thread)
- 341. Flatten nested list iterator
- Office prompts that your license is not genuine pop-up box solution
- Types de variables JS et transformations de type communes
- Easy to use shortcut keys in idea
- [Offer29] 排序的循环链表
- 关于Gateway中使用@Controller的问题
猜你喜欢

Types de variables JS et transformations de type communes

PR 2021 quick start tutorial, first understanding the Premiere Pro working interface

FairyGUI增益BUFF數值改變的顯示

JS function promotion and declaration promotion of VaR variable

Guided package method in idea

(四)R语言的数据可视化——矩阵图、柱状图、饼图、散点图与线性回归、带状图

Office prompts that your license is not genuine pop-up box solution

Vulnhub target: hacknos_ PLAYER V1.1

(1) Introduction Guide to R language - the first step of data analysis

Idea problem record
随机推荐
Classification, understanding and application of common methods of JS array
2021.11.10 compilation examination
(the first set of course design) 1-4 message passing interface (100 points) (simulation: thread)
Compilation principle: preprocessing of source program and design and implementation of lexical analysis program (including code)
The service robots that have been hyped by capital and the Winter Olympics are not just a flash in the pan
MySQL时间、时区、自动填充0的问题
[leetcode15] sum of three numbers
Theoretical derivation of support vector machine
Remember an experience of ECS being blown up by passwords - closing a small black house, changing passwords, and changing ports
Fairygui character status Popup
FairyGUI循环列表
Mysql database reports an error: row size too large (> 8126) Changing some columns to TEXT or BLOB or using ROW_ FORMAT=DY
[leetcode622]设计循环队列
(the first set of course design) sub task 1-5 317 (100 points) (dijkstra: heavy edge self loop)
@The difference between Autowired and @resource
There is no red exclamation mark after SVN update
Halcon knowledge: gray_ Tophat transform and bottom cap transform
Easy to use shortcut keys in idea
dosbox第一次使用
Fabrication of fairygui simple Backpack