The reason for this is that the characteristic polynomial for matrices of even moderate size tends to be ill-conditioned, no matter the condition number of the matrix. For this reason, numerical methods do not use the characteristic polynomial.
For symbolic numbers, the characteristic polynomial works great, but copy-pasting a number such as 37.721878707889458815773572522044 puts you back in the numeric point of view. If you pass in
s = solve(polyA);
double(subs(polyA,s(ind)))
this should return zero for every element of s.
To visualize the problem with using the characteristic polynomial, try plotting it:
x = linspace(-100, 100);
y = double(subs(polyA, sym(x)));
plot(x, y);
ylim([-1e10, 1e10])
You should see a bunch of nearly vertical lines crossing the x-axis: a small change in x will result in y being way off.
Best Answer