Re: Preventing LegendreP from self-extracting in manipulations
- To: mathgroup at smc.vnet.net
- Subject: [mg57850] Re: Preventing LegendreP from self-extracting in manipulations
- From: dh <dh at metrohm.ch>
- Date: Fri, 10 Jun 2005 02:29:13 -0400 (EDT)
- References: <d893ok$svp$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Vladislav, The operator "Function" or & does not evaluate its arguments (it has the Attribute "HoldAll"). To get an evaluation you can use "Evaluate" like: FF = Evaluate[.2FF1[#1] + .3FF2[#1]] & The problem with this is that it evaluates down to the polynomial basis x^n that you do jnot want. For the better solutions, see below: Vladislav wrote: > Hi, all, > > I have already tried to post the message, but it went lost. I repeat it > as a new therad. > > Can somebody help me with the following. I need present some functions > (prolate spheroidal functions) in the basis of the Legendre > polynomials. I.e. > I have functions like > > FF1 = 0.6 LegendreP[5, #1] + 0.7 LegendreP[6, #1] & > FF2 = 0.3 LegendreP[5, #1] + 0.2 LegendreP[6, #1] & > > I want to manipulate these functions and remain in the basis of prolate > functions. If you want to stay in the basis of prolate function, you simply set up the definition only for numerical arguments, like: FF1[x_Number]:= 0.6 LegendreP[5, x] + 0.7 LegendreP[6, x] with this, the FF1 is not touched, except when it has a numerical argument > For example I want to create a linear combination of functions, or > something like this. > > FF = .2FF1[#1] + .3FF2[#1] & > > It works well from the point of view of finding the numerical result, > but it do not give > the presentaion of the function in the basis of the Legendre > polynomials It is a bit more difficult, if you want to work in the basis of Legendre Polynomials. You would first define your own Legendre Polynomials that only evaluate for numerical arguments, like myLegendreP[ord_Integer,x_Number]:= LegendreP[ord,x] subsequentially you define the spherical prolates FF1 = 0.6 myLegendreP[5, #1] + 0.7 myLegendreP[6, #1] & FF2 = 0.3 myLegendreP[5, #1] + 0.2 myLegendreP[6, #1] & and finally FF: FF= Evaluate[ Simplify[ .2FF1[#1] + .3FF2[#1] ]] & > > I would like to have create a function which would give the result like > > FFX = 0.9 LegendreP[5, #1] + 0.9 LegendreP[6, #1] &, so that I could > see the presentaion > of the function by typing FFX and obtaining 0.9 LegendreP[5, #1] + 0.9 > LegendreP[6, #1] &. > In practice these functions contain much more terms and having the form > like > 0.9 LegendreP[5, #1] + 0.9 LegendreP[6, #1] & is very important. In > the same way > I would not like to have the explicit presentation as plolinomials, > like -0.28125+ > 1.6875 w + 5.90625 w^2 + .. because of loss of accuracy for future > results. > > Sincerely, > > Vladislav >