May be using `as_int` with the second argument in `RisingFactorial` should
solve the problem. Just an idea.

With Regards,
Gagandeep Singh
Github - https://github.com/czgdp1807
LinkedIn - https://www.linkedin.com/in/czgdp1807

On Thu, 7 May, 2020, 2:55 AM Aaron Meurer, <[email protected]> wrote:

> Here is the error
>
> >>> inverse_laplace_transform(0.5/(.5*s+1)*1/s, s, t)
> Traceback (most recent call last):
>   File "./sympy/polys/polyutils.py", line 211, in
> _parallel_dict_from_expr_if_gens
>     monom[indices[base]] = exp
> KeyError: RisingFactorial(_t + 1, 2.0)
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
>   File "./sympy/polys/partfrac.py", line 82, in apart
>     (P, Q), opt = parallel_poly_from_expr((P, Q), x, **options)
>   File "./sympy/polys/polytools.py", line 4301, in parallel_poly_from_expr
>     return _parallel_poly_from_expr(exprs, opt)
>   File "./sympy/polys/polytools.py", line 4354, in _parallel_poly_from_expr
>     reps, opt = _parallel_dict_from_expr(exprs, opt)
>   File "./sympy/polys/polyutils.py", line 332, in _parallel_dict_from_expr
>     reps, gens = _parallel_dict_from_expr_if_gens(exprs, opt)
>   File "./sympy/polys/polyutils.py", line 217, in
> _parallel_dict_from_expr_if_gens
>     "the set of generators." % factor)
> sympy.polys.polyerrors.PolynomialError: RisingFactorial(_t + 1, 2.0)
> contains an element of the set of generators.
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "./sympy/integrals/transforms.py", line 1293, in
> inverse_laplace_transform
>     return InverseLaplaceTransform(F, s, t, plane).doit(**hints)
>   File "./sympy/integrals/transforms.py", line 121, in doit
>     self.function_variable, self.transform_variable, **hints)
>   File "./sympy/integrals/transforms.py", line 1245, in _compute_transform
>     return _inverse_laplace_transform(F, s, t, self.fundamental_plane,
> **hints)
>   File "./sympy/integrals/transforms.py", line 206, in wrapper
>     res = func(*args, **kwargs)
>   File "./sympy/integrals/transforms.py", line 1172, in
> _inverse_laplace_transform
>     needeval=True, noconds=False)
>   File "./sympy/integrals/transforms.py", line 875, in
> inverse_mellin_transform
>     return InverseMellinTransform(F, s, x, strip[0],
> strip[1]).doit(**hints)
>   File "./sympy/integrals/transforms.py", line 121, in doit
>     self.function_variable, self.transform_variable, **hints)
>   File "./sympy/integrals/transforms.py", line 819, in _compute_transform
>     return _inverse_mellin_transform(F, s, x, strip, **hints)
>   File "./sympy/integrals/transforms.py", line 206, in wrapper
>     res = func(*args, **kwargs)
>   File "./sympy/integrals/transforms.py", line 746, in
> _inverse_mellin_transform
>     h = hyperexpand(G)
>   File "./sympy/simplify/hyperexpand.py", line 2491, in hyperexpand
>     return f.replace(hyper, do_replace).replace(meijerg, do_meijer)
>   File "./sympy/core/basic.py", line 1508, in replace
>     rv = bottom_up(self, rec_replace, atoms=True)
>   File "./sympy/simplify/simplify.py", line 1152, in bottom_up
>     rv = F(rv)
>   File "./sympy/core/basic.py", line 1489, in rec_replace
>     new = _value(expr, result)
>   File "./sympy/core/basic.py", line 1437, in <lambda>
>     _value = lambda expr, result: value(*expr.args)
>   File "./sympy/simplify/hyperexpand.py", line 2488, in do_meijer
>     allow_hyper, rewrite=rewrite, place=place)
>   File "./sympy/simplify/hyperexpand.py", line 2373, in _meijergexpand
>     t, 1/z0)
>   File "./sympy/simplify/hyperexpand.py", line 2346, in do_slater
>     t, premult, au, rewrite=None)
>   File "./sympy/simplify/hyperexpand.py", line 2042, in _hyperexpand
>     formula = try_lerchphi(func)
>   File "./sympy/simplify/hyperexpand.py", line 1783, in try_lerchphi
>     part = apart(numer/denom, t)
>   File "./sympy/utilities/decorator.py", line 36, in threaded_func
>     return func(expr, *args, **kwargs)
>   File "./sympy/polys/partfrac.py", line 85, in apart
>     raise PolynomialError(msg)
> sympy.polys.polyerrors.PolynomialError: RisingFactorial(_t + 1, 2.0)
> contains an element of the set of generators.
>
> It looks like somewhere in the integration algorithm it creates
> RisingFactorial(t + 1, 2.0) expecting it to be converted to a
> polynomial.  But this only works if the second argument is an integer,
> not a float
>
> >>> RisingFactorial(t + 1, 2)
> (t + 1)*(t + 2)
> >>> RisingFactorial(t + 1, 2.0)
> RisingFactorial(t + 1, 2.0)
>
> I would suggest opening an issue for this.
>
> Aaron Meurer
>
> On Wed, May 6, 2020 at 3:00 PM Oscar Benjamin
> <[email protected]> wrote:
> >
> > Hi Javier,
> >
> > I'm not sure exactly the problem with the example you showed. I think
> > it's a bug somewhere.
> >
> > It is usually better not to use floats in sympy. With exact rational
> > numbers your example works for me:
> >
> > In [17]: inverse_laplace_transform(S.Half/(S.Half*s+1)*1/s, s, t)
> > Out[17]:
> >         -2⋅t
> > θ(t)   ℯ    ⋅θ(t)
> > ──── - ─────────
> >  2         2
> >
> >
> > Oscar
> >
> > On Wed, 6 May 2020 at 18:36, Javier Arantegui
> > <[email protected]> wrote:
> > >
> > > Hello!
> > >
> > > I'm using Sympy 1.5.1 and Python is 3.7.7. Both installed using
> Anaconda.
> > >
> > > I have tried to do an inverse Laplace transform and I got an error:
> > >
> > > inverse_laplace_transform(0.5/(.5*s+1)*1/s, s, t)
> > >
> > > The error message is quite long, tell me if you need it.
> > >
> > > I spent 10 minutes in front of my students trying to think what was
> wrong...
> > >
> > > Finally, I was able to solve it with an easy change:
> > >
> > > inverse_laplace_transform(0.5*2/(2*(.5*s+1))*1/s, s, t)
> > >
> > >
> > > Best regards,
> > >
> > > Javier
> > >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups "sympy" group.
> > > To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected].
> > > To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/aa5c4270-6c71-485b-8354-b5ea39e9c380%40googlegroups.com
> .
> >
> > --
> > You received this message because you are subscribed to the Google
> Groups "sympy" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected].
> > To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/CAHVvXxQkmTvjGMWwe40mw3EFrk2eF2%2BY3hjiPpT9Xde8OYJb0A%40mail.gmail.com
> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/CAKgW%3D6LgE8sggDZFK94_EGbrgOSfq%3Dx1GpEjnAx0ng7zCzKybQ%40mail.gmail.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAAvS0gWEtDnsHn5%2BpzRZx5ap1AiXPhdi1UuvgiUpdPYaLCp0nA%40mail.gmail.com.

Reply via email to