MathGroup Archive 2000

[Date Index] [Thread Index] [Author Index]

Search the Archive

RE: Piecewise functions definition and usage

  • To: mathgroup at smc.vnet.net
  • Subject: [mg24142] RE: [mg24098] Piecewise functions definition and usage
  • From: "David Park" <djmp at earthlink.net>
  • Date: Wed, 28 Jun 2000 02:11:57 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Viorel,

Whenever you plan to integrate or differentiate piecewise functions use the
UnitStep function. In fact, UnitStep is so useful, and the multiple
conditional definition method is so limited, that it is a bit of a shame
that the Mathematica Book often leads people down the conditional definition
path. UnitStep is a regular part of Version 4, but a standard package in
earlier versions. So, here is how to do your problem using UnitStep. (I
think that you made an error in the second conditional using 3 instead of
10. An alternative method of expressing the condition is that the formula
applies for the range -7 < x < 13.) Using UnitStep we just turn the formula
on at x == -7 and off at x == 13.

f[x_] := Sqrt[ 1 - ( (x - 3)/10)^2  ](UnitStep[x + 7] - UnitStep[x - 13])

The following gives a warning message because NIntegrate has trouble with
the kink in the curve, but gives an approximately correct answer.

NIntegrate[f[x], {x, -1, 17}]
11.7447

This works better:
NIntegrate[f[x], {x, -1, 13}]
11.7446

You can actually obtain an exact answer using Mathematica.

Integrate[f[x], {x, -1, 17}]
N[%]
(2*Sqrt[21])/5 + (5*Pi)/2 + 5*ArcSin[2/5]
11.7446

Piecewise functions? Always think UnitStep.

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/


> -----Original Message-----
> From: Viorel Ontalus [mailto:vio2 at mail.lehigh.edu]
To: mathgroup at smc.vnet.net

>
> It seems I got into an area where Mathematica has some problems, and I
> hope somebody can give me a hint on how to go around these problems.
>
> 1.  I am trying to define a piecewise function and do some computations
> with it. When I integrate mathematica does not behave. Here is an simple
> example you can run and see what I am talking about
>
> Clear[f,x}
> f[x_] := Sqrt[ 1- ( (x-3)/10)^2  ] /;
> Abs[x-3]<10
> f[x_] := 0 /;
> Abs[x-3]>3 ;          (*this is a very simple piecewise function but one
> must be sure the Sqrt is from a positive # )
>
> NIntegrate[f[x],{x,-1,17}]   (* Here Mathematica goes nuts !!!*)
>
> Of course it gives an answer but if your program is more complex, then
> you never get an answer !!
> ( I tried to make the upper limit a variable  etc !!)
> Does anybody know how to avoid the error , or non convergence messages I
> get !!
>
>
>
> 2. For fun I tried the only reference from the book on piecewise
> functions:
> If[Abs[x-3]<10, f[x_]:=Sqrt[1- ( (x-3)/10)^2  ] , f[x_]:=0 ]
>
> This definition does not work !!
>
>
>
>
>
>
>
>
>
>



  • Prev by Date: RE: Resources for high school student?
  • Next by Date: Re: Unix Sound Problems
  • Previous by thread: Re: Piecewise functions definition and usage
  • Next by thread: Re: Piecewise functions definition and usage