normalized ALF (Assotiated Legendre Function)

Ben Abbott bpabbott at mac.com
Mon Feb 11 19:55:31 CST 2008


On Feb 11, 2008, at 10:20 AM, Marco Caliari wrote:
>
> Please, try the enclosed legendre.m. It is based on the recurrence  
> relation found in http://en.wikipedia.org/wiki/Associated_Legendre_function 
> . I think it should be much more stable.

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

ans =

    2.3424e-119   2.0877e-144
    1.1666e-120   2.8601e-144
    3.1132e-119   1.3575e-140
    8.1518e-118   1.0167e-139
    2.1137e-116   8.8310e-137
    5.4094e-115   1.6560e-135
    1.3778e-113   5.7097e-133
    3.5365e-112   1.3705e-131
    9.1806e-111   3.3573e-129
    2.5238e-109   1.3295e-127
    8.9744e-108   1.8397e-125
    3.8727e-106   1.2779e-123
    1.9273e-104   9.8135e-122
    1.0123e-102   9.4790e-120
    5.4782e-101   4.6351e-118
     2.9220e-99   6.1185e-116
     1.5443e-97   1.6927e-114
     7.9263e-96   5.0573e-112
     3.9915e-94   4.8575e-111
     1.9686e-92   2.5731e-108
     9.4747e-91   1.0210e-106
     4.4378e-89   1.2955e-104
     2.0255e-87   9.2168e-103
     8.9000e-86   5.0162e-101
     3.7992e-84    7.4455e-99
     1.5630e-82    6.0867e-98
     6.3553e-81    4.0858e-95
     2.4881e-79    1.5141e-93
     9.3534e-78    1.6912e-91
     3.4021e-76    1.8648e-89
     1.2025e-74    5.4167e-88
     4.1090e-73    1.0303e-85
     1.3681e-71    4.2479e-84
     4.2235e-70    3.6317e-82
     1.2357e-68    4.2982e-80
     3.4224e-67    7.9412e-79
     9.0728e-66    2.0485e-76
     2.1559e-64    1.1802e-74
     4.2186e-63    5.7797e-73
     4.8458e-62    7.6818e-71
     1.0928e-61    4.0895e-69
     4.4609e-59    2.5363e-67
     3.6901e-57    2.3634e-65
     2.5598e-55    3.8612e-64
     8.8479e-54    8.5079e-62
     3.4999e-52    7.1329e-60
     1.0974e-50    1.5563e-58
     3.8537e-49    2.3469e-56
     8.7346e-48    2.4322e-54
     2.2104e-46    6.8924e-53
     7.5648e-45    4.6632e-51
     1.6279e-43    6.4798e-49
     3.0916e-42    2.7505e-47
     7.0616e-42    7.3142e-46
     8.1111e-40    7.6535e-44
     7.9301e-39    6.1412e-42
     5.7348e-37    3.2699e-40
     6.0936e-36    1.4796e-38
     4.3591e-34    9.0850e-37
     1.2343e-32    5.8704e-35
     3.4634e-31    3.9178e-33
     1.0903e-29    2.0041e-31
     8.0223e-29    9.2888e-30
     2.4566e-27    3.6487e-28
     4.2821e-26    1.7018e-26
     1.9256e-25    6.5910e-25
     8.1766e-25    2.4639e-23
     4.2551e-23    6.8962e-22
     1.1459e-22    1.7888e-20
     3.2583e-20    3.9508e-19
     1.8758e-18    6.5279e-18
     3.1305e-17    1.1644e-16
     9.8748e-16    1.9183e-15
     1.5795e-16    3.3544e-14
     2.9368e-13    4.7596e-13
     2.8870e-12    7.9144e-12
     5.9192e-11    9.2655e-11
     6.6729e-10    9.5730e-10
     4.7224e-09    7.8467e-09
     2.2427e-08    3.8634e-08
     5.3147e-08    1.0190e-07

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?

Ben
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://www.cae.wisc.edu/pipermail/help-octave/attachments/20080211/3fb84550/attachment.html 


More information about the Help-octave mailing list