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

MathGroup Archive 2013

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

Search the Archive

Re: keep special functions unexpanded

  • To: mathgroup at smc.vnet.net
  • Subject: [mg131417] Re: keep special functions unexpanded
  • From: David Bailey <dave at removedbailey.co.uk>
  • Date: Sun, 21 Jul 2013 04:24:17 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-outx@smc.vnet.net
  • Delivered-to: mathgroup-newsendx@smc.vnet.net
  • References: <ksdmsm$50s$1@smc.vnet.net>

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
http://www.dbaileyconsultancy.co.uk






  • 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