Non-square square root of a matrix

Discussion in 'Numerical Analysis' started by g.flemin, Jul 31, 2007.

  1. g.flemin

    g.flemin Guest

    Hello,

    I am trying to find S, a non-square square root of a matrix G, s.t. G
    = S^T S

    G is a n x n symmetric matrix; rank(G) = p with p < n.
    S should be a p x n matrix.

    It seems this problem has a solution but I cannot find it :-(

    Btw, G should be positive definite but, due to some previous
    computations, chol(G) fails..

    Any ideas or references?

    Thank you all in advance!

    Guillaume Flemin
     
    g.flemin, Jul 31, 2007
    #1
    1. Advertisements

  2. Take an svd or eigendecomposition like
    G= X S X^T
    where S = diag(s_1,s_2,....)
    Assume |s_1| >= |s_2| >= ... >= |s_p| >= ... >= |s_n|
    (that's the case for the SVD and can be arranged for the
    eigendecomposition by permuting columns of X)
    Since rank(G) = p, we have s_{p+1}=...=s_n=0
    Therefore X:),1:p)*diag(s_1,..,s_p)*X:),1:p)^T
    comes close to what you want, unless some of
    s_1,..,s_p are negative. Then I doubt there is a real
    solution of your problem. For positive definite G
    this gives a solution.



    --
    Helmut Jarausch

    Lehrstuhl fuer Numerische Mathematik
    RWTH - Aachen University
    D 52056 Aachen, Germany
     
    Helmut Jarausch, Jul 31, 2007
    #2
    1. Advertisements

  3. g.flemin

    Carl Barron Guest

    Take the eigenvector decomposition
    G = W^T D W [W^TW = WW^T = I]

    select the eigenvalues that are not zero and the corresponding
    eigenvectors then only these are needed.
    replace the eigenvalues with their square roots. then
    B = the_diag_matrix * saved_eigenvector_matrix is a solution.
    B can be computed in the same place as the saved_eigenvector_matrix.

    if U^TU = I and UB is a valid product the C = UB is another solution.
     
    Carl Barron, Aug 1, 2007
    #3
  4. g.flemin

    g.flemin Guest


    Thank you both for your answers, that works just fine! :)

    Guillaume Flemin
     
    g.flemin, Aug 1, 2007
    #4
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.