Difference between revisions of "ApCoCoA-1:Num.SVD"

From ApCoCoAWiki
Line 7: Line 7:
 
     <description>
 
     <description>
 
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
 
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
 +
<par/>
 +
This command computes the singular value decomposition of the given matrix <tt>A</tt>. Let <tt>A</tt> be a <tt>(m x n)</tt> matrix. Then <tt>A</tt> is decomposed into the product of an orthogonal <tt>(m x m)</tt> matrix <tt>U</tt>, a transposed matrix <tt>VT</tt> of an orthogonal <tt>(n x n)</tt> matrix <tt>V</tt> and a real <tt>(m x n)</tt> matrix <tt>S</tt>, which contains the singular values of the matrix <tt>A</tt>.
  
 
<itemize>
 
<itemize>
 
<item>@param <em>A</em> The matrix we want to decompose.</item>
 
<item>@param <em>A</em> The matrix we want to decompose.</item>
<item>@return This function returns a list of three matrices which form the singular value decomposition of the input matrix.  The list produced is [U, S, VT].</item>
+
<item>@return A list of three matrices <tt>[U, S, VT]</tt> such that <tt>A=U*S*VT</tt>.</item>
 
</itemize>
 
</itemize>
  

Revision as of 12:10, 8 July 2009

Num.SVD

Computes the singular value decomposition of a matrix.

Syntax

Num.SVD(A:MAT):[U:MAT,S:MAT,VT:MAT]

Description

Please note: The function(s) explained on this page is/are using the ApCoCoAServer. You will have to start the ApCoCoAServer in order to use it/them.

This command computes the singular value decomposition of the given matrix A. Let A be a (m x n) matrix. Then A is decomposed into the product of an orthogonal (m x m) matrix U, a transposed matrix VT of an orthogonal (n x n) matrix V and a real (m x n) matrix S, which contains the singular values of the matrix A.

  • @param A The matrix we want to decompose.

  • @return A list of three matrices [U, S, VT] such that A=U*S*VT.

Example

D:=[[1,2,7,18],[2,4,9,12],[23,8,9,10]];
Dec(Num.SVD(D),3);

-- CoCoAServer: computing Cpu Time = 0
-------------------------------
[Mat([
  [<quotes>-0.473</quotes>, <quotes>-0.666</quotes>, <quotes>-0.575</quotes>],
  [<quotes>-0.415</quotes>, <quotes>-0.407</quotes>, <quotes>0.813</quotes>],
  [<quotes>-0.776</quotes>, <quotes>0.624</quotes>, <quotes>-0.084</quotes>]
]), Mat([
  [<quotes>33.091</quotes>, <quotes>17.047</quotes>, <quotes>3.365</quotes>]
]), Mat([
  [<quotes>-0.579</quotes>, <quotes>-0.266</quotes>, <quotes>-0.424</quotes>, <quotes>-0.642</quotes>],
  [<quotes>0.755</quotes>, <quotes>0.119</quotes>, <quotes>-0.159</quotes>, <quotes>-0.624</quotes>],
  [<quotes>-0.265</quotes>, <quotes>0.423</quotes>, <quotes>0.750</quotes>, <quotes>-0.431</quotes>],
  [<quotes>-0.153</quotes>, <quotes>0.857</quotes>, <quotes>-0.480</quotes>, <quotes>0.100</quotes>]
])]
-------------------------------

See also

Introduction to CoCoAServer

Num.QR

Num.EigenValues

Num.EigenValuesAndVectors

Num.EigenValuesAndAllVectors