normalized ALF (Assotiated Legendre Function)

Marco Caliari marco.caliari at univr.it
Tue Feb 12 02:06:41 CST 2008


> I compared Matlab's script and Octave's and your proposal.
>
> result_matlab = legendre (80, [-1:0.1:1]);
>
> result_octave0 respects the original and result_octave1 respects your 
> algorithm.
>
> I calculated an error with respect to the matlab version (I'm not sure 
> Matlab's is to be trusted as correct in all cases).
>
> d0 = abs (result_matlab - result_octave0) / abs (result_matlab);
> d1 = abs (result_matlab - result_octave1) / abs (result_matlab);
> er1 = max (d1, [], 2);
> er0 = max (d0, [], 2);
>
> [er0(:), er1(:)] produces the following

Dear Ben,

the results are even more impressive if you consider that 
legendre0(80,[-1:0.1:1])(1,1) gives 6.7015e+14, whereas 
legendre1(80,[-1:0.1:1])(1,1) gives 1.

> I'm inclined to agree that the recursion form should work better. I'm 
> suspicious that Matlab's version is reliable for such high order legendre 
> polynomials.
>
> Anyone, is there a reliable method to verify the correct answers?

There is a LegendreP function in Maple doing exactly the same. Can you 
select few cases (a degree and a scalar value for x) for which the 
difference between Matlab and my script is quite large? I will check 
them with Maple.

Best regards,

Marco


More information about the Help-octave mailing list