Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.0.0 - Русский


svd

singular value decomposition

Syntax

s=svd(X)
[U,S,V]=svd(X)
[U,S,V]=svd(X,0) (obsolete)
[U,S,V]=svd(X,"e")
[U,S,V,rk]=svd(X [,tol])

Arguments

X

a real or complex matrix

s

real vector (singular values)

S

real diagonal matrix (singular values)

U,V

orthogonal or unitary square matrices (singular vectors).

tol

real number

Description

[U,S,V] = svd(X) produces a diagonal matrix S , of the same dimension as X and with nonnegative diagonal elements in decreasing order, and unitary matrices U and V so that X = U*S*V'.

[U,S,V] = svd(X,"e") produces the "economy size" decomposition. If X is m-by-n with m > n, then only the first n columns of U are computed and S is n-by-n.

s= svd(X) by itself, returns a vector s containing the singular values.

[U,S,V,rk]=svd(X,tol) gives in addition rk, the numerical rank of X i.e. the number of singular values larger than tol.

The default value of tol is the same as in rank.

Examples

X=rand(4,2)*rand(2,4)
svd(X)
sqrt(spec(X*X'))

See also

  • rank — rank
  • qr — QR decomposition
  • colcomp — column compression, kernel, nullspace
  • rowcomp — row compression, range
  • sva — singular value approximation
  • spec — собственные значения и собственные вектора матрицы или пучка

Used Functions

svd decompositions are based on the Lapack routines DGESVD for real matrices and ZGESVD for the complex case.

History

ВерсияОписание
2023.0.0

svd(X, 0) is obsolete, use svd(X, "e") instead.

Report an issue
<< sva eigen linear >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Mar 07 09:28:42 CET 2023