Re: Re: Reduce/Solve

*To*: mathgroup at smc.vnet.net*Subject*: [mg50078] Re: [mg50060] Re: Reduce/Solve*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Sat, 14 Aug 2004 01:50:31 -0400 (EDT)*References*: <200408090829.EAA03580@smc.vnet.net> <200408101002.GAA19500@smc.vnet.net> <766AE111-EABF-11D8-BBFD-000A95B4967A@mimuw.edu.pl> <opsciyqjd6iz9bcq@monster.cox-internet.com> <395198E8-EB0D-11D8-AA51-000A95B4967A@mimuw.edu.pl> <cfcr2e$475$1@smc.vnet.net> <200408130956.FAA03676@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

On 13 Aug 2004, at 11:56, Andy Kowar wrote: > > I have a problem that the experts on Solve/Reduce participating in > this thread might help me with. > > I define an ellipse in parametric form: > r[t_]:={a*Cos[t],b*Sin[t]} > and the tangent > dr[t_]:=Evaluate[D[r[t], t]] > I define a vector > q={k,l}; > I want to find points on the ellipse such that the tangent is parallel > to a given vector: > q={k,l}; > I expect two two solutions. > > I define the equation: > eq = dr[t] == lambda q; > The following command > sol = Simplify[Solve[eq, {t, lambda}], {a > b > 0, k > 0, > l\[Element]Reals}] > produces the following warning > "Solve::ifun: Inverse functions are being used by Solve, > so some solutions may not be found; use Reduce for complete > solution information" > and the following four solutions (here in the InputForm) > {{lambda -> -((a*b)/Sqrt[b^2*k^2 + a^2*l^2]), > t -> -ArcCos[-((a*l)/Sqrt[b^2*k^2 + a^2*l^2])]}, > {{lambda -> -((a*b)/Sqrt[b^2*k^2 + a^2*l^2]), > t -> -ArcCos[-((a*l)/Sqrt[b^2*k^2 + a^2*l^2])]}, > {lambda -> -((a*b)/Sqrt[b^2*k^2 + a^2*l^2]), > t -> ArcCos[-((a*l)/Sqrt[b^2*k^2 + a^2*l^2])]}, > {lambda -> (a*b)/Sqrt[b^2*k^2 + a^2*l^2], > t -> -ArcCos[(a*l)/Sqrt[b^2*k^2 + a^2*l^2]]}, > {lambda -> (a*b)/Sqrt[b^2*k^2 + a^2*l^2], > t -> ArcCos[(a*l)/Sqrt[b^2*k^2 + a^2*l^2]]}} > > The warning suggests that some solutions might be missing. In fact, > Solve produces two extra expressions that are not solutions. > eq /. sol // Simplify[#, {a > b > 0, k > 0, l\[Element]Reals}] & > returns > {False,True,True,False} > > My questions are: > > 1. Is that a bug or feature that Solve produces expressions that are > not solutions for the original equations? > > 2. How to make Solve to return only 'true' solutions? > > On a side note, I tried Reduce only once because Mathematica froze my > PC. > > AK > > In this type of equations the appearance of "phantom" solutions is a consequence of the method used for solving them. It is not a feature of Mathematica or of Solve. The only way to eliminate these phantoms is to perform the sort of verification you have done. Mathematica does not do it automatically because in most cases of equations with non-numerical parameters such a verification is impossible and trying to do so would simply mean that Mathematica would appear to hang. In your case verification can be accomplished only with the additional information about the parameters included in Simplify but Solve cannot use it. Reduce, however, can: FullSimplify[Reduce[Flatten[{Thread[eq], {a > b > 0, k > 0, l $B":(B Reals}}], {t, lambda}], {a > b > 0, k > 0, l $B":(B Reals}] C[1] $B":(B Integers && ( t == 2*(ArcCot[(b*k)/(a*l - Sqrt[b^2*k^2 + a^2*l^2])] + Pi*C[1]) && lambda == (a*b)/Sqrt[b^2*k^2 + a^2*l^2] || t == 2*(ArcCot[(b*k)/(a*l + Sqrt[b^2*k^2 + a^2*l^2])] + Pi*C[1]) && (a*b)/Sqrt[b^2*k^2 + a^2*l^2] + lambda == 0) (Mathematica 5.0 under Mac OS X 10.3.5) Andrzej Kozlowski Chiba, Japan http://www.mimuw.edu.pl/~akoz/

**Follow-Ups**:**Re: Re: Re: Reduce/Solve***From:*DrBob <drbob@bigfoot.com>

**References**:**Re: Reduce/Solve***From:*"Dana DeLouis" <delouis@bellsouth.net>

**Re: Re: Reduce/Solve***From:*DrBob <drbob@bigfoot.com>

**Re: Reduce/Solve***From:*ankowar@yahoo.com (Andy Kowar)