Two suggestions: First, for the numerical integration of your existing
function, you might try
NIntegrate[f[x],{x,-1,17},Method->MonteCarlo]
which performs the numerical integration using a different approach.
Second, you might redefine your function using the extremely handy UnitStep
function.
g[x_]:=UnitStep[x + 7]Sqrt[ 1 - ( (x - 3)/10)^2 ] +
UnitStep[x - 13](-Sqrt[ 1 - ( (x - 3)/10)^2 ]);
This function is identical to f[x]. You can now integrate g[x] symbolically.
Seth J. Chandler
Associate Professor of Law
University of Houston Law Center
"Viorel Ontalus" <vio2 at mail.lehigh.edu> wrote in message
news:8j9ddk$50v 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 !!
>
>
>
>
>
>
>
>
>