# Why is this matrix bad conditioned?

• divB
In summary: I have no experience with the QR method, could you please tell me how it works?In summary, the conversation discusses a matrix that is used to solve an over-determined system \mathbf{z} = \mathbf{U} \mathbf{a}. The matrix is found to be unstable and with high condition numbers, and the speaker asks for clarification on why this is the case. It is clarified that the matrix is generated from a sequence of values and is similar to a Vandermonde matrix. The MATLAB backslash operator is mentioned as a potential solution method, but the speaker has tried using pinv(U)*z and U \ z with no success. The use of the QR method is suggested as a possible solution.
divB
Hi,

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

$$\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]$$

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

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.

hotvette said:
Please clarify a couple of points:

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

Sorry, I was not clear enough. It is indeed over-determined. Better clarification:

$$\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]$$

with N>>3.

hotvette said:
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.

It means the latter. $x(n)$ 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

divB said:
in Engineering papers I found Vandermonde matrices which are just solved "by the MATLAB backslash operator" (Moore Penrose pseudo inverse).
Thanks

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.

AlephZero said:
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?

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.

## 1. Why is a matrix considered "bad conditioned"?

A matrix is considered "bad conditioned" when it is close to being singular, meaning it is very nearly non-invertible. This can lead to numerical instability and inaccurate solutions when solving systems of equations.

## 2. What factors contribute to a matrix being bad conditioned?

There are several factors that can contribute to a matrix being bad conditioned, including having small or zero values along the diagonal, having large differences in magnitude between the elements, and having rows or columns that are nearly linearly dependent.

## 3. How does a bad conditioned matrix affect numerical computations?

A bad conditioned matrix can lead to numerical instability and inaccuracies in numerical computations, particularly when solving systems of equations. It can also result in a large condition number, which measures the sensitivity of the solution to small changes in the input data.

## 4. Can a bad conditioned matrix be improved or fixed?

In some cases, a bad conditioned matrix can be improved or fixed by using techniques such as scaling or pivoting. However, in other cases, the matrix may simply be inherently bad conditioned and cannot be improved.

## 5. How can I check the condition of a matrix?

The condition of a matrix can be checked by calculating its condition number, which can be done using various mathematical methods. Some software programs also have built-in functions for calculating the condition number of a matrix.

Replies
4
Views
1K
Replies
9
Views
1K
Replies
8
Views
1K
Replies
24
Views
2K
Replies
1
Views
963
Replies
7
Views
1K
Replies
2
Views
704
Replies
5
Views
856
Replies
2
Views
1K
Replies
1
Views
1K