Difference between revisions of "SingularValueDecomp"
Line 2: | Line 2: | ||
[[Category:Doc Status D]] <!-- For Lumina use, do not change --> | [[Category:Doc Status D]] <!-- For Lumina use, do not change --> | ||
− | |||
− | = SingularValueDecomp(a, i, j, j2) = | + | == SingularValueDecomp(a, i, j, j2) == |
− | [[SingularValueDecomp]] | + | [[SingularValueDecomp]] computes the singular value decomposition of a matrix. Singular value decomposition is often used with sets of equations or matrices that are singular or ill-conditioned (that is, very close to singular). It factors a matrix «a», indexed by «i» and «j», with ''[[Size]](i) >= [[Size]](i)'', into three matrices, ''U'', ''W'', and ''V'', such that: |
:a = U . W . V | :a = U . W . V | ||
− | |||
− | + | where ''U'' and ''V'' are orthogonal matrices and ''W'' is a diagonal matrix. ''U'' is dimensioned by «i» and «j», ''W'' by «j» and «j2», and ''V'' by «j» and «j2». In Analytica notation: | |
+ | |||
+ | :<code>Variable A := Sum(Sum(U*W, J)*Transpose(V, J, J2), J2)</code> | ||
+ | |||
+ | The index «j2» must be the same size as «j» and is used to index the resulting ''W'' and ''V'' arrays. [[SingularValueDecomp]] returns an array of three elements indexed by a special system index named <code>SvdIndex</code> with each element, ''U'', ''W'', and ''V'', being a reference to the corresponding array. | ||
− | |||
Use the [[Using References|# (dereference) operator]] to obtain the matrix value from each reference, as in: | Use the [[Using References|# (dereference) operator]] to obtain the matrix value from each reference, as in: | ||
− | + | :<code>Index J2 := CopyIndex(J)</code> | |
− | + | :<code>Variable SvdResult := SingularValueDecomp(A, I, J, J2)</code> | |
− | + | :<code>Variable U := #SvdResult[SvdIndex = 'U']</code> | |
− | + | :<code>Variable W := #SvdResult[SvdIndex = 'W']</code> | |
− | + | :<code>Variable V := #SvdResult[SvdIndex = 'V']</code> | |
− | |||
− | |||
− | * [[EigenDecomp]] | + | == See Also == |
+ | * [[EigenDecomp]] | ||
* [[Decompose]] | * [[Decompose]] | ||
+ | * [[Transpose]] | ||
* [[:Category:Matrix Functions]] | * [[:Category:Matrix Functions]] |
Revision as of 00:42, 22 January 2016
SingularValueDecomp(a, i, j, j2)
SingularValueDecomp computes the singular value decomposition of a matrix. Singular value decomposition is often used with sets of equations or matrices that are singular or ill-conditioned (that is, very close to singular). It factors a matrix «a», indexed by «i» and «j», with Size(i) >= Size(i), into three matrices, U, W, and V, such that:
- a = U . W . V
where U and V are orthogonal matrices and W is a diagonal matrix. U is dimensioned by «i» and «j», W by «j» and «j2», and V by «j» and «j2». In Analytica notation:
Variable A := Sum(Sum(U*W, J)*Transpose(V, J, J2), J2)
The index «j2» must be the same size as «j» and is used to index the resulting W and V arrays. SingularValueDecomp returns an array of three elements indexed by a special system index named SvdIndex
with each element, U, W, and V, being a reference to the corresponding array.
Use the # (dereference) operator to obtain the matrix value from each reference, as in:
Index J2 := CopyIndex(J)
Variable SvdResult := SingularValueDecomp(A, I, J, J2)
Variable U := #SvdResult[SvdIndex = 'U']
Variable W := #SvdResult[SvdIndex = 'W']
Variable V := #SvdResult[SvdIndex = 'V']
Enable comment auto-refresher