4

Bug introduced in 9.0 or earlier and fixed in 11.3


Reduce[1/Sqrt[x] == x + 1/(Sqrt[2] + Sqrt[3]), x]

the output is unreadable and include the symbol Reduce`CADAlgVar[1].

kirma
  • 19,056
  • 1
  • 51
  • 93
matrix42
  • 6,996
  • 2
  • 26
  • 62

2 Answers2

7

Restrict the domain to Reals

$Version

"10.2.0 for Mac OS X x86 (64-bit) (July 7, 2015)"

eqn = 1/Sqrt[x] == x + 1/(Sqrt[2] + Sqrt[3]);

sol = Reduce[eqn, x, Reals] // ToRules

{x -> Root[1 - 10*#1^2 - 4*#1^3 + #1^4 + 20*#1^5 + 6*#1^6 - 10*#1^8 - 4*#1^9 + #1^12 & , 4]^2}

eqn /. sol // FullSimplify

True

sol // N

{x -> 0.800116}

eqn /. (sol // N)

True

EDIT: Update for v11.3

$Version

(* "11.3.0 for Mac OS X x86 (64-bit) (March 7, 2018)" *)

eqn = 1/Sqrt[x] == x + 1/(Sqrt[2] + Sqrt[3]);

sol1 = Reduce[1/Sqrt[x] == x + 1/(Sqrt[2] + Sqrt[3]), x] // ToRules

(* {x -> Root[{-3 + #1^2 &, -2 + #2^2 &, -1 + 5 #3 - 2 #1 #2 #3 + 2 #1 #3^2 - 
      2 #2 #3^2 + #3^3 &}, {2, 2, 1}]} *)

Verifying,

eqn /. sol1 // RootReduce

(* True *)

Restricting the domain to Reals gives the same result as with the earlier version

sol2 = Reduce[1/Sqrt[x] == x + 1/(Sqrt[2] + Sqrt[3]), x, Reals] // ToRules

(* {x -> Root[
   1 - 10 #1^2 - 4 #1^3 + #1^4 + 20 #1^5 + 6 #1^6 - 10 #1^8 - 
     4 #1^9 + #1^12 &, 4]^2} *)

The different Root objects are equivalent

(x /. sol1) == (x /. sol2) // RootReduce

(* True *)
Bob Hanlon
  • 157,611
  • 7
  • 77
  • 198
0

The following works in MMA 11.3.

ToRadicals[Reduce[1/Sqrt[x] == x + 1/(Sqrt[2] + Sqrt[3]), x]]

x == 2/3 (Sqrt[2] - Sqrt[3]) + 1/( 3 (2/(27 - 22 Sqrt[2] + 18 Sqrt[3] + 3 Sqrt[3 (27 - 44 Sqrt[2] + 36 Sqrt[3])]))^(1/3)) + 1/3 (5 - 2 Sqrt[6]) (2/( 27 - 22 Sqrt[2] + 18 Sqrt[3] + 3 Sqrt[3 (27 - 44 Sqrt[2] + 36 Sqrt[3])]))^(1/3)

user64494
  • 26,149
  • 4
  • 27
  • 56