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에서 Linear Algebra에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by