Condition number of a matrix is 1 but determinant is almost 0

AI Thread Summary
The discussion centers on the confusion regarding a matrix with a condition number of 1, indicating it is well-conditioned, while its determinant is nearly zero, suggesting it is almost singular. The key point is that a low condition number does not necessarily imply that the determinant must be large; rather, it reflects the matrix's sensitivity to numerical errors. The determinant's small value is expected due to the scaling of the matrix elements, which are around 1E-3. Additionally, conditioning issues arise not just from small numbers but from specific combinations of small and larger numbers, particularly when they are very close in value. Understanding these nuances clarifies why the matrix can be well-conditioned despite having a small determinant.
hermano
Messages
38
Reaction score
0
Hello,

I want to calculate the conditioning of a matrix, therefore I use the cond() commando in Matlab. A problem with a low condition number is said to be well-conditioned, while a problem with a high condition number is said to be ill-conditioned.

If I calculate the condition number of the matrix:

-0.0053 -0.0031
0.0031 -0.0053

the condition number is equal to 1. This means that the matrix is well-conditioned. However if I calculate the determinant of this matrix with the command det() the result is 3.7700e-005. Thus almost zero what means that the matrix is almost singular, thus ill-conditioned. Why is the condition number 1 while the matrix is ill-conditioned?

Steven
 
Mathematics news on Phys.org
hermano said:
However if I calculate the determinant of this matrix with the command det() the result is 3.7700e-005. Thus almost zero what means that the matrix is almost singular, thus ill-conditioned.

Well not really, not in relation to the size of the elements in the matrix. If you scale the elements in a 2x2 matrix by some factor then the determinant scales by that factor squared (that factor cubed for a 3x3 matrix and so on).

Your matrix elements are all down around 1E-3 so you have to expect the determinant to be down around 1E-6, even if the matrix is well conditioned.
 
Further, conditioning is not just about the numbers being small. Did you know that the double precision FP used by MATLAB (and most other scientific software these days) can handle numbers bigger than 1E300 and smaller than 1E-300.

So strictly speaking it's not really small numbers that cause the problem, it's more specifically where you have certain combinations of really small numbers and more normal sized numbers together in a calculation, and particularly where you have the difference of numbers that are nearly the same, for example 2.0 and 2.0000000000001. This is the type of situation where you get conditioning errors, not from small numbers alone.

Try for example A=[1, 2; 2, 4.0000001] and see what cond(A) tells you. You'll find det(A) is not all that different to that of your original matrix, but you'll find cond(A) is quite different.
 
Last edited:
Suppose ,instead of the usual x,y coordinate system with an I basis vector along the x -axis and a corresponding j basis vector along the y-axis we instead have a different pair of basis vectors ,call them e and f along their respective axes. I have seen that this is an important subject in maths My question is what physical applications does such a model apply to? I am asking here because I have devoted quite a lot of time in the past to understanding convectors and the dual...
Insights auto threads is broken atm, so I'm manually creating these for new Insight articles. In Dirac’s Principles of Quantum Mechanics published in 1930 he introduced a “convenient notation” he referred to as a “delta function” which he treated as a continuum analog to the discrete Kronecker delta. The Kronecker delta is simply the indexed components of the identity operator in matrix algebra Source: https://www.physicsforums.com/insights/what-exactly-is-diracs-delta-function/ by...

Similar threads

Back
Top