Re: Merging InterpolationFunctions
- To: mathgroup at smc.vnet.net
- Subject: [mg57308] Re: Merging InterpolationFunctions
- From: Kerry Kim <kjkim at u.washington.edu>
- Date: Tue, 24 May 2005 05:12:45 -0400 (EDT)
- Organization: University of Washington
- References: <200505200843.EAA00614@smc.vnet.net> <d6peal$1gq$1@smc.vnet.net> <d6s4gi$6q6$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Thanks for your help. I'm trying to avoid combining the interpolatingFunctions with an if (or Which) statement because I have several hundred to combine. I was wondering if anyone knows if it's possible to go into the InterpolatingFunction structure and directly modify (or create) an InterpolatingFunction out of two others. Though if InterpolatingFunction doesn't allow discontinuities in the derivatives, this won't work (I'm using version 5.0 unfortunately and can't use Piecewise). Thanks! -Kerry dh wrote: > Hi Kerry and Chris, > If your functions are only C0 at the boundary, then > FunctionInterpolation will distort the merged function near the > boundary. In version 5.1 there is "Piecewise" that takes care of this > problem. > > However, depending of what you want to do with the merged function, > there may be a much simplier solution: > a3[x_]= If[x<=10,a1[x],a2[x]] > > Sincerely, Daniel > > Chris Chiasson wrote: > >>You can use UnitStep (or Which) and FunctionInterpolation to make a >>new interpolating function. >> >>On 5/20/05, Kerry Kim <kjkim at u.washington.edu> wrote: >> >> >>>Is there a way to combine two InterpolatingFunctions which share a >>>common boundary, and are C0 continuous at the common boundary (the >>>values are continuous but the derivatives are NOT continuous at the >>>common boundary)? >>> >>>For example, I'm trying to combine the following: >>> >>>a1=NDSolve[large differential equation system, {t,0,10}] >>> >>>{{e2f -> InterpolatingFunction[{{0., 10.}}, <>], E2F -> \ >>>InterpolatingFunction[{{0., 10.}}, <>], etc...}} >>> >>>a2=NDSolve[large differential equation system, {t,10,20}] >>>{{e2f -> InterpolatingFunction[{{10., 20.}}, <>], E2F -> \ >>>InterpolatingFunction[{{10., 20.}}, <>], etc...}} >>> >>>and the combine a1 and a2 so that I get the following: >>>a3=Merge[a1,a2] >>>{{e2f -> InterpolatingFunction[{{0., 20.}}, <>], E2F -> \ >>>InterpolatingFunction[{{0., 20.}}, <>], etc...}} >>> >>>I've read that the InterpolatingFunction internals may be version >>>specific, and I can't quite infer what they all mean. I'm using >>>Mathematica version 5.0 >>> >>>Thank you! >>>-Kerry Kim >>> >>> >> >> >> >
- References:
- Merging InterpolationFunctions
- From: Kerry Kim <kjkim@u.washington.edu>
- Merging InterpolationFunctions