MathGroup Archive 2008

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

Search the Archive

Re: How to pass a function to a function?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg93656] Re: How to pass a function to a function?
  • From: Albert Retey <awnl at gmx-topmail.de>
  • Date: Fri, 21 Nov 2008 05:30:46 -0500 (EST)
  • References: <gg3c9m$k5b$1@smc.vnet.net>

Aaron Fude schrieb:
> Hi,
> 
> How does one write a call a function that represents an operator? In
> other words, it takes a function and returns another function.

If you need to return a function, then do so:

Laplacian[f_] := Function[{x, y},
  Derivative[2, 0][f][x, y] + Derivative[0, 2][f][x, y]
  ]

or, if you want the derivatives not to be calculated for every call of
the resulting function but only when defining the Laplacian:

Laplacian[f_] := With[{
   d2fdx2 = Derivative[2, 0][f],d2fdy2 = Derivative[0, 2][f]
   },
  Function[{x, y}, d2fdx2[x, y] + d2fdy2[x, y]]
  ]

> For example, if you think of the Laplacian I want to do something like
> this (pseudo code):
> 
> f[x_, y_] := x^4 +y^4
> g = Laplacian[f];
> 
> N[g[1, 1], 50]
> 

This is the above definition in action, note that it also works for pure
functions:

In[56]:= g=Laplacian[f]
Out[56]= Function[{x$,y$},(12 #1^2&)[x$,y$]+(12 #2^2&)[x$,y$]]
In[57]:= g[1,1]
Out[57]= 24
In[58]:= Laplacian[#1^4+#2^4&][1,1]
Out[58]= 24

hth,

albert


  • Prev by Date: Re: ListPlot w/ Dynamic[] choice of external data files
  • Next by Date: Re: Mathematica 7 is now available
  • Previous by thread: Re: How to pass a function to a function?
  • Next by thread: Re: How to pass a function to a function?