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