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

MathGroup Archive 2011

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

Search the Archive

Re: NIntegrate to compute LegendreP approximations to functions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg123058] Re: NIntegrate to compute LegendreP approximations to functions
  • From: "J. Jesus Rico Melgoza" <jerico at umich.mx>
  • Date: Tue, 22 Nov 2011 05:34:05 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

Thanks gain for the advise. I have done two integrals one for k==0 and other for any  other value of k. It is not the most elegant solution but it seems to work fine.

Thanks
J. Rico

----- Mensaje original -----
De: "DrMajorBob" <btreat1 at austin.rr.com>
Para: mathgroup at smc.vnet.net, "J. Jes=C3=BAs Rico Melgoza" <jerico at umich.mx>
Enviados: S=C3=A1bado, 19 de Noviembre 2011 15:13:15
Asunto: Re: Re: NIntegrate to compute LegendreP approximations to functions

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=C3=BAs 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



  • Prev by Date: Re: How to do quickest
  • Next by Date: Re: How to do quickest
  • Previous by thread: Re: NIntegrate to compute LegendreP approximations to functions
  • Next by thread: Re: NIntegrate to compute LegendreP approximations to functions