Re: Insight into Solve...

• To: mathgroup at smc.vnet.net
• Subject: [mg89854] Re: [mg89815] Insight into Solve...
• From: "David Reiss" <dreiss at scientificarts.com>
• Date: Sun, 22 Jun 2008 03:26:45 -0400 (EDT)
• References: <200806210931.FAA15784@smc.vnet.net>

```Thank you very much Andrzej.  It is time that I finally learned

Best,

David

On Sat, Jun 21, 2008 at 8:04 AM, Andrzej Kozlowski <akoz at mimuw.edu.pl>
wrote:

> On 21 Jun 2008, at 18:31, David Reiss wrote:
>
>
>>
>> Some insight requested...:
>>
>> When Solving for the center of a circle that goes through two
>> specified points,
>>
>> Solve[{(x1 - x0)^2 + (y1 - y0)^2 == r^2, (x2 - x0)^2 + (y2 - y0)^2 ==
>> r^2}, {x0, y0}]
>>
>> the result gives expressions for x0 and y0 that are structurally very
>> different even though the symmetry of the problem says that they are,
>> in fact expressions that are ultimately very similar.
>>
>> My question is what is the reason in the algorithm that Solve uses
>> that causes the initial results to structurally look so different.  It
>> appears that Solve is not aware of the symmetry in the problem.
>>
>> Note that if instead of using x0 and y0 one used z0 and y0, then the
>> structural forms of the expressions are reversed suggesting that Solve
>> is taking variables alphabetically (no surprise here).
>>
>> The problem with this sort of result from Solve is that one needs to
>> explicitly manipulate the resulting expressions to exploit the
>> symmetries in order for the final expressions to structurally/visually
>> exhibit those symmetries.  FullSimplify does not, starting from the
>> results of Solve, succeed in rendering the final expressions into the
>> desired form.
>>
>> E.g, if temp is the result of the Solve command above,
>>
>> FullSimplify[circlePoints,
>> Assumptions -> {r >= 0, x1 \[Element] Reals, x2 \[Element] Reals,
>>  y1 \[Element] Reals, y2 \[Element] Reals}]
>>
>> does not sufficiently reduce the expressions in to forms that
>> explicitly exhibit the symmetry transform into one another.
>>
>> Is there another approach that comes to anyones' mind that will simply
>> yield the anticipated results?
>>
>>
>> David
>>
>>
> The Groebner basis algorithm used by Solve works, essentially, by replacing
> the original system of equations by another system, which is easy to solve.
> The system that is obtained depends on the ordering of all the variables,
> including the ones you treat as parameters, so in general, for equations
> with parameters, symmetry will not be preserved.  The easiest way to get
> symmetric answers is, I think, by specifying explicitly the variables that
> should be eliminated. For example, in this case you can first find x0 by
> eliminating y0, and then, separately, y0 by eliminating x0:
>
> Solve[{(x1 - x0)^2 + (y1 - y0)^2 == r^2, (x2 - x0)^2 + (y2 - y0)^2 ==
>   r^2}, {x0}, {y0}]
>
> Solve[{(x1 - x0)^2 + (y1 - y0)^2 == r^2, (x2 - x0)^2 + (y2 - y0)^2 ==
>   r^2}, {y0}, {x0}]
>
> If you compare the answers you will see that the symmetry has been
> preserved.
>
> Andrzej Kozlowski
>
>

--
This message and any attachments, may contain confidential and/or
legally privileged information. If you are not the intended
recipient of the message by the original sender, please destroy it.