MathGroup Archive 2013

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

Search the Archive

Re: keep special functions unexpanded

On 20/07/2013 10:56, metrologuy wrote:
> I am trying to create a list of ChebyshevT[n,x] polynomials of different orders to use as basis functions in a fitting routine. I want to keep the list in the form that explicitly shows the order number. For example, I want the list for order n=2 to look like this:
>    basislist={ChebyshevT[0,x],ChebyshevT[1,x],ChebyshevT[2,x]}.
> If I use Table to generate the list, I get each function expanded into a polynomial in x:
> In[1]:= Table[ChebyshevT[i,x],{i,0,2}]
> Out[1]= {1,x,-1+2 x^2}
> How can I prevent the function from displaying the expanded form for each value of n? If I use the unexpanded form in the Fit[] function, it works just fine. But I lose the visual connection to the explicit order number in the input form of the function. Any suggestions how to keep the "n" visible?
The best way to do this, is to use your own private notation for the 
function in question:

basislist = {ChebT[0, x], ChebT[1, x], ChebT[2, x]}

Replace the notation when you need to evaluate it:

basislist /. ChebT -> ChebyshevT

{1, x, -1 + 2 x^2}

If you work with a lot of functions that you don't want to expand 
immediately, you can keep the list of transformations in a variable to 
simplify your work:

functionActivations={ ChebT -> ChebyshevT, ChebU -> ChebyshevU};

basislist /.functionActivations

{1, x, -1 + 2 x^2}

This technique also has the advantage that often your private functions 
can be much neater in algebraic expressions - for example you can use 
\[Gamma] to represent Gamma.

David Bailey

  • Prev by Date: Extract Integers
  • Next by Date: Re: constructing a continuous region from 2D data using
  • Previous by thread: Re: keep special functions unexpanded
  • Next by thread: Re: keep special functions unexpanded