Re: Extracting solutions from Solve[]
- To: mathgroup at smc.vnet.net
- Subject: [mg82581] Re: Extracting solutions from Solve[]
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Thu, 25 Oct 2007 06:09:08 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <ffn0bv$5o0$1@smc.vnet.net>
Isaac Martinez G. wrote: > Hello group: > New guy to Mathematica and I am using the Solve function to find all the roots of a non linear set of equations. > My question is once I have all the solution I am getting rid of all the complex ones and then I need to keep the ones that are within the interval [0,1]. > I have the following nested list after removing complex values: > {{}, {}, {}, {}, {}, {}, {}, {}, { > 1., -0.357968, -0.0366376}, {1., -0.357968, -0.0366376}, {}, {}, {}, {}, \ > {0.326026, -0.812319, 0.0112833}, {-0.791102, > 0.283189, 0.0113524}, {}, {}, {0.454731, 0.840435, 0.0318799}, {}, {}, \ > {0.999998, > 1.8482, 1.63961}, {0.999997, 1.8482, 1.63962}, {0.998429, -2.49158, > 3.06313}, {0.999101, -2.49158, 3.06323}} > > I need to take the solution/group that is within [0,1]. > How do you do this?? > Any help is appreciated....no luck so far... One possible way, using *Cases* and interval arithmetic: In[1]:= sols = {{}, {}, {}, {}, {}, {}, {}, {}, {1., -0.357968, \ -0.0366376}, {1., -0.357968, -0.0366376}, {}, {}, {}, {}, {0.326026, \ -0.812319, 0.0112833}, {-0.791102, 0.283189, 0.0113524}, {}, {}, {0.454731, 0.840435, 0.0318799}, {}, {}, {0.999998, 1.8482, 1.63961}, {0.999997, 1.8482, 1.63962}, {0.998429, -2.49158, 3.06313}, {0.999101, -2.49158, 3.06323}}; In[2]:= Cases[sols, {a_, b_, c_} /; IntervalMemberQ[Interval[{0, 1}], a] && IntervalMemberQ[Interval[{0, 1}], b] && IntervalMemberQ[Interval[{0, 1}], c]] Out[2]= {{0.454731, 0.840435, 0.0318799}} -- Jean-Marc