What is the complexity of Matlab's implementation of SVD?

18 views (last 30 days)
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).

Accepted Answer

Christine Tobler
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
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.

Sign in to comment.

More Answers (0)

Categories

Find more on Linear Algebra in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!