1
$\begingroup$

My goal is to reduce two equations eq1 and eq2. According to the documentation, output of code1 condition for $V_{\text{eff}}(r)$ involves $m$. However, code2 doesn't involve $l$. It looks like substitution is already occurred even though I didn't specify the Backsubstitution->True option. Are there somthing that I have made mistake in my code1 and code2?

Reduce[expr,{x1,x2,…},…] effectively writes expr as a combination of conditions on x1, x2, … where each condition involves only the earlier .

eq1 = Refine[
  Reduce[D[-((G m M)/r) + l^2/(2 r^2 \[Mu]), r] == 0, 
   r], {G m M \[Mu] != 0, l != 0, M != 0}]
eq2 = -((G m M)/r) + l^2/(2 r^2 \[Mu]) == Subscript[V, eff][r]

(*** Code1 ***)
Reduce[{eq1, eq2}, {m, Subscript[V, eff][r]}](* As Doccument, conditon for Subscript[V, eff][r] involves m *)

(*** Code2 ***)
Reduce[{eq1, eq2}, {l, Subscript[V, eff][r]}](* Conditon for Subscript[V, eff][r] not involves l. Already backsubstitued? *)
$\endgroup$

1 Answer 1

4
$\begingroup$

Perhaps Solve used with two arguments (not documented as far as I know) is what you are lokking for:

eq1 = Refine[
  Reduce[D[-((G m M)/r) + l^2/(2 r^2 \[Mu]), r] == 0, 
   r], {G m M \[Mu] != 0, l != 0, M != 0}]
eq2 = -((G m M)/r) + l^2/(2 r^2 \[Mu]) == Veff[r]  

(***Code1***)
Solve[{eq1, eq2}, {m}, { 
  Veff[r]}   ](*{{m -> l^2/(G M r \[Mu])}}*)

(***Code2***)
Solve[{eq1, eq2}, { l}, { 
  Veff[r]}   ](*{{l -> -Sqrt[G] Sqrt[m] Sqrt[M] Sqrt[r] Sqrt[\[Mu]]}, {l ->Sqrt[G] Sqrt[m] Sqrt[M] Sqrt[r] Sqrt[\[Mu]]}}*)

This approach works with Reduce instead of Solve too!

$\endgroup$
2
  • $\begingroup$ Thank you for letting me know the hidden usage of Reduce[expr,vars,dom]; Reduce[{eq1, eq2}, { Veff[r]}, { l} ] showed similar outputs as Reduce[{eq1, eq2}, { l, Veff[r]}]. I guess that cancling variable could be located at dom. ※I think this usage suit for me; using Reduce[expr, vars] with only one variable that I want in vars, then observing the output, and then substituting varables;condition=Reduce[{eq1, eq2}, Veff[r] ] Flatten[ToRules/@Reduce[condition[[2]], l][[1]]/. Or->List] condition[[4]]/. % $\endgroup$ Commented Aug 18 at 6:46
  • $\begingroup$ @Soon You're welcome! $\endgroup$ Commented Aug 18 at 9:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.