Re: Re: Ellipse equation simplification on Mathematica:

• To: mathgroup at smc.vnet.net
• Subject: [mg76898] Re: [mg76830] Re: Ellipse equation simplification on Mathematica:
• From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
• Date: Wed, 30 May 2007 05:04:33 -0400 (EDT)
• References: <f2emof\$35h\$1@smc.vnet.net><200705181006.GAA12812@smc.vnet.net> <200705280500.BAA15766@smc.vnet.net> <A2AFF4CF-D65F-424C-A963-97043E71D6E7@mimuw.edu.pl> <7D2D10D0-B53E-4A9F-A03D-6D1755AA2505@mimuw.edu.pl> <6EB71EC4-37CE-48D1-842E-7DF0B82D4DB9@mimuw.edu.pl>

On 29 May 2007, at 12:20, Andrzej Kozlowski wrote:

>
>
> On 29 May 2007, at 12:15, Andrzej Kozlowski wrote:
>
>>
>> On 29 May 2007, at 10:53, Andrzej Kozlowski wrote:
>>
>>>
>>> On 28 May 2007, at 14:00, Narasimham wrote:
>>>
>>>> On May 19, 1:54 pm, Andrzej Kozlowski <a... at mimuw.edu.pl> wrote:
>>>>> On 18 May 2007, at 19:06, Narasimham wrote:
>>>>>
>>>>>
>>>>>> threa...
>>>>>
>>>>>>  Constant[c,d th,ph] ;
>>>>>
>>>>>>  (*  th, ph are spherical cords of tip of tube  *)  ;
>>>>>
>>>>>>  cp = Cos[ph] ; sp = Sin[ph] ; cth = Cos[th] ; sth = Sin[th] ;
>>>>>
>>>>>> (*  earlier typo corrected *)
>>>>>
>>>>>>  d1 = Sqrt[(x + d cp cth + c )^2 + ( y + d cp sth )^2 + (d sp)
>>>>>> ^2 ]
>>>>>
>>>>>>  d2 =Sqrt[(x - d cp cth - c )^2 + ( y - d cp sth )^2 + (d sp)^2 ]
>>>>>
>>>>>>  FullSimplify[ d1 + d2 + 2 d - 2 a == 0] ;
>>>>>
>>>>>>  When d = 0, algebraic/trigonometric simplification brings about
>>>>>> common ellipse form:
>>>>>
>>>>>> (x/a)^2 + y^2/(a^2-c^2) = 1
>>>>>
>>>>>>  Request help for bringing to standard form involving
>>>>>> constants a,c
>>>>>> and the new tube length constant d.
>>>>>
>>>>>>  Regards,
>>>>>>  Narasimham
>>>>>
>>>>> I don't think such a form exists. Consider the following.
>>>>>
>>>>> id1 = {d1^2 - ((x + d*cp*cth + c)^2 + (y + d*cp*sth)^2 + (d*sp)
>>>>> ^2),
>>>>>     d2^2 - ((x - d*cp*cth - c)^2 + (y - d*cp*sth)^2 + (d*sp)^2),
>>>>>         sp^2 + cp^2 - 1, sth^2 + cth^2 - 1};
>>>>>
>>>>> id = Prepend[id1, d1 + d2 + 2 d - 2 a];
>>>>>
>>>>> Now consdier first the case of the ellipse:
>>>>>
>>>>> d = 0;
>>>>>
>>>>>   gr = GroebnerBasis[id, {x, y, a, c}, {cp, sp, cth, sth, d1, d2},
>>>>>    MonomialOrder -> EliminationOrder]
>>>>>   {-a^4 + c^2 a^2 + x^2 a^2 + y^2 a^2 - c^2 x^2}
>>>>>
>>>>> This tells us that
>>>>>
>>>>> First[%] == 0
>>>>> -a^4 + c^2*a^2 + x^2*a^2 + y^2*a^2 - c^2*x^2 == 0
>>>>>
>>>>> is the equation of the ellipse, and this can be easily brought to
>>>>> standard form by hand. But now consider your "general" case:
>>>>>
>>>>>   Clear[d]
>>>>>   gr = GroebnerBasis[id, {x, y, a, c, d}, {cp, sp, cth, sth,
>>>>> d1, d2},
>>>>>    MonomialOrder -> EliminationOrder]
>>>>>   {}
>>>>>
>>>>> This means that elimination cannot be performed and no
>>>>> "standard form"
>>>>> of the kind you had in mind exists. Unless of course there is a
>>>>> bug
>>>>> in GroebnerBasis (v. unlikely) or I have misunderstood what you
>>>>> in mind.
>>>>>
>>>>> Andrzej Kozlowski
>>>>
>>>> I checked for case of tube parallel to x- or y-axis produces
>>>> ellipses
>>>> and suspected validity even in 3-D general case.
>>>>
>>>> Narasimham
>>>>
>>>
>>>
>>>  OK., now I see that I misundertood you and  you wrote that
>>> cd,th, ph (and presumably a) are supposed to be constants, so you
>>> do not wish to eliminate them. But now one can easily prove that
>>> what you get is not, in general, an ellipse. In this situation
>>> Groebner basis works and you can obtain a rather  horrible
>>> quartic equation of your surface:
>>>
>>> id1 = {d1^2 - ((x + d*cp*cth + c)^2 + (y + d*cp*sth)^2 + (d*sp)^2),
>>>     d2^2 - ((x - d*cp*cth - c)^2 + (y - d*cp*sth)^2 + (d*sp)^2),
>>>         sp^2 + cp^2 - 1, sth^2 + cth^2 - 1};
>>>
>>> id = Prepend[id1, d1 + d2 + 2*d - 2*a];
>>>
>>>
>>> v = GroebnerBasis[id, {x, y, a, c, cp, cth}, {sth, sp, d1, d2},
>>>     MonomialOrder -> EliminationOrder][[1]];
>>>
>>> First[v] == 0
>>>
>>> is the equation (I prefer not to include the output here).
>>>
>>> Looking at v see that the non zero coefficients are only the free
>>> coefficient, the coefficients of x^2, y^2, x^2 y^2, x^4 and y^4.
>>> So only in some cases  you will get a quadratic (for example when
>>> the quartic happens to be a perfect square as in the case d=0,
>>> or when the free coefficient vanishes, as in the trivial case
>>> a=d,  or when the coefficients of 4-degree terms vanish). One can
>>> work out all the cases when gets a quadratic but it is also easy
>>> to find those when one does not. For example, taking both th and
>>> ph to be 60 degrees (so that cth and cph are both 1/2) we get:
>>>
>>> v /. {cp -> 1/2, cth -> 1/2, d -> 4, a -> 2, c -> 1}
>>>
>>>  y^4 - 48 x^2 y^2 + 120 y^2 + 3600
>>>
>>> This is certianly is not the equation of an ellipse.
>>>
>>> Andrzej Kozlowski
>>>
>>>
>>
>>
>> Sorry; that last example was a bad one, because with these
>> parameters (d>a)  the original equations do not have solutions.
>> The point is that the equations that we get after elimination will
>> have more solutions than the ones we start with, but all the
>> solutions of the original ones will satisfy the new ones. So to
>> see that we do not normally get an ellipse we need a different
>> choice of parameters, with a>d. So take
>>
>> w = First[v ]/. {cp -> 1/2, cth -> 1/2, sp -> Sqrt[3]/2, sth ->
>> Sqrt[3]/2, d -> 1,
>>    a -> 3, c -> 1}
>>
>> (1521*x^4)/256 + (2229*y^2*x^2)/128 - (117*x^2)/4 + (3721*y^4)/256
>> - (183*y^2)/4 + 36
>>
>>
>> Now, this is clearly not the equation of an ellipse. We can see
>> now the relationship between this and your original equation. With
>> the above values of the parameters your equation takes the form:
>>
>> eq = d1 + d2 + 2*d - 2*a == 0 /. {cp -> 1/2, cth -> 1/2, sp -> Sqrt
>> [3]/2,
>>    sth -> Sqrt[3]/2, d -> 1, a -> 3,
>>        c -> 1}
>> Sqrt[(x - 5/4)^2 + (y - Sqrt[3]/4)^2 + 3/4] +
>>   Sqrt[(x + 5/4)^2 + (y + Sqrt[3]/4)^2 + 3/4] - 4 == 0
>>
>> So now look at the graph:
>>
>> gr1=ContourPlot[
>>  Sqrt[(x - 5/4)^2 + (y - Sqrt[3]/4)^2 + 3/4] +
>>    Sqrt[(x + 5/4)^2 + (y + Sqrt[3]/4)^2 + 3/4] - 4 == 0, {x, -5,
>> 5}, {y, -5,
>>   5}]
>>
>>
>> Looks like a nice ellipse, right? Unfortunately it is only a part
>> of the graph of
>>
>> w =First[v]
>>
>> gr2 = ContourPlot[Evaluate[w == 0], {x, -5, 5}, {y, -5, 5}]
>>
>> The picture is not quite convincing, because the latter contour
>> plot is not very accurate but when you see them together:
>>
>> Show[gr1, gr2]
>>
>> the relationship becomes obvious. In any case, what you get a
>> quartic curve that looks of course like an ellipse but isn't.
>>
>> Andrzej Kozlowski
>
>
> Sorry, a small correction is needed. I wrote:
>
>>  w=First[v]
>>
>> gr2 = ContourPlot[Evaluate[w == 0], {x, -5, 5}, {y, -5, 5}]
>
> Ignre the first line (w=First[v]) in the above since it will
> prevent the plot from working. Just evaluate the second line with
> the value of w defined earlier.
>
> Andrzej Kozlowski
>
>
>

One more comment: if you want a really good plot of gr2 you need to
use a lot more plot points. With;

gr2 = ContourPlot[Evaluate[w == 0], {x, -5, 5}, {y, -5, 5},
PlotPoints -> 300]

one can see clearly how gr1 forms a part of gr2 (a quartic and not a