## #2743 solve does not correctly solve

None
closed
nobody
5
2014-06-05
2014-06-02
No

`solve([9.25=sqrt(2*h/10)+h/340],[h]);`
returns `[h=−(340*sqrt(h)−629*5^(3/2))/sqrt(5)]`
Notice sqrt(h) in the right side .
wolframalpha returns `h = -85 (4 sqrt(1785)-173)` ~~ 340.25

wxMaxima version: 13.4.0
Maxima version: 5.33.0
Maxima build date: 2014-05-16 22:05:41
Host type: i686-pc-linux-gnu
Lisp implementation type: GNU Common Lisp (GCL)
Lisp implementation version: GCL 2.6.10

## Discussion

• Robert Dodier - 2014-06-05
• labels: --> solve
• Description has changed:

Diff:

```--- old
+++ new
@@ -1,7 +1,7 @@
-solve([9.25=sqrt(2*h/10)+h/340],[h]);
-returns [h=−(340*sqrt(h)−629*5^(3/2))/sqrt(5)]
+`solve([9.25=sqrt(2*h/10)+h/340],[h]);`
+returns `[h=−(340*sqrt(h)−629*5^(3/2))/sqrt(5)]`
Notice sqrt(h) in the right side .
-wolframalpha returns h = -85 (4 sqrt(1785)-173) ~~ 340.25
+wolframalpha returns `h = -85 (4 sqrt(1785)-173)` ~~ 340.25
-------------------------------------------------------------
wxMaxima version: 13.4.0
Maxima version: 5.33.0
```
• status: open --> closed

• Robert Dodier - 2014-06-05

I agree that the return value of `solve` is less useful in this case. It is valid, in a sense -- if you solve the equation `h = ... sqrt(h) ...` by some means (e.g., numerically via `find_root`) you'll get the answer.

In this case, `to_poly_solve` can find the result while `solve` cannot. I agree that this is a needless difficulty for users. Anyway here it is:

```(%i1) load (to_poly_solve) \$
(%i2) to_poly_solve ([9.25 = sqrt(2*h/10) + h/340], [h]);
3/2           3/2
(%o2)         %union([h = 14705 - 4 sqrt(3) 5    sqrt(7) 17   ])
(%i3) float (%);
(%o3)                   %union([h = 340.2514814912247])
```

I'm going to close this report since there is not an identifiable bug in `solve` here. It is well understand by the developers that `solve` should be strengthened. Thank you for your patience and understanding.