Re: Combining InterpolatingFunctions
- To: mathgroup at smc.vnet.net
- Subject: [mg107166] Re: Combining InterpolatingFunctions
- From: JH <jlucio at ubu.es>
- Date: Thu, 4 Feb 2010 06:28:56 -0500 (EST)
- References: <hk8nqs$8ne$1@smc.vnet.net>
On 2 feb, 09:30, Simon Pearce <Simon.Pea... at nottingham.ac.uk> wrote:
> Hi MathGroup,
>
> I have two sets of InterpolatingFunctions coming from two separate
> NDSolve's. One of them is defined over the region [0,rc] and the other
> over the region [rc,2]. I would like Mathematica to automatically choose
> the correct one when I use a replacement rule. If I could tell it never
> to extrapolate this would be perfect, though I don't seem to be able to.
>
> I've tried using FunctionInterpolation, but in order to keep my error
> terms down I had to increase the InterpolationPoints to 1000, which
> increases the calculation time from approximately .5sec to 1.5sec.
>
> Can anyone suggest an efficient way of combining InterpolatingFunctions
> without re-interpolating them? Or turning the extrapolation off!
>
> Thanks,
>
> Simon Pearce
Hello, Simon:
The other solutions are good, but be careful with the values of your
new function outside its domain [0, 2]. Note that Piecewise gives 0 by
default for values outside of the specified domain. So I suggest
something like this:
f[t_]:= Piecewise[{{f1[t], 0<=t<rc}, {f2[t], rc<=t<=2}}, Null]
or:
f[t_] := f1[t] /; 0 <= t < rc
f[t_] := f2[t] /;rc <= t <= 2
In both cases f[t] is undefined outside its domain [0, 2].
Bye,
JH