What is the algorithm used by svd function?

13 ビュー (過去 30 日間)
怜也 河本
怜也 河本 2021 年 2 月 18 日
編集済み: Jan 2021 年 2 月 19 日
I want to estimate computational complexity of svd function.
So, I command
edit svd
but I get a description of the comment of only how to use this function.
What algorithm is used by svd function? Could you tell me sorce code or documentation about svd function.
Thanks.

回答 (2 件)

Christine Tobler
Christine Tobler 2021 年 2 月 18 日
We don't give information on what SVD algorithm we use, look up the LAPACK library for detailed descriptions. For practical purposes, you can assume the complexity of doing
[U, S, V] = svd(X, 'econ')
is O(m*n*min(m,n)), while the complexity of doing
[U, S, V] = svd(X)
is O(m*n*max(m,n)).
This wouldn't be easy to proof, since the SVD computation involves an iteration that needs to converge to each of the singular values, but the complexities above are the ones that dominate in all practical cases.

Jan
Jan 2021 年 2 月 18 日
編集済み: Jan 2021 年 2 月 19 日

カテゴリ

Help Center および File ExchangeEigenvalues についてさらに検索

タグ

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by