Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Why is this matrix bad conditioned?

  1. Jan 16, 2013 #1
    Hi,

    From a paper I got a matrix like this which I use to solve the over-determined system [itex]\mathbf{z} = \mathbf{U} \mathbf{a}[/itex]:

    [tex]
    \mathbf{U} = \left[\begin{matrix}
    x(3) & x(3)^2 & x(3)^3 & x(2) & x(2)^2 & x(2)^3 & x(1) & x(1)^2 & x(1)^3\\
    x(4) & x(4)^2 & x(4)^3 & x(3) & x(3)^2 & x(3)^3 & x(2) & x(2)^2 & x(2)^3\\
    x(5) & x(5)^2 & x(5)^3 & x(4) & x(4)^2 & x(4)^3 & x(3) & x(3)^2 & x(3)^3\\
    x(6) & x(6)^2 & x(6)^3 & x(5) & x(5)^2 & x(5)^3 & x(4) & x(4)^2 & x(4)^3\\
    \end{matrix}\right]
    [/tex]

    However, in my experiments I found that this matrix is very unstable and has high condition numbers. No matter which "signal" x I plug into, even if the x are drawn from a Gaussian distribution.

    Can anyone tell me why this matrix is so unstable or if I am doing something wrong?

    The crazy thing is that the paper suggests the algorithm works without any problems (using the same parameter set) but I just can't reproduce this ...

    Thanks,
    div
     
  2. jcsd
  3. Jan 17, 2013 #2

    hotvette

    User Avatar
    Homework Helper

    Please clarify a couple of points:

    1. Do you really mean under-determined? Over-determined means more rows than columns.

    2. Does x(3)3 mean x * (33) or (x3)3? If the former, it means x is a scale factor for the entire matrix. If the latter, it means the matrix is generated from 6 values.
     
  4. Jan 17, 2013 #3
    Sorry, I was not clear enough. It is indeed over-determined. Better clarification:

    [tex]
    \mathbf{U} = \left[\begin{matrix}
    x(3) & x(3)^2 & x(3)^3 & x(2) & x(2)^2 & x(2)^3 & x(1) & x(1)^2 & x(1)^3\\
    x(4) & x(4)^2 & x(4)^3 & x(3) & x(3)^2 & x(3)^3 & x(2) & x(2)^2 & x(2)^3\\
    x(5) & x(5)^2 & x(5)^3 & x(4) & x(4)^2 & x(4)^3 & x(3) & x(3)^2 & x(3)^3\\
    x(6) & x(6)^2 & x(6)^3 & x(5) & x(5)^2 & x(5)^3 & x(4) & x(4)^2 & x(4)^3\\
    \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\
    x(N) & x(N)^2 & x(N)^3 & x(N-1) & x(N-1)^2 & x(N-1)^3 & x(N-1) & x(N-1)^2 & x(N-1)^3\\
    \end{matrix}\right]
    [/tex]

    with N>>3.

    It means the latter. [itex]x(n)[/itex] is a sequence where n is the nth value of the sequence.

    It appears that this matrix has a similar structure than a Vandermonde but not quite.

    Vandermonde matrices seem to have high condition numbers and to be instable. Yet, they seem to be used quite frequently, also in Engineering papers I found Vandermonde matrices which are just solved "by the MATLAB backslash operator" (Moore Penrose pseudo inverse).

    Thanks
     
  5. Jan 17, 2013 #4

    AlephZero

    User Avatar
    Science Advisor
    Homework Helper

    AFAK the MATLAB backslash operatior is not the same as the Moore pensore psendo inverse. http://www.mathworks.co.uk/help/matlab/ref/arithmeticoperators.html

    But the QR method MATLAB uses should be work pretty well for that type of matrix. Are you trying to solve it that way, or doing something else?

    Forming the normal equations by doing ##U^Tz = U^T U a## and then solving for ##a## would be an ill-conditioned disaster, unless N is small.
     
  6. Jan 17, 2013 #5
    I know.

    I used pinv(U)*z as well as U \ z.

    The thing is that in some publications it is even (implicitely) stated that they solved with the backslash operator.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?