Re: NIntegrate to compute LegendreP approximations to functions

*To*: mathgroup at smc.vnet.net*Subject*: [mg123006] Re: NIntegrate to compute LegendreP approximations to functions*From*: DrMajorBob <btreat1 at austin.rr.com>*Date*: Sun, 20 Nov 2011 05:36:40 -0500 (EST)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com

Disregard everything after hello. I keep pushing SEND too soon. I had a plot that looked correct only because I started the Sum at k = 1, not 0. The problem is that Simplify is giving a result that's invalid for k == 0: u = Sign[t]; c[k_] = Simplify[(2 k + 1)/2 Integrate[u LegendreP[k, t], {t, -1, 1}], Element[k, Integers]] c[0] (2 0 + 1) Integrate[u LegendreP[0, t], {t, -1, 1}] ((1 + 2 k) Sqrt[\[Pi]])/(2 Gamma[1 - k/2] Gamma[(3 + k)/2]) 1 0 The correct result is zero, of course: Integrate[u LegendreP[0, t], {t, -1, 1}] Plot[u LegendreP[0, t], {t, -1, 1}] 0 This sort of "failure" in Simplify not uncommon or unexpected. There was another thread, recently, where Simplify failed to cancel like terms in the numerator and nominator, yielding a result that was discontinuous at the point where those terms are zero. We have to be aware that these things can happen, and take care to guard against it. Bobby On Sat, 19 Nov 2011 14:50:13 -0600, DrMajorBob <btreat1 at austin.rr.com> wrote: > Like you (I assume), I was getting a plot that showed the constant term > was wrong. > > But now, when I Quit and recompute, the plot is right (without > subtracting 1 as I did in an earlier, too-hasty reply). > > There's something strange going on! > > Bobby > > On Sat, 19 Nov 2011 05:46:10 -0600, J. Jes=FAs Rico Melgoza > <jerico at umich.mx> wrote: > >> Thanks for the advise. Though, I don't see why the constant term is not >> calculated properly. >> The resulting approximation in >> >> Plot[{u, Sum[c[k] LegendreP[k, t], {k, 0, 20}]}, {t, -1, 1}] >> >> has a different c[0]. >> J. Rico >> >> >> El 18/11/2011, a las 06:50, Bob Hanlon escribi=F3: >> >>> Do the integration once. >>> >>> u = Sign[t]; >>> >>> c[k_] = Simplify[ >>> (2 k + 1)/2 Integrate[u LegendreP[k, t], {t, -1, 1}], >>> Element[k, Integers]] >>> >>> ((1 + 2*k)*Sqrt[Pi])/(2*Gamma[1 - k/2]*Gamma[(3 + k)/2]) >>> >>> >>> Bob Hanlon >>> >>> >>> 2011/11/18 "J. Jes=FAs Rico Melgoza" <jerico at umich.mx>: >>>> >>>> Hello >>>> I am approximating general scalar functions via orthogonal series. I >>>> am >>>> using LegendreP polynomials. >>>> As an example, I have approximated a Sign function. The coefficients >>>> have been calculated as follows: >>>> >>>> n = 20; >>>> u = Sign[t]; >>>> N[Table[(2 k + 1)/2 Integrate[u LegendreP[k, t], {t, -1, 1}], {k, 0, >>>> n}]] >>>> >>>> Everything works well but I would like to speed up computations since >>>> for large values of n, Integrate takes long computations times. I need >>>> to speed up the process since in general I will be approximating >>>> multi-variable functions. I have tried NIntegrate but I get multiple >>>> messages such as >>>> >>>> NIntegrate::slwcon : "Numerical integration converging too slowly; >>>> suspect \ >>>> one of the following: singularity, value of the integration is 0, >>>> highly >>>> \ >>>> oscillatory integrand, or WorkingPrecision too small. >>>> =91=99=98ButtonBox[" >>>> ", >>>> Appearance->{Automatic, None}, >>>> BaseStyle->"Link", >>>> ButtonData:>"paclet:ref/message/NIntegrate/slwcon", >>>> ButtonNote->"NIntegrate::slwcon"]" >>>> >>>> NIntegrate is a very complete function in Mathematica, so much that it >>>> has been rather difficult to find an adequate combination of a method >>>> and a strategy of integration that would improve the timing of >>>> Integrate. >>>> >>>> Could anyone give me some advice? >>>> >>>> Jesus Rico-Melgoza >>> >> >> > > -- DrMajorBob at yahoo.com

**Re: Problem displaying user-created .cdf files**

**Re: Timing graphics in the real world**

**Re: NIntegrate to compute LegendreP approximations to functions**

**Re: NIntegrate to compute LegendreP approximations to functions**