Biologist here, so my mathematic background isn't the best.
So, I have a nonnegative 15x15 matrix and I'm getting eigenvalues higher than 1 - which are of interest to me. My problem, however, is that the associated eigenvector - sometimes - has positive and negative values. I'm using Mathematica and an user pointed out that, using the function Chop, I can get rid of that problem - indeed, the values that are negative are really small (-3*10^-17, for instance) and using Chop I get Eigenvectors which values are either all positive or all negative, since the problematic values become 0. But I'm still not convinced and I know that, if the matrix is irreducible, then the Perron–Frobenius theorem applies and Chop would be appropriated. This would make my job much easier - I'm running an analysis that will get me an almost infinite number of eigenvalues and I can't verify, one by one, that the eigenvectors are appropriated. For instance, I'm afraid that I might miss some cases where the values are positive and negative but not small - so even Chop would give an Eigenvector with both positive and negative values with a leading Eigenvalue > 1.
The thing is that the Perron–Frobenius theorem only applies to non-negative matrices if they are irreducible. Since my 15x15 matrices have 6 parameters, they will be necessarily different every time that I change the parameters. Is there any easy way to verify the irreducibility of a matrix in Mathematica?