当前位置:网站首页>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 ------
边栏推荐
- 1041 be unique (20 points (s)) (hash: find the first number that occurs once)
- JS Title: input array, exchange the largest with the first element, exchange the smallest with the last element, and output array.
- Unity3d camera, the keyboard controls the front and rear left and right up and down movement, and the mouse controls the rotation, zoom in and out
- [leetcode622]设计循环队列
- [offer9] implement queues with two stacks
- JUC forkjoin and completable future
- Solution to the problem of automatic login in Yanshan University Campus Network
- Vulnhub target: hacknos_ PLAYER V1.1
- Mysql database reports an error: row size too large (> 8126) Changing some columns to TEXT or BLOB or using ROW_ FORMAT=DY
- (课设第一套)1-5 317号子任务 (100 分)(Dijkstra:重边自环)
猜你喜欢

Programming homework: educational administration management system (C language)

Stm32f1+bc20+mqtt+freertos system is connected to Alibaba cloud to transmit temperature and humidity and control LED lights

FairyGUI簡單背包的制作

FairyGUI按钮动效的混用

Symbolic representation of functions in deep learning papers

level16

FairyGUI循环列表

JS function promotion and declaration promotion of VaR variable

idea问题记录

The service robots that have been hyped by capital and the Winter Olympics are not just a flash in the pan
随机推荐
341. Flatten nested list iterator
[899]有序队列
VLSM variable length subnet mask partition tips
MySQL performance tuning - dirty page refresh
By v$rman_ backup_ job_ Oracle "bug" caused by details
记一次云服务器被密码爆破的经历——关小黑屋、改密码、改端口
Fairygui joystick
Unity3d camera, the keyboard controls the front and rear left and right up and down movement, and the mouse controls the rotation, zoom in and out
JS Title: input array, exchange the largest with the first element, exchange the smallest with the last element, and output array.
[Red Treasure Book Notes simplified version] Chapter 12 BOM
PT OSC deadlock analysis
Special palindromes of daily practice of Blue Bridge Cup
HCIP Day 12
Unity3d makes the registration login interface and realizes the scene jump
The dolphin scheduler remotely executes shell scripts through the expect command
Office prompts that your license is not genuine pop-up box solution
Redis 缓存更新策略,缓存穿透、雪崩、击穿问题
Meanings and differences of PV, UV, IP, VV, CV
Symbolic representation of functions in deep learning papers
FairyGUI增益BUFF數值改變的顯示