Drexel dragonThe Math ForumDonate to the Math Forum

Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.

Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: symbolic solver question
Replies: 3   Last Post: Dec 15, 2012 12:37 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Steven Lord

Posts: 17,945
Registered: 12/7/04
Re: symbolic solver question
Posted: Dec 12, 2012 9:22 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

"Paul Mennen" <nospam@mennen.org> wrote in message
> 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:

solve(det(s*eye(4)-A)==0, s)


solve(det(s*eye(4)-A), s)

should work. I would recommend using EIG instead of this SOLVE call
particularly if you're going to work with larger matrices.

Steve Lord
To contact Technical Support use the Contact Us link on

Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© The Math Forum 1994-2015. All Rights Reserved.