Re: Finding bounds of the domain of a Piecewise function
- To: mathgroup at smc.vnet.net
- Subject: [mg72903] Re: Finding bounds of the domain of a Piecewise function
- From: dh <dh at metrohm.ch>
- Date: Wed, 24 Jan 2007 17:41:37 -0500 (EST)
- References: <ep4k3m$pbl$1@smc.vnet.net>
Hi,
if your definition is the only one for f, it can be get by:
Downvalues[f]. Assuming further, that your function is defined as below,
then the right side of all your inequalities can be extracted by:
DownValues[f][[1, 2, 1, All, 2, 3]]
wrapping Max around this will give what you want.
Daniel
. wrote:
> Hi All,
>
> I have a routine that builds up a complicated Piecewise function, f[x].
> All the pieces in the piecewise are restricted to some finite range
> (the ranges for each piece may be very different). I want to find the
> absolute extreme x values which will give me a non-zero f[x].
>
> So have something along the lines of:
>
> f[x_]:=Piecewise[{
> {f1[x], a <= x <= b},
> {f2[x], c <= x <= d},
> {f3[x], e <= x <= g}
> }]
>
> We can assume that a < b, c < d and e < g (all bounds are real and have
> a numeric value). We can also assume that the ranges are
> non-overlapping (it seems PiecewiseExpand takes care of that).
> However, we can *not* assume that the segments are sorted by the x
> range. Note also that the real problem will have many more segments
> than just 3.
>
> For the purposes of discussion, assume that Max[b,d,g] == b. I want to
> find a robust and reasonably fast way of extracting b.
>
> One idea is:
> Max[
> Reap[
> f[x][[1,All,2]]/.{r_?NumericQ :> Sow[r]}
> ][[2]]
> ]
>
> However, this seems like a bit of a hack (it is very much limited to
> the details of this particular problem). Is there a better way which
> doesn't require quite so many assumptions?
>
> Thanks!
>