Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Integrating Interpolation functions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg89057] Re: Integrating Interpolation functions
  • From: dh <dh at metrohm.ch>
  • Date: Sat, 24 May 2008 03:58:05 -0400 (EDT)
  • References: <g15qk7$p9t$1@smc.vnet.net>


Hi Hugh,

see below, Daniel



Hugh Goyder wrote:

> Below I given an illustrative example where I have a two-dimensional

> interpolation function, f1[x,t], and I integrate over x and obtain a

> one-dimensional expression g1 which is an interpolation function

> depending on t.  The interpolation function g1 has a built-in argument

> of t ie it ends in [t].  I would prefer it to be a pure function so

> that I could use any variable instead of t, like the original

> interpolation function, f1.  I give a work-around which defines a new

> function independent of t. However, I feel that there should be

> 

> 1. A better way of getting the interpolation function from Integrate

> without the built in t

you put the "t" in yourself. If you want a pure function:

g1=Evaluate[Integrate[f1[x,#] ,{x,0,1}]]&

> 

> 2.A method of using NIntegrate rather than Integrate which should be

> able to use the information that the function is interpolated

the only guys who can do something about this are at Wolfram

> 

> 3. A method that would work on a product of interpolating functions

unfortunately, Mathematica can not Integrate functions of 

InterpolatingFunctions. But a work around is to re-interpolate like:

f3=FunctionInterpolation[f1[x,t]f2[x,t],{x,0,1},{t,0,1}]

f3 can now be integrated

> 

> Thanks

> 

> Hugh

> 

> 

> data1 = Table[{x, t, Exp[(-x)*t]}, {x, 0, 1, 0.1}, {t, 0, 1, 0.1}];

> 

> data2 = Table[{x, t, Sin[x*t]}, {x, 0, 1, 0.1}, {t, 0, 1, 0.1}];

> 

> f1 = Interpolation[Flatten[data1, 1]]

> 

> f2 = Interpolation[Flatten[data2, 1]]

> 

> g1 = Integrate[f1[x, t], {x, 0, 1}]

> 

> g2[tt_] := Evaluate[g1 /. t -> tt]

> 

> Plot[g2[t], {t, 0, 1}]

> 

> g3 = Integrate[f1[x, t]*f2[x, t], {x, 0, 1}]

> 





-- 



Daniel Huber

Metrohm Ltd.

Oberdorfstr. 68

CH-9100 Herisau

Tel. +41 71 353 8585, Fax +41 71 353 8907

E-Mail:<mailto:dh at metrohm.com>

Internet:<http://www.metrohm.com>




  • Prev by Date: Re: LeastSquares using LinearProgramming?
  • Next by Date: Re: Wolfram Workbench user experiences
  • Previous by thread: Re: Integrating Interpolation functions
  • Next by thread: Is it possible to solve this differential equation?