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?
0 个评论
采纳的回答
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 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear Algebra 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!