On 6/22/12 7:04 PM, Krishna Myneni wrote:
> I have the following system of equations, for which I expected Maxima's
> solve() to be able to find a solution:
>
> 1) x^2 + y^2 = 1
>
> 2) (x - 0.5)^2 + (y - 0.5)^2 = 1
>
> I obtain the following:
>
> --
> $ maxima
>
> Maxima 5.24.0 http://maxima.sourceforge.net
> using Lisp GNU Common Lisp (GCL) GCL 2.6.7 (a.k.a. GCL)
> Distributed under the GNU Public License. See the file COPYING.
> Dedicated to the memory of William Schelter.
> The function bug_report() provides bug reporting information.
> (%i1) e1: x^2 + y^2 = 1;
> 2 2
> (%o1) y + x = 1
> (%i2) e2: (x - 0.5)^2 + (y - 0.5)^2 = 1;
> 2 2
> (%o2) (y - 0.5) + (x - 0.5) = 1
> (%i3) solve( [e1, e2], [x,y] );
>
> rat: replaced -0.5 by -1/2 = -0.5
>
> rat: replaced -0.5 by -1/2 = -0.5
> (%o3) []
> --
You can try the following.
load(to_poly_solve);
to_poly_solve([e1,e2],[x,y],'use_grobner=true);
This gives
%union([x = -(sqrt(7)-1)/4,y = (sqrt(7)+1)/4],
[x = (sqrt(7)+1)/4,y = -(sqrt(7)-1)/4])$
To_poly_solve is nicely documented.
>
> Are there some documented inherent limitations of Maxima's solve() which
> prevent it from finding a solution to the first problem?
The shortcomings of solve are not documented anywhere that I know of,
except in bug reports. Solve is not particularly smart, though.
Ray