What is the complexity of Matlab's implementation of SVD?
18 views (last 30 days)
Show older comments
Konstantinos Kolias
on 20 Sep 2018
Commented: Bowen
on 22 Aug 2023
According to Matrix Computations textbook, it should be something ~ O(m^2n) which is pretty much what I get for matrices where m,n >=10,000 but for smaller matrices say up to 1000x000 I find that ~O(m^2).
0 Comments
Accepted Answer
Christine Tobler
on 20 Sep 2018
Edited: Christine Tobler
on 3 Dec 2021
The computational complexity of svd is O(max(m, n) * min(m, n)^2). If the 'econ' flag is not used and all three matrices are returned, at least a complexity of O(max(m, n)^2) needs to be added for constructing the larger of the two orthogonal matrices that are returned.
9 Comments
Christine Tobler
on 25 Apr 2023
The computational complexity doesn't refer to the number of operations, instead it's only about the speed at which the number of operations grows as the problem size grows.
So if we have two functions, one of which takes 2*N operations for a vector of length N, and another takes 10*N operations for the same vector, we would say both have computational complexity O(N). This means that if you double N, in both cases this will double the number of operations.
More Answers (0)
See Also
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!