Ask Your Question

Revision history [back]

First, it seems that the solutions provided by Sage are correct:

sage: S = [s.rhs() for s in h(x).solve(x)]
sage: S
[-1/2*sqrt(-2*sqrt(5) + 10) - 1,
 1/2*sqrt(-2*sqrt(5) + 10) - 1,
 -1/2*sqrt(2*sqrt(5) + 6) + 1,
 1/2*sqrt(2*sqrt(5) + 6) + 1]
sage: [h(s).full_simplify() for s in S]
[0, 0, 0, 0]

Then it seems that the numerical values are the same as the one provided by wolfram:

sage: [RR(s) for s in S]
[-2.17557050458495, 0.175570504584946, -0.618033988749895, 2.61803398874989]

Actually, they are not written the same way but they are equal:

sage: bool(-1/2*sqrt(-2*sqrt(5) + 10) - 1 == (-2 - sqrt(2*(5 - sqrt(5))))/2)
True
sage: bool(1/2*sqrt(-2*sqrt(5) + 10) - 1  == (-2 + sqrt(2*(5 - sqrt(5))))/2)
True
sage: bool(-1/2*sqrt(2*sqrt(5) + 6) + 1 == (1 - sqrt(5))/2)
True
sage: bool(1/2*sqrt(2*sqrt(5) + 6) + 1 == (3 + sqrt(5))/2)
True

First, it seems that the solutions provided by Sage are correct:

sage: S = [s.rhs() for s in h(x).solve(x)]
sage: S
[-1/2*sqrt(-2*sqrt(5) + 10) - 1,
 1/2*sqrt(-2*sqrt(5) + 10) - 1,
 -1/2*sqrt(2*sqrt(5) + 6) + 1,
 1/2*sqrt(2*sqrt(5) + 6) + 1]
sage: [h(s).full_simplify() for s in S]
[0, 0, 0, 0]

Then Then, it seems that the numerical values are the same as the one ones provided by wolfram:

sage: [RR(s) for s in S]
[-2.17557050458495, 0.175570504584946, -0.618033988749895, 2.61803398874989]

Actually, they are not written the same way but they are equal:

sage: bool(-1/2*sqrt(-2*sqrt(5) + 10) - 1 == (-2 - sqrt(2*(5 - sqrt(5))))/2)
True
sage: bool(1/2*sqrt(-2*sqrt(5) + 10) - 1  == (-2 + sqrt(2*(5 - sqrt(5))))/2)
True
sage: bool(-1/2*sqrt(2*sqrt(5) + 6) + 1 == (1 - sqrt(5))/2)
True
sage: bool(1/2*sqrt(2*sqrt(5) + 6) + 1 == (3 + sqrt(5))/2)
True

First, it seems that the solutions provided by Sage are correct:

sage: S = [s.rhs() for s in h(x).solve(x)]
sage: S
[-1/2*sqrt(-2*sqrt(5) + 10) - 1,
 1/2*sqrt(-2*sqrt(5) + 10) - 1,
 -1/2*sqrt(2*sqrt(5) + 6) + 1,
 1/2*sqrt(2*sqrt(5) + 6) + 1]
sage: [h(s).full_simplify() for s in S]
[0, 0, 0, 0]

Then, it seems that the numerical values are the same as the ones provided by wolfram:

sage: [RR(s) for s in S]
[-2.17557050458495, 0.175570504584946, -0.618033988749895, 2.61803398874989]

Actually, they are not written the same way but they are equal:

sage: bool(-1/2*sqrt(-2*sqrt(5) + 10) - 1 == (-2 - sqrt(2*(5 - sqrt(5))))/2)
True
sage: bool(1/2*sqrt(-2*sqrt(5) + 10) - 1  == (-2 + sqrt(2*(5 - sqrt(5))))/2)
True
sage: bool(-1/2*sqrt(2*sqrt(5) + 6) + 1 == (1 - sqrt(5))/2)
True
sage: bool(1/2*sqrt(2*sqrt(5) + 6) + 1 == (3 + sqrt(5))/2)
True

So, without having to dig into its closed source code, we can see that wolfram is not completely wrong in that case :D That said, it is not advised to use alpha releases for production :P