File Exchange

image thumbnail

UD Factorization & Kalman Filtering

version (73 KB) by Gerard Van Willigenburg
UD and LD factorization of nonnegative matrices and associated Kalman filter implementations.


Updated 08 Dec 2016

View Version History

View License

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.

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

Cite As

Gerard Van Willigenburg (2020). UD Factorization & Kalman Filtering (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (6)

Srdjan Kovacevic


how to use this toolbox?where have an example?


Great toolbox. Documentation, references, "unit tests" which all appear to work, MEX implementations. Author continues to keep the Toolbox up to date. Very professional, thanks :-)

Myungsik Kim


afu2007 ??

sounds very good, let me check carefully

MATLAB Release Compatibility
Created with R2007b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!