Re: Solving simultaneous equations with inequalities
- To: mathgroup at smc.vnet.net
- Subject: [mg31151] Re: [mg31140] Solving simultaneous equations with inequalities
- From: Andrzej Kozlowski <andrzej at bekkoame.ne.jp>
- Date: Sun, 14 Oct 2001 04:11:43 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
It's hard to tell what you want with this amount of information. Do you
mean something like this:
In[1]:=
Solve[{x^2+y^2==4,x^2-y^2==1},{x,y}]
Out[1]=
{{x -> -Sqrt[5/2], y -> -Sqrt[3/2]},
{x -> -Sqrt[5/2], y -> Sqrt[3/2]},
{x -> Sqrt[5/2], y -> -Sqrt[3/2]},
{x -> Sqrt[5/2], y -> Sqrt[3/2]}}
You can get only solutions with x>0 by using Select (or Cases) like this:
In[5]:=
Select[Solve[{x^2+y^2==4,x^2-y^2==1},{x,y}],(x/.#)>0&]
Out[5]=
{{x -> Sqrt[5/2], y -> -Sqrt[3/2]}, {x -> Sqrt[5/2],
y -> Sqrt[3/2]}}
or if you want both x any y to be positive:
In[2]:=
Select[Solve[{x^2+y^2==4,x^2-y^2==1},{x,y}],
And@@(({x>0,y>0}/.#))&]
Out[2]=
{{x -> Sqrt[5/2], y -> Sqrt[3/2]}}
There is no way to do it using Solve alone, and for a good reason, for
in general it takes just as long to find the solutions with x>0 as it
takes to find all solutions. However, if you are only interested in real
solutions you can get your answer with InequalitySolve:
In[3]:=
<<Algebra`InequalitySolve`
In[4]:=
InequalitySolve[{x^2+y^2==4,x^2-y^2==1,x>=0},{x,y}]
Out[4]=
x == Sqrt[5/2] && (y == Sqrt[3/2] || y == -Sqrt[3/2])
In[5]:=
InequalitySolve[{x^2+y^2==4,x^2-y^2==1,x>=0,
y>=0},{x,y}]
Out[5]=
x == Sqrt[5/2] && y == Sqrt[3/2]
Note however that this is actually slower than using Solve and Select.
Andrzej Kozlowski
Toyama International University
JAPAN
http://platon.c.u-tokyo.ac.jp/andrzej/
On Saturday, October 13, 2001, at 03:47 PM, Timie Milie wrote:
> I am solving some simultaneous equations and getting four results
> because
> the solution contains two square roots - produced because some of the
> equations to solve are of the form x^2 = y^2 + z^2. Is there any way of
> including the hint x>0 or 'I only want positive roots of x to be used'
> in
> Solve[]?
>
> P.S. I'm not actually solving for x, it gets eliminated in the result.
>
> milstead at cs.bris.ac.uk
>
>
>
>
>