Repository: sympy/sympy

Issue:
Integral fails to evaluate
Tested with sympy 1.4, issue repros on https://live.sympy.org/

```integrate(x**(0.5)*(1+x))```
crashes with ValueError: Non-suitable parameters.

The following both evaluate:
```integrate(x**(1/2)*(1+x))```
```integrate( expand(x**0.5*(1+x)) )```

This is the result from live.sympy.org:
```
>>> integrate(x**(0.5)*(1+x))
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/integrals/integrals.py", line 1477, in integrate
    return integral.doit(**doit_flags)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/integrals/integrals.py", line 541, in doit
    function, xab[0], **eval_kwargs)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/integrals/integrals.py", line 1012, in _eval_integral
    h = meijerint_indefinite(g, x)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/integrals/meijerint.py", line 1621, in meijerint_indefinite
    res = _meijerint_indefinite_1(f.subs(x, x + a), x)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/integrals/meijerint.py", line 1686, in _meijerint_indefinite_1
    r = hyperexpand(r.subs(t, a*x**b), place=place)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/simplify/hyperexpand.py", line 2491, in hyperexpand
    return f.replace(hyper, do_replace).replace(meijerg, do_meijer)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/core/basic.py", line 1483, in replace
    rv = bottom_up(self, rec_replace, atoms=True)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/simplify/simplify.py", line 1087, in bottom_up
    rv = F(rv)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/core/basic.py", line 1468, in rec_replace
    new = _value(expr, result)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/core/basic.py", line 1417, in <lambda>
    _value = lambda expr, result: value(*expr.args)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/simplify/hyperexpand.py", line 2488, in do_meijer
    allow_hyper, rewrite=rewrite, place=place)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/simplify/hyperexpand.py", line 2373, in _meijergexpand
    t, 1/z0)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/simplify/hyperexpand.py", line 2299, in do_slater
    t, premult, bh, rewrite=None)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/simplify/hyperexpand.py", line 2053, in _hyperexpand
    ops += devise_plan(func, formula.func, z0)
  File "/base/data/home/apps/s~sympy-live-hrd/57.417397408462217066/sympy/sympy/simplify/hyperexpand.py", line 1630, in devise_plan
    raise ValueError('Non-suitable parameters.')```

Discussion:

Patch:
diff --git a/doc/src/modules/physics/continuum_mechanics/beam_problems.rst b/doc/src/modules/physics/continuum_mechanics/beam_problems.rst
index ba05e4bc73..fe85b72625 100644
--- a/doc/src/modules/physics/continuum_mechanics/beam_problems.rst
+++ b/doc/src/modules/physics/continuum_mechanics/beam_problems.rst
@@ -357,19 +357,20 @@ applied from the mid till the end of the beam.
     2.75⋅<x>  + 1.5⋅<x - 3>  - ────────── - ──────── + 10.75⋅<x - 6>
                                    2           6
 >>> b.slope()
-                                       3          4
-             2              1   <x - 3>    <x - 3>                 2
-    1.375⋅<x>  + 1.5⋅<x - 3>  - ──────── - ──────── + 5.375⋅<x - 6>  - 15.6
-                                   2          24
-    ───────────────────────────────────────────────────────────────────────
-                                      E⋅I
+                                                      4
+             2              1              3   <x - 3>                 2
+    1.375⋅<x>  + 1.5⋅<x - 3>  - 0.5⋅<x - 3>  - ──────── + 5.375⋅<x - 6>  - 15.6
+                                                  24
+    ───────────────────────────────────────────────────────────────────────────
+                                        E⋅I
+
 >>> b.deflection()
-                                                              4          5
-                                   3               2   <x - 3>    <x - 3>                            3
-    -15.6⋅x + 0.458333333333333⋅<x>  + 0.75⋅<x - 3>  - ──────── - ──────── + 1.79166666666667⋅<x - 6>
-                                                          8         120
-    ──────────────────────────────────────────────────────────────────────────────────────────────────
-                                                   E⋅I
+                                                                               5
+                                   3               2                4   <x - 3>                            3
+    -15.6⋅x + 0.458333333333333⋅<x>  + 0.75⋅<x - 3>  - 0.125⋅<x - 3>  - ──────── + 1.79166666666667⋅<x - 6>
+                                                                          120
+    ────────────────────────────────────────────────────────────────────────────────────────────────────────
+                                                      E⋅I
 
 Example 4
 ---------
diff --git a/sympy/integrals/integrals.py b/sympy/integrals/integrals.py
index 81e5288c82..7cde17a290 100644
--- a/sympy/integrals/integrals.py
+++ b/sympy/integrals/integrals.py
@@ -9,7 +9,7 @@
 from sympy.core.function import diff
 from sympy.core.logic import fuzzy_bool
 from sympy.core.mul import Mul
-from sympy.core.numbers import oo, pi
+from sympy.core.numbers import oo, pi, Float
 from sympy.core.relational import Ne
 from sympy.core.singleton import S
 from sympy.core.symbol import (Dummy, Symbol, Wild)
@@ -396,6 +396,12 @@ def doit(self, **hints):
         if not hints.get('integrals', True):
             return self
 
+        if self.has(Float):
+            fvals = self.atoms(Float)
+            fsubs = {f: Dummy() for f in fvals}
+            rsubs = {s: f for f, s in fsubs.items()}
+            return self.subs(fsubs).doit(**hints).subs(rsubs)
+
         deep = hints.get('deep', True)
         meijerg = hints.get('meijerg', None)
         conds = hints.get('conds', 'piecewise')


Test patch:
diff --git a/sympy/integrals/tests/test_integrals.py b/sympy/integrals/tests/test_integrals.py
index 0eacebff0e..a107e67dbb 100644
--- a/sympy/integrals/tests/test_integrals.py
+++ b/sympy/integrals/tests/test_integrals.py
@@ -5,7 +5,7 @@
     integrate, Interval, Lambda, LambertW, log, Matrix, Max, meijerg, Min, nan,
     Ne, O, oo, pi, Piecewise, polar_lift, Poly, polygamma, Rational, re, S, Si, sign,
     simplify, sin, sinc, SingularityFunction, sqrt, sstr, Sum, Symbol, summation,
-    symbols, sympify, tan, trigsimp, Tuple, lerchphi, exp_polar, li, hyper
+    symbols, sympify, tan, trigsimp, Tuple, lerchphi, exp_polar, li, hyper, Float
 )
 from sympy.core.expr import unchanged
 from sympy.functions.elementary.complexes import periodic_argument
@@ -1363,7 +1363,7 @@ def test_issue_8368():
 
 def test_issue_8901():
     assert integrate(sinh(1.0*x)) == 1.0*cosh(1.0*x)
-    assert integrate(tanh(1.0*x)) == 1.0*x - 1.0*log(tanh(1.0*x) + 1)
+    assert Eq(integrate(tanh(1.0*x)), 1.0*x - 1.0*log(tanh(1.0*x) + 1))
     assert integrate(tanh(x)) == x - log(tanh(x) + 1)
 
 
@@ -1401,8 +1401,8 @@ def test_issue_11876():
 
 
 def test_issue_4950():
-    assert integrate((-60*exp(x) - 19.2*exp(4*x))*exp(4*x), x) ==\
-        -2.4*exp(8*x) - 12.0*exp(5*x)
+    assert Eq(integrate((-60*exp(x) - 19.2*exp(4*x))*exp(4*x), x),
+        -2.4*exp(8*x) - 12.0*exp(5*x))
 
 
 def test_issue_4968():
@@ -1671,6 +1671,15 @@ def test_issue_2975():
     assert integrate(1/(y**2+C)**(S(3)/2), (y, -w/2, w/2)) == w/(C**(S(3)/2)*sqrt(1 + w**2/(4*C)))
 
 
+
+def test_issue_17119():
+    assert integrate(x**(0.5)*(1+x)) == Float(2/3)*x**Float(3/2)+Float(2/5)*x**Float(5/2)
+
+
+def test_issue_14431():
+    assert integrate((x-t)**(-1/2)*t, (t,0,x)) == Float(4/3)*x**Float(3/2)
+
+
 def test_issue_7827():
     x, n, M = symbols('x n M')
     N = Symbol('N', integer=True)
diff --git a/sympy/integrals/tests/test_meijerint.py b/sympy/integrals/tests/test_meijerint.py
index 3d0274d75b..e7da4b316b 100644
--- a/sympy/integrals/tests/test_meijerint.py
+++ b/sympy/integrals/tests/test_meijerint.py
@@ -709,7 +709,7 @@ def test_issue_10681():
     f = integrate(r**2*(R**2-r**2)**0.5, r, meijerg=True)
     g = (1.0/3)*R**1.0*r**3*hyper((-0.5, Rational(3, 2)), (Rational(5, 2),),
                                   r**2*exp_polar(2*I*pi)/R**2)
-    assert RR.almosteq((f/g).n(), 1.0, 1e-12)
+    assert RR.almosteq((f/g).n().simplify(), 1.0, 1e-12)
 
 def test_issue_13536():
     from sympy import Symbol