Re: How do I extract a non-imaginary answer from an answer set?
- To: mathgroup at smc.vnet.net
- Subject: [mg41911] Re: How do I extract a non-imaginary answer from an answer set?
- From: wself at msubillings.edu (Will Self)
- Date: Mon, 9 Jun 2003 05:20:56 -0400 (EDT)
- References: <bbv513$24o$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
"AngleWyrm" <no_spam_anglewyrm at hotmail.com> wrote in message news:<bbv513$24o$1 at smc.vnet.net>... > I want to extract the answer(s) that don't have an imaginary componant: > > Solve[ 30 86.7 x^49 == 3/2 86.7 1.23^49, x] > > produces a lot of answers, but only the last one is not imaginary, and is > the only useful answer for me. Is there a way to extract just this answer, > instead of a huge list? 1. You can just copy and paste the answer you want. 2. Your input above produces a list of rules. You just want the last one, so you could instead use the input Last[Solve[ 30 86.7 x^49 == 3/2 86.7 1.23^49, x]] 3. You may not know in advance which of the rules are going to give real answers. In that case you could select from the list of rules Select[Solve[30 86.7 x^49 == 3/2 86.7 1.23^49, x], Im[#[[1, 2]]] == 0. &] and this will give all the real answers if there are others. Actually due to possible roundoff error you would be safer to use Select[Solve[30 86.7 x^49 == 3/2 86.7 1.23^49, x], Abs[Im[#[[1, 2]]]] < 10^-15. &] You can use Chop to get rid of the spurious imaginary parts if there are any.