Re: a question about the UnitStep function
- To: mathgroup at smc.vnet.net
- Subject: [mg58504] Re: a question about the UnitStep function
- From: Peter Pein <petsie at dordos.net>
- Date: Tue, 5 Jul 2005 01:57:43 -0400 (EDT)
- References: <da2msl$944$1@smc.vnet.net> <da5ibn$1qt$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Peter Pein schrieb: > Zhou Jiang schrieb: > >>Dear Mathgroup, >>I want to let Mathematica compute the convolution of two sqare waves. I did as follows >> >>f[x_]:=(UnitStep[x+1]-UnitStep[x-1])/2; >> >>integrand=f[z] f[x-z]; >> >>Assuming[Element[x, Reals], Integrate[integrand, {z, -Infinity, Infinity}]] >> >>Mathematica gave me the result as follows, >>((-1 + x) UnitStep[-1 + x] - x UnitStep[x] + (2 + x) UnitStep[2 + x])/4 >> >>I plot the result to check >> >>Plot[%,{x,-10,10}, PlotRange->All]; >> >>It is clear wrong since the convolution of two square waves should be convergent. Can anyone give me some help with the subtlties about the UnitStep function? Any thoughts are appriciable. >> >> > > > Piecewise works well: > > In[1]:= > fp[x_] := Piecewise[{{1, -1 <= x <= 1}}, 0]; > cv = Integrate[fp[z]* fp[x - z], {z, -Infinity, Infinity}] > Out[2]= > Piecewise[{{2 - x, 0 < x < 2}, > {2 + x, -2 < x <= 0}}, 0] Sorry, my eyes have been wide shut (again). These: In[1]:= f1[x_] := Piecewise[{{1/2, -1 <= x <= 1}}, 0]; Timing[Integrate[f1[z]*f1[z - x], {z, -Infinity, Infinity}]] Out[3]= {0.328 Second, Piecewise[{{(2 - x)/4, 0 < x < 2}, {(2 + x)/4, -2 < x <= 0]}}]} In[4]:= f2[x_] := Boole[-1 <= x <= 1]/2; Timing[Integrate[f2[z]*f2[z - x], {z, -Infinity, Infinity}]] Out[5]= {0.047 Second, Piecewise[{{(2 - x)/4, 0 < x < 2}, {(2 + x)/4, -2 < x <= 0]}}]} are of course the correct approaches. -- Peter Pein Berlin http://people.freenet.de/Peter_Berlin/