How to efficiently find this special case zero-eigenvector?

50 Views Asked by At

I have a real 3x3 symmetric matrix. I know that its 3 eigenvalues are 0 (within precision) and two real numbers >>0. What's the most efficient way to find the eigenvector corresponding to the 0 eigenvalue that works in all cases, i.e., doesn't fail in any special cases?

I've already seen this similar question: How to calculate the eigenvector corresponding to zero eigenvalue But they never actually answer the stated question in there. And they recommend using Gaussian Elimination which fails in many cases, e.g., a diagonal matrix with 1 zero on the diagonal.

My problem is maybe further complicated by floating-point precision issues, so I guess I'm actually looking for an eigenvector with a very very small, possibly non-zero eigenvalue, as close to zero a precision allowed.

The best never-fails method I could figure out that works 100% of the time to find the near-0 eigenvector of a symmetric 3x3 real matrix with one near-0 and two real >>0 eigenvalues was to find the three cross-products of the three rows and use the longest one. It works, but geez it's clunky, and I think there MUST be something faster and more elegant.