Re: A simple problem
- To: mathgroup at smc.vnet.net
- Subject: [mg25826] Re: [mg25786] A simple problem
- From: BobHanlon at aol.com
- Date: Sat, 28 Oct 2000 01:41:18 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
In a message dated 10/25/2000 4:45:30 AM, nospam at nosite.com writes:
>I have a very simple notation problem I cannot solve (because of my limited
>knowledge of Mathematica).
>
>Example -- an equation from physics:
>
>f := a * t^2 / 2 - p == 0
>
>Now I want to create the different forms of this equation, such as:
>
>Solve[f,t]
>
>which produces:
>
>sqrt(2) * sqrt(p) / sqrt(a)
>
>Okay, the correct general solution. What I really wanted was the limited
>solution ( sqrt(2p/a) ). I know I need to say "assume all the variables
>are
>>= 0", but I can't figure out how to express this.
>
>I've tried applying a number of different constraints without success.
f := a * t^2 / 2 - p == 0
var = Cases[f, _Symbol, Infinity];
subst = Thread[var -> 1];
cond = And @@ Thread[var >= 0];
For version 3:
Select[Flatten[Solve[f, t]], (#[[2]] /. subst) >= 0 &]
{t -> (Sqrt[2]*Sqrt[p])/Sqrt[a]}
or, for version 4:
Select[Flatten[Solve[f, t]], Simplify[#[[2]] >= 0, cond] &]
{t -> (Sqrt[2]*Sqrt[p])/Sqrt[a]}
Then, in either case,
Simplify[%, cond]
{t -> Sqrt[2]*Sqrt[p/a]}
Bob Hanlon