"Paul Mennen" <email@example.com> wrote in message news:firstname.lastname@example.org... > Here is my matlab session: > >>> syms s a A >>> A = [0 0 -2*a a; 0 0 a -2*a; 1 0 0 0; 0 1 0 0]; >>> eig(A) > > ans = > > (-a)^(1/2) > -(-a)^(1/2) > 3^(1/2)*(-a)^(1/2) > -3^(1/2)*(-a)^(1/2) > > OK, so far so good. > I asked for the eigenvalues of the matrix A and it shows the 4 eigenvalues > that I expected. So then for the sake of understanding the solver, I > though I would try to compute the eigenvalues by setting the determinant > of (sI-A) equal to zero: > >>> solve('det(s*eye(4)-A) = 0',s) > Warning: Explicit solution could not be found. > > Why doesn't this work?
Because you're passing a string into SOLVE and so it can't "see" the variable A you've defined in your workspace. It's treating it as a general symbolic value. Depending on the version of MATLAB you're using, either:
should work. I would recommend using EIG instead of this SOLVE call particularly if you're going to work with larger matrices.