X-Git-Url: http://gitweb.michael.orlitzky.com/?p=octave.git;a=blobdiff_plain;f=legendre_p.m;h=36f67617a453124d1b3992aa7d6f45298333dc98;hp=6238929eb2e4aea13ea1cc1548b82dcc59fdb301;hb=8df0aa3b8e47b596626cf0f833d9e0c0143bf4d5;hpb=ee06b882dfb9a86788d7057cec8ca6d7680c5ca5 diff --git a/legendre_p.m b/legendre_p.m index 6238929..36f6761 100644 --- a/legendre_p.m +++ b/legendre_p.m @@ -1,27 +1,27 @@ function P = legendre_p(n) - ## Return the nth legendre polynomial. - ## - ## INPUTS: - ## - ## * ``n`` - The index of the polynomial that we want. - ## - ## OUTPUTS: - ## - ## * ``P`` - A polynomial function of one argument. - ## + % Return the `n`th Legendre polynomial. + % + % INPUT: + % + % * ``n`` - The index of the polynomial that we want. + % + % OUTPUT: + % + % * ``P`` - A polynomial function of one argument. + % if (n < 0) - ## Can't do anything here. Return nothing. + % Can't do anything here. Return nothing. P = NA; elseif (n == 0) - ## One of our base cases. - P = @(x) 1 + % One of our base cases. + P = @(x) 1; elseif (n == 1) - ## The second base case. - P = @(x) x + % The second base case. + P = @(x) x; else - ## Compute recursively. - prev = legendre_p(n-1) - prev_prev = legendre_p(n-2) - P = @(x) (1/n)*( (2*n - 1)*prev(x) - (n-1)*prev_prev(x) ) + % Not one of the base cases, so use the recursive formula. + prev = legendre_p(n-1); + prev_prev = legendre_p(n-2); + P = @(x) (1/n).*( (2*n - 1).*x.*prev(x) - (n-1).*prev_prev(x) ); end end