[Date Index]
[Thread Index]
[Author Index]
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/
Prev by Date:
**Re: Smalest enclosing circle**
Next by Date:
**Re: Listplot-Bug in Mathematica 5.0**
Previous by thread:
**Re: Reduce/Solve**
Next by thread:
**Re: Re: Re: Reduce/Solve**
| |