I am interested in finding the roots of single variable polynomials (the degree can be anywhere between 30 to 100 and I am interested in real roots so that is what I look at) and I use the matlab function "roots" to do that (I do ensure that the coefficients of a polynomial, ordered in descending powers.) Now, on substituting any of these roots back in the polynomial, I expect the resulting number to be very small. And that is what I observe in most cases, i.e the result I get from substituting the roots in the polynomial is of the order of 10^-13 or so. HOWEVER, in a few cases (say 10% of the cases I am using,) the resultant number is a very large number (greater than 10^16 from what I have seen so far). Can anyone explain why this happens?