Why does eig(A) not return a symbolic array for my symbolic matrix A?

2 次查看(过去 30 天)
I have made a matrix C1 whose entries are all rationals formed from random numbers which I've casted with sym: sym(-10 + (10 + 10)*rand(n), 'f'). I believe this means that C1 is a symbolic matrix.
However, when I perform e = eig(C1) or [V,D]=eig(C1), I get rounded values... let me give you an example:
But eig(C1) returns:
I have tried casting C1 beforehand by doing C1 = sym(C1, 'f'), but I receive the same result. If I instead try sym(eig(C1), 'f'), I get the error:
These values are not in symbolic form, the same happens when I try to obtain the right/left eigenvectors of C1. I would like these to be in symbolic form in order to avoid rounding once I perform operations on them. How can I fix this?

采纳的回答

Stefan Wehmeier
Stefan Wehmeier 2015-7-14
The roots of polynomials of degree > 4 usually do not have a symbolic representation. The same holds for eigenvalues as they are the roots of the characteristic polynomial. This may not be satisfactory, but it is the best "symbolic" answer you can get. If you want it, enter
solve(poly2sym(charpoly(C1)))

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Symbolic Math Toolbox 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by