rtoy / maxima

A Clone of Maxima's repo
Other
0 stars 0 forks source link

solve gives very different (wrong) answer than %solve #3148

Open rtoy opened 2 months ago

rtoy commented 2 months ago

Imported from SourceForge on 2024-07-07 14:55:21 Created by kcrisman on 2013-06-13 16:40:30 Original: https://sourceforge.net/p/maxima/bugs/2592


First noticed here and reported at Sage ticket 14628. Appended is how to get x7: the relevant part is that we get different answers from solve and %solve, and the first is quite wrong. I'm really sorry we don't have a smaller example!

:::text
(%i1) display2d:false;

(%o1) false
(%i2) declare(phi,real);

(%o2) done
(%i15) solve(x7,phi);

solve: using arc-trig functions to get a solution.
Some solutions will be lost.
(%o15) [phi = 0,phi = %pi-acos(sqrt(5)/2-1/2),phi = acos(sqrt(5)/2+1/2)]

(%i16) %solve(x7,phi);

(%o16) %union([phi = 2*%pi*%z21+%pi/2])

and these are definitely very different solutions.

:::text
x1:    - sqrt(2)*sin(-phi)*sin(phi)/((sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)*(cos(-phi)^2 + 2*sin(-phi)*sin(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + sin(-phi)^2 - 2*cos(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) - 2*sin(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + 2*cos(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 - 4*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2));
x2: x1 + sqrt(2)*cos(-phi)*cos(phi)/((sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)*(cos(-phi)^2 + 2*sin(-phi)*sin(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + sin(-phi)^2 - 2*cos(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) - 2*sin(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + 2*cos(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 - 4*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2));
x3: x2 - sqrt(2)*cos(-phi)/((sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)*(cos(-phi)^2 + 2*sin(-phi)*sin(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + sin(-phi)^2 - 2*cos(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) - 2*sin(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + 2*cos(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 - 4*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2));
x4: x3 - sqrt(2)*sin(phi)^2/((sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2*(cos(-phi)^2 + 2*sin(-phi)*sin(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + sin(-phi)^2 - 2*cos(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) - 2*sin(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + 2*cos(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 - 4*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2));
x5: x4 - sqrt(2)*cos(phi)^2/((sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2*(cos(-phi)^2 + 2*sin(-phi)*sin(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + sin(-phi)^2 - 2*cos(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) - 2*sin(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + 2*cos(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 - 4*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2));
x6: x5 + 2*sqrt(2)*cos(phi)/((sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2*(cos(-phi)^2 + 2*sin(-phi)*sin(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + sin(-phi)^2 - 2*cos(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) - 2*sin(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + 2*cos(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 - 4*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2));
x7: x6 - sqrt(2)/((sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2*(cos(-phi)^2 + 2*sin(-phi)*sin(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + sin(-phi)^2 - 2*cos(-phi)*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) - 2*sin(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*cos(-phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1) + 2*sin(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 + 2*cos(phi)^2/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2 - 4*cos(phi)/(sin(phi)^2 + cos(phi)^2 - 2*cos(phi) + 1)^2));
rtoy commented 2 months ago

Imported from SourceForge on 2024-07-07 14:55:22 Created by gagern on 2014-09-03 09:04:24 Original: https://sourceforge.net/p/maxima/bugs/2592/#b8d5


These days I seem to have trouble reproducing the correct solution from %solve: I'll get back an unevaluated %solve expression. This is with Maxima 5.34.0 on Gentoo, but also with Maxima versions buikt from git, going back as far back as 5.20.0, and in particular with the 5.29.1 I likely had installed back when this issue was reported. Of course it could be that I never checked %solve back then, and simply trusted kcrisman on this. But it seems to me that some configuration aspect controls whether or not the correct solutions can be found, not only the Maxima version in use.

The main problem of this ticket, though, namely the incorrect solutions reported by solve, still remain as originally reported.