Some weeks ago, we were working on a (dirty) patch to be able to compute
inverse Laplace transforms of exponentials in Octsympy
(https://github.com/cbm755/octsympy/pull/261#issuecomment-122077921). The
trick is based on the linearity of the inverse Laplace transform and on the
expansion of all terms to be transformed in terms of exponentials. In what
follows, a code snippet is attached to illustrate its feasibility:
import sympy as sp
from sympy.abc import t, s, c
F=5*sp.exp(-3*s)+2*sp.exp(c*s)-2*sp.exp(-2*s)/s
f=0; a_ = sp.Wild("a_"); b_ = sp.Wild("b_")
Fr=F.rewrite(sp.exp)
if type(Fr)==sp.Add:
terms=Fr.expand().args
else:
terms=(Fr,)
for term in terms:
#compute the Laplace transform for each term
r=sp.simplify(term).match(a_*sp.exp(b_))
if r!=None and sp.diff(term,s)!=0:
rlist=list(r.values())
modulus=rlist[0]
phase=rlist[1]/s
# if a is constant and b/s is constant
if sp.diff(modulus,s)==0 and sp.diff(phase,s)==0:
f = f + modulus*sp.DiracDelta(t+phase)
else:
f = f + sp.Subs(sp.inverse_laplace_transform(term, s, t),sp.
Heaviside(t),1).doit()
elif sp.diff(term,s)==0:
f = f + term*sp.DiracDelta(t)
else:
f = f + sp.Subs(sp.inverse_laplace_transform(term, s, t),sp.
Heaviside(t),1).doit()
I hope that this approach could be helpful to handle Dirac deltas in
the context of (i)Laplace transforms.
On Wednesday, 8 July 2015 09:19:56 UTC+2, Kalevi Suominen wrote:
>
>
>
> On Tuesday, July 7, 2015 at 9:31:41 PM UTC+3, Aaron Meurer wrote:
>>
>> More generally, SymPy's integrator doesn't know how to return delta
>> functions. It only knows how to deal with delta functions as arguments
>> to integrals.
>
>
> It would not be too hard to extend SymPy's integrator to return delta
> functions,
> their derivatives and even other tempered distributions. They can be
> represented
> as boundary values of analytic functions provided a suitable interface is
> defined.
> I have discussed this in a slightly different connection in #9483.
>
> There are more details in the attachment.
>
>
--
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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sympy/4c84d52b-894e-4bc8-bb0f-e187d69213ec%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.