Optimal scattering of 3 points into the unit square.x[1],y[1] := (0,0); y[2] := 1; x[3] := 1;eqns := {(1-y[3])^2+(1-x[2])^2=m^2, y[3]^2+1=m^2, x[2]^2+1=m^2};
F := [seq( lhs(e)-rhs(e), e=eqns ) ];G := Groebner[Basis]( F, plex(x[2],y[3],m) );M := G[1];factor(M);fsolve(M=0,m);solutions := solve( m^4-16*m^2+16, m );evalf(solutions);eval(eqns,m=0);The solutions for m=0 are complex. Let's discard thoseGroebner[Basis]([op(F),1-m*z],plex(x[2],y[3],z,m));Since we're only interested in computing m, this is the more efficient variable ordering to use to do that, i.e., compute ILUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2KEYrLUknbXNwYWNlR0YkNiYvJSdoZWlnaHRHUSYwLjBleEYnLyUmd2lkdGhHUSYwLjVlbUYnLyUmZGVwdGhHRjYvJSpsaW5lYnJlYWtHUSVhdXRvRictSSNtb0dGJDYtUSYmY2FwO0YnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGSC8lKXN0cmV0Y2h5R0ZILyUqc3ltbWV0cmljR0ZILyUobGFyZ2VvcEdGSC8lLm1vdmFibGVsaW1pdHNHRkgvJSdhY2NlbnRHRkgvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZXRjFGK0ZDRitGQw==Q[m].Groebner[Basis]([op(F),1-m*z],lexdeg([x[2],y[3],z],[m]));Optimal scattering of 6 points into the unit square.restart;eqns := {x[6]=1/2, x[6]^2+y[6]^2=m^2,
x[4]=1/2, x[4]^2+(1-y[3])^2=m^2,
x[6]^2+(y[3]-y[6])^2=m^2};F := [seq( lhs(e)-rhs(e), e=eqns )];G := Groebner[Basis]( [op(F)], lexdeg([x[6],y[6],x[4],y[3]],[m]));factor(G[1]);fsolve(4*m^2-5,m);fsolve(36*m^2-13,m);There seem to be two possibilities. If you look at the picture you might see that m cannot be +1.1 and hence it must be 0.60. But, let's consider each case separately.G1 := Groebner[Basis]( [op(F),36*m^2-13],
lexdeg([x[6],y[6],x[4],y[3]],[m])); G2 := Groebner[Basis]( [op(F),4*m^2-5,y[3]],
lexdeg([x[6],y[6],x[4],y[3]],[m]));The case LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNictSSNtbkdGJDYkUSI0RicvJSxtYXRodmFyaWFudEdRJ25vcm1hbEYnLUkjbW9HRiQ2LVExJkludmlzaWJsZVRpbWVzO0YnRjcvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkAvJSlzdHJldGNoeUdGQC8lKnN5bW1ldHJpY0dGQC8lKGxhcmdlb3BHRkAvJS5tb3ZhYmxlbGltaXRzR0ZALyUnYWNjZW50R0ZALyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTy1GIzYkLUklbXN1cEdGJDYlLUYsNiVRIm1GJy8lJ2l0YWxpY0dRJXRydWVGJy9GOFEnaXRhbGljRictRjQ2JFEiMkYnRjcvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRjdGK0Y3LUY7Ni1RKCZtaW51cztGJ0Y3Rj5GQUZDRkVGR0ZJRksvRk5RLDAuMjIyMjIyMmVtRicvRlFGY28tRjQ2JFEiNUYnRjdGN0YrRjc= leads to LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2Ji1JJW1zdWJHRiQ2JS1GLDYlUSJ5RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUYjNiQtSSNtbkdGJDYkUSIzRicvRjtRJ25vcm1hbEYnRkMvJS9zdWJzY3JpcHRzaGlmdEdRIjBGJy1JI21vR0YkNi1RIj1GJ0ZDLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZOLyUpc3RyZXRjaHlHRk4vJSpzeW1tZXRyaWNHRk4vJShsYXJnZW9wR0ZOLyUubW92YWJsZWxpbWl0c0dGTi8lJ2FjY2VudEdGTi8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRmduLUZANiRGR0ZDRkNGK0ZD and LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2Ji1JJW1zdWJHRiQ2JS1GLDYlUSJ5RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUYjNiQtSSNtbkdGJDYkUSI2RicvRjtRJ25vcm1hbEYnRkMvJS9zdWJzY3JpcHRzaGlmdEdRIjBGJy1JI21vR0YkNi1RIj1GJ0ZDLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZOLyUpc3RyZXRjaHlHRk4vJSpzeW1tZXRyaWNHRk4vJShsYXJnZW9wR0ZOLyUubW92YWJsZWxpbWl0c0dGTi8lJ2FjY2VudEdGTi8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRmduLUZANiRRIjFGJ0ZDRkNGK0ZD so the other case must be the right one. Why did we get this case anyway? Because there is no restriction on circle 3 not being on top of circle 2. One way to eliminate this case isG1 := Groebner[Basis]( [op(F),1-(1-y[6])*y[3]*z],
lexdeg([x[6],y[6],x[4],y[3],z],[m]));The other case LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNictSSNtbkdGJDYkUSMzNkYnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy1JI21vR0YkNi1RMSZJbnZpc2libGVUaW1lcztGJ0Y3LyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZALyUpc3RyZXRjaHlHRkAvJSpzeW1tZXRyaWNHRkAvJShsYXJnZW9wR0ZALyUubW92YWJsZWxpbWl0c0dGQC8lJ2FjY2VudEdGQC8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRk8tRiM2JC1JJW1zdXBHRiQ2JS1GLDYlUSJtRicvJSdpdGFsaWNHUSV0cnVlRicvRjhRJ2l0YWxpY0YnLUY0NiRRIjJGJ0Y3LyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJ0Y3RitGNy1GOzYtUSI9RidGN0Y+RkFGQ0ZFRkdGSUZLL0ZOUSwwLjI3Nzc3NzhlbUYnL0ZRRmNvLUY0NiRRIzEzRidGN0Y3RitGNw== .solve(G1[1],m);_EnvExplicit := true: solve( {op(G1),m=sqrt(13)/6} );