Re: Integration of piecewise function
- To: mathgroup at smc.vnet.net
- Subject: [mg52485] Re: [mg52463] Integration of piecewise function
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Mon, 29 Nov 2004 01:22:32 -0500 (EST)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
Define the function with UnitStep Clear[X,w,c]; X[w_] := UnitStep[w]-2UnitStep[w-2]+UnitStep[w-4]; Plot[X[w],{w,-1,5}, PlotStyle->RGBColor[1, 0, 0]]; At the discontinuities, the limit is from the right X /@ {0,2,4} {1,-1,0} Plot[Evaluate[Integrate[X[t], {t,-Infinity,w}]],{w,-1,5}, PlotStyle->RGBColor[1, 0, 0]]; Integrate[X[w],{w,-Infinity,Infinity}] 0 More generally, for the integral from w1 to w2 with w1<=w2 int = Integrate[X[w],{w,-Infinity,w2}]- Integrate[X[w],{w,-Infinity,w1}] (-(w1 - 4))*UnitStep[w1 - 4] + 2*(w1 - 2)*UnitStep[w1 - 2] - w1*UnitStep[w1] + (w2 - 4)*UnitStep[w2 - 4] - 2*(w2 - 2)*UnitStep[w2 - 2] + w2*UnitStep[w2] Note that the integral is evaluated as the difference of two integrals. This avoids problems in evaluating the results at the discontinuities such as Integrate[X[w],{w,w1,w2}]/. {{w1->0, w2->8},{w1->2, w2->8},{w1->4, w2->8}} {8,-14,4} The actual values are int /. {{w1->0, w2->8},{w1->2, w2->8},{w1->4, w2->8}} {0,-2,0} Cases for different ranges of w1 and w2 (w1 <= w2) can be evaluated using Simplify c[w_] := (#[[1]]<=w<#[[2]])& /@ Partition[{-Infinity,0,2,4,Infinity},2,1]; cond = And@@#&/@Simplify[ Select[ Flatten[ Outer[List,c[w1],c[w2]],1], #[[1,1]]<=#[[2,1]]&], Element[{w1,w2}, Reals]]; Simplify[Table[ {Simplify[int,cond[[n]]],cond[[n]]}, {n,Length[cond]}] //. {s___,{0, c1_}, m___,{0,c2_},f___}:> {s,{0,c1||c2},m,f}] {{0, (w2 >= 4 && (w1 >= 4 || w1 < 0)) || (w1 < 0 && w2 < 0)}, {w2, w1 < 0 && Inequality[0, LessEqual, w2, Less, 2]}, {4 - w2, w1 < 0 && Inequality[2, LessEqual, w2, Less, 4]}, {w2 - w1, Inequality[0, LessEqual, w1, Less, 2] && Inequality[0, LessEqual, w2, Less, 2]}, {-w1 - w2 + 4, Inequality[0, LessEqual, w1, Less, 2] && Inequality[2, LessEqual, w2, Less, 4]}, {-w1, Inequality[0, LessEqual, w1, Less, 2] && w2 >= 4}, {w1 - w2, Inequality[2, LessEqual, w1, Less, 4] && Inequality[2, LessEqual, w2, Less, 4]}, {w1 - 4, Inequality[2, LessEqual, w1, Less, 4] && w2 >= 4}} Similar results are available much more directly in version 5.1 using PiecewiseExpand Simplify[PiecewiseExpand[int], w1<=w2] Piecewise[{{w1 - 4, Inequality[2, LessEqual, w1, Less, 4] && w2 >= 4}, {-w1, Inequality[0, LessEqual, w1, Less, 2] && w2 >= 4}, {4 - w2, w1 < 0 && Inequality[2, LessEqual, w2, Less, 4]}, {-w1 - w2 + 4, Inequality[0, LessEqual, w1, Less, 2] && Inequality[2, LessEqual, w2, Less, 4]}, {w1 - w2, Inequality[2, LessEqual, w1, Less, 4] && Inequality[2, LessEqual, w2, Less, 4]}, {w2, w1 < 0 && Inequality[0, LessEqual, w2, Less, 2]}, {w2 - w1, Inequality[0, LessEqual, w1, Less, 2] && Inequality[0, LessEqual, w2, Less, 2]}}] However, note that one case is missing when using PiecewiseExpand. Bob Hanlon > > From: Riccardo <ricky at nospam.it> To: mathgroup at smc.vnet.net > Date: 2004/11/28 Sun AM 01:06:46 EST > To: mathgroup at smc.vnet.net > Subject: [mg52485] [mg52463] Integration of piecewise function > > <inviati & spediti> > > I just defined a function like this: > > X[\[Omega]_] := 0 /; \[Omega] < 0; > X[\[Omega]_] := 1 /; 0 < \[Omega] < 2; > X[\[Omega]_] := -1 /; 2 < \[Omega] < 4; > X[\[Omega]_] := 0 /; \[Omega] > 4; > > Is it possible now to integrate it from -infinity to +infinity? I've > already tried and it doesn't give me the result. > Thanks. > > Luca > >