[Date Index]
[Thread Index]
[Author Index]
RE: Inverse/LaplaceTransform inconsistency?
*To*: mathgroup at smc.vnet.net
*Subject*: [mg35192] RE: [mg35180] Inverse/LaplaceTransform inconsistency?
*From*: "DrBob" <majort at cox-internet.com>
*Date*: Sat, 29 Jun 2002 01:37:52 -0400 (EDT)
*Reply-to*: <drbob at bigfoot.com>
*Sender*: owner-wri-mathgroup at wolfram.com
It looks like a problem to ME:
f[x_] = mf(UnitStep[x] - UnitStep[x - a]);
g[x_] = mg(UnitStep[x - (c - b/2)] - UnitStep[x - (c + b/2)]);
tff = LaplaceTransform[f[x], x, s];
tfg = LaplaceTransform[g[x], x, s];
Simplify[Apart[tff*tfg] == tff*tfg]
h = InverseLaplaceTransform[tff*tfg, s, x];
j = InverseLaplaceTransform[Apart[tff*tfg], s, x];
pos = {a > 0, b > 0, c > 0};
diff = FullSimplify[h - j, pos];
True
The difference simplifies in various cases as follows:
FullSimplify[diff, pos~Join~#] & /@ {{x >= c + b/2}, {x < c - b/2}}
{b mf mg, 0}
FullSimplify[diff /. x -> c - b/2, pos]
0
FullSimplify[diff, pos~Join~#] & /@ {{c - b/2 < x < c + b/2}}
{(1/2)*mf*mg*(b - 2*c + 2*x)}
So the two answers are equivalent ONLY when x <= c - b/2.
Simplify is completely ignorant about UnitStep, and FullSimplify isn't
much better.
Bobby Treat
-----Original Message-----
From: Michael Chang [mailto:michael_chang86 at hotmail.com]
To: mathgroup at smc.vnet.net
Subject: [mg35192] [mg35180] Inverse/LaplaceTransform inconsistency?
Hi everyone!
While running Mathematica 4.1 on WindozeXP, I've run across what
appears to be an inconsistency when using LaplaceTransform and
InverseLaplaceTransform on a very simple example.
I defined two square waves f[x] and g[x] as
In[1]:= f[x_]=mf(UnitStep[x]-UnitStep[x-a]);
In[2]:= g[x_]=mg(UnitStep[x-(c-b/2)]-UnitStep[x-(c+b/2)]);
The respective square waves are supposed to be centered about a/2 and
c, with widths of a and b, and magnitudes of mf and mg. Since I'll be
using LaplaceTransform, for simplicity, one can assume that
a,b,c,mf,mg are all >0.
Anyways, since I want to convolve these two (simple) functions, I've
decided to calculate the expressions
In[3]:= tff=LaplaceTransform[f[x],x,s]
In[4]:= tfg=LaplaceTransform[g[x],x,s]
which indeed yield correct results. In addition, the expression
returned by
In[5]:= soln1[x_]=InverseLaplaceTransform[tff*tfg,s,x]
is correct. (For a simple check, I tried
{a->1,b->2,c->10,mf->1,mg->1}, and verified graphically that my plot
was indeed a trapezoid.) However,
In[6]:= soln2[x_]=InverseLaplaceTransform[Apart[tff*tfg],s,x]
returns a completely different (and WRONG (IMHO)) answer involving
funny things such as UnitStep[]^2. This occurs even though, as
expected,
In[7]:= Simplify[Apart[tff*tfg]==tff*tfg]
Out[7]: True
Why is this? Am I in error here? Or is Mathematica in error?
Many thanks in advance!
Michael
Prev by Date:
**Re: Re: help on backtesting**
Next by Date:
**Re: Looking for a program that transforms Mathematica to Matlab expressions!!!**
Previous by thread:
**Inverse/LaplaceTransform inconsistency?**
Next by thread:
**sparse matrix**
| |