UD Factorization & Kalman Filtering

UD and LD factorization of nonnegative matrices and associated Kalman filter implementations.
1.8K Downloads
Updated 16 Jun 2021

View License

Description:
To enhance the efficiency and accuracy of Kalman filter computations, in particular the time and measurement updates, UD factorization is employed.
An interesting feature of the current implementation is the extension to semi-positive (nonnegative) matrices and systems with a time-varying state dimension. The matlab implementation is through both m files and mex files written in c. The mex files speed up the computations which contain several for loops. Use the function mexudu to compile all .c mex files in the current folder
As a complete mirror image of UD factorization, LD factorization may be employed. Depending on the application, one may have an advantage over the other.
Or, to obtain computational symmetry, both may be required. Therefore dual to each UD function a dual LD version is provided.
Example calls are found in uduex.m and ldlex.m. See the readme.m file for further information.
References:
Factorization methods for discrete sequential estimation, 1977, Gerald J. Bierman
L.G. van Willigenburg, W.L. De Koning, 2004, "UDU factored discrete-time Lyapunov recursions solve optimal reduced-order LQG problems", European Journal of Control, 10, pp. 588-601
http://www.gvw007.yolasite.com/resources/EJC2004_1.pdf

Cite As

Gerard Van Willigenburg (2024). UD Factorization & Kalman Filtering (https://www.mathworks.com/matlabcentral/fileexchange/32537-ud-factorization-kalman-filtering), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2007b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Matrix Computations in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.7.0.1

The description now also mentions that example calls are in uduex.m and ldlex.m and that further information is found in the readme.m file.

1.7.0.0

The internet link in the description has been updated. No changes to the files.
The internet link to the reference has been corrected

1.6.0.0

UDU is replaced with UD in the title and some desciptions, notably in the readme.m and modifications.txt file. The internet link to one reference is updated.

1.5.0.0

kmudu and kmldl are updated to also produce a Kalman gain for vector updates.
Functions ud2ut, ld2lt, ut2ud, lt2ld are added. uduex and ldlex are updated. Code and comments of several functions are corrected or improved.

1.4.0.0

LDL mirror images of each function are added.
The comments of several functions are corrected or improved.

1.3.0.0

The application to systems with time-varying state-dimension has been implemented.
The efficiency of sym2ud, sym2ut and psdr has been improved.
In uduex associated additional examples have been added.

1.1.0.0

In sym2ut.m the 3rd output argument inz has been added. In the readme.m file utinv is now correctly mentioned to compute the inverse of u.

1.0.0.0