Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Ellipse equation simplification on Mathematica:

  • To: mathgroup at smc.vnet.net
  • Subject: [mg77012] Re: [mg76946] Re: Ellipse equation simplification on Mathematica:
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Thu, 31 May 2007 03:38:11 -0400 (EDT)
  • References: <f2emof$35h$1@smc.vnet.net><200705280500.BAA15766@smc.vnet.net> <200705300929.FAA13381@smc.vnet.net> <E4D01FC9-742E-4536-9802-EFCF2F1CB85F@mimuw.edu.pl>

On 30 May 2007, at 21:15, Andrzej Kozlowski wrote:

> *This message was transferred with a trial version of CommuniGate
> (tm) Pro*
>
> On 30 May 2007, at 18:29, Narasimham wrote:
>
>> On May 29, 2:19 pm, Andrzej Kozlowski <a... at mimuw.edu.pl> 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:
>>>
>>>>>>>>  Reference is made to:
>>>
>>>>>>>> http://groups.google.co.in/group/geometry.puzzles/
>>>>>>>> browse_thread/
>>>>>>>> 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 had
>>>>>>> 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
>>>> instead
>>>
>>>> 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}]
>>>
>>> Ignore 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
>>
>> Thanks Andrzej so much for all the cumbersome & involved
>> verifications.
>>
>> Ok,are we now in a situation to find out what exhaustively all
>> situations/conditions give ellipses?
>>
>> Should coefficients of third and fourth order term vanish,or 
>> should it
>> have repeated roots etc.?
>>
>> At least don't we get ellipses for tube center when th = 0,?
>> (inclusive when the tube is parallel or perpendicular to x- axis, 
>> th =
>> 0,ph = 0,Pi/2? For this case new a,b need to be defined in terms of
>> c,a and d).
>>
>> Regards,
>> Narasimham
>>
>>
>
> Yes, indeed you do get ellipses in various special cases. For 
> example, as you say,  when th=0 you can easily find ellipses that 
> are solutions. In fact it could be that all solutions in this case 
> are ellipses. (see below).
> Here is how one can investigate this.
>
> cth = 1; sth = 0;
>
> 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};
>
> id = Prepend[id1, d1 + d2 + 2*d - 2*a];
>
> v = GroebnerBasis[id, {x, y, a, c, cp}, { sp, d1, d2},
>     MonomialOrder -> EliminationOrder][[1]]
>
> w = Collect[v, {x, y}, Simplify]
>
>
> (-y^2)*(a - d)^2 + (a^2 - 2*d*a - c*(c + 2*cp*d))*(a - d)^2 +
>   (-a^2 + 2*d*a + c^2 + (cp^2 - 1)*d^2 + 2*c*cp*d)*x^2
>
>
> We got a quadratic which we hope is the equation of an ellipse. For 
> this to be an ellipse one of two things has to happen. Either the 
> coefficients of x^2 and y^2 are both positive and the free 
> coefficient non-positive or the coefficients of x^2 and y^2 are 
> both negative and the free coefficient non-negative. Lets write 
> down two conditions:
>
> cond1 = Reduce[
>     0 <= cp <= 1 &&
>        Coefficient[w, x^2] <
>            0 && Coefficient[w, y^2] < 0 && (w /. {x -> 0, y -> 0}) 
> >= 0 &&
>          a >= d];
>
> cond2 = Reduce[
>     0 <= cp <= 1 &&
>        Coefficient[w, x^2] >
>            0 && Coefficient[w, y^2] > 0 && (w /. {x -> 0, y -> 0}) 
> <= 0 &&
>          a >= d];
>
>
>
> cond = Reduce[cond1 || cond2];
>
> Now, let's ask Mathematica to find an example satisfying cond:
>
>
> ex1 = Flatten[FindInstance[cond, {d, a, cp, c}]]
>
>
> {d -> 9800/149, a -> 149, cp -> 0, c -> 51}
>
> Let's see the equation:
>
>
> Simplify[(v /. ex1) == 0]
>
> 96040000*x^2 + 153784801*y^2 == 0
>
> well, yes, this is an ellipse but a rather trivial one. Let's try 
> to make it find something with a non zero value of cp
>
>
> ex2 = Flatten[FindInstance[cond && a != 0 && 0 < cp < 1, {d, a, cp, 
> c}]]
>
>
> {d -> -1, a -> 1, cp -> 1/2, c -> -1}
>
>
> Simplify[(v /. ex2) == 0]
>
>
> (7*x^2)/4 + 4*y^2 == 4
>
>
> This time we got a nice ellipse. So certainly, in the case th=0 you 
> get lots of elliptical solutions.
> The question is: are all possible solutions in this case 
> elliptical? I tried telling Mathematica to find a solution for 
> which the following holds:
>
> ex3 = Flatten[FindInstance[Not[cond] && a!=0 && 0 <= cp <=1, {d, a, 
> c}]]
>
>
> but since after quite a long time Mathematica was still unable to 
> find an example and as I need to use it for another purpose I had 
> to abort. So I suspect the case th==0 all solutions are elliptical 
> (and the same for ph==0) but Reduce will probably not be able to 
> prove it (or FindInstance find a counterexample).  I can't spend 
> any more time on this but I think you can now see what can be (and 
> what probably can't) be done with Mathematica in connection with 
> this problem.
>


Because of the hurry in which I wrote the above I did not notice the 
obvious. If

w = (-y^2)*(a - d)^2 + (a^2 - 2*d*a - c*(c + 2*cp*d))*(a - d)^2 +
   (-a^2 + 2*d*a + c^2 + (cp^2 - 1)*d^2 + 2*c*cp*d)*x^2;

then


Coefficient[w, y^2]

-(a - d)^2

which is always non-positive for real a and d. So to have an ellipse 
we realy need only one condition and if we assume that both a and d 
are non-negative we can get a much simpler condition for an ellipse:

cond=Reduce[Coefficient[w,x^2]<0&&0=E2=89=A4cp=E2=89=A41&&a>=d=E2=89=A5=
0]


a>0=E2=88=A70=E2=89=A4d<a=E2=88=A70=E2=89=A4cp=E2=89=A41=E2=88=A7-a-cp =
d+d<c<a-cp d-d

So under the above conditions you always get an ellipse (or nothing). =

What about the case when the conditions are non-statisifed? THis is 
harder to resolve. It is actually easy to find a counter-example:


counter = Flatten[FindInstance[ !cond && a > 0 &&
      d > 0 && 0 <= cp <= 1, {a, c, d, cp}, Reals]]


{a -> 181, c -> -(39/10), d -> 100, cp -> 1}

in which case the quadratic equation becomes:


w /. counter


(267421*x^2)/100 - 6561*y^2 - 1754549181/100


which is a hyperbola. However, of course,  this is not the end of the =

story because there is still the possiblity that the original 
equations have an empty solution set for this set of parameters. 
(Remember that the set of solutions of the original equations is a 
subset of the solution set of the quadratic, so it can be empty). 
Let's check that:

d1 = Sqrt[(x + d cp
           cth + c )^2 + ( y + d cp sth )^2 + (d sp)^2 ] /. {cth -> 1,
                   sth -> 0, cp -> 1, sp -> 0} /. counter;

d2 = Sqrt[(x - d cp
           cth - c )^2 + ( y - d cp sth )^2 + (d sp)^2 ] /. {cth -> 1,
                   sth -> 0, cp -> 1, sp -> 0} /. counter;


f = d1 + d2 + 2*d - 2*a /. counter

Sqrt[(x - 961/10)^2 + y^2] + Sqrt[(x + 961/10)^2 + y^2] -162

However:

Reduce[f == 0, {x, y}, Reals]

False

So in this case the original equations have no solutions. I think it 
is pretty clear that geometric considerations show that actually for 
all choices of parameters, with th=0 or ph=0, you will either get an =

ellipse of no solutions to the original equations (this happens 
whenever the quadratic turns out to be a parabola). Giving a purely 
symbolic proof of this appears quite hard and I can't spend any more 
time on purrsuing it farther, but I hope all of this has been of some =

help.

With best regards

Andrzej













  • Prev by Date: Iterating List
  • Next by Date: Re: Gauss-Kronrod algorithm
  • Previous by thread: Re: Ellipse equation simplification on Mathematica:
  • Next by thread: Re: Re: Ellipse equation simplification on Mathematica: