source: issm/trunk-jpl/src/m/psl/p_polynomial_prime.m@ 20189

Last change on this file since 20189 was 20189, checked in by adhikari, 9 years ago

new: first derivative of legendre polynomials, required for computing horizontal displacement

File size: 1.8 KB
Line 
1function vp = p_polynomial_prime ( m, n, x )
2
3%*****************************************************************************80
4%
5%% P_POLYNOMIAL_PRIME evaluates the derivative of Legendre polynomials P(n,x).
6%
7% Discussion:
8%
9% P(0,X) = 1
10% P(1,X) = X
11% P(N,X) = ( (2*N-1)*X*P(N-1,X)-(N-1)*P(N-2,X) ) / N
12%
13% P'(0,X) = 0
14% P'(1,X) = 1
15% P'(N,X) = ( (2*N-1)*(P(N-1,X)+X*P'(N-1,X)-(N-1)*P'(N-2,X) ) / N
16%
17% Licensing:
18%
19% This code is distributed under the GNU LGPL license.
20%
21% Modified:
22%
23% 13 March 2012
24%
25% Author:
26%
27% John Burkardt
28%
29% Reference:
30%
31% Milton Abramowitz, Irene Stegun,
32% Handbook of Mathematical Functions,
33% National Bureau of Standards, 1964,
34% ISBN: 0-486-61272-4,
35% LC: QA47.A34.
36%
37% Daniel Zwillinger, editor,
38% CRC Standard Mathematical Tables and Formulae,
39% 30th Edition,
40% CRC Press, 1996.
41%
42% Parameters:
43%
44% Input, integer M, the number of evaluation points.
45%
46% Input, integer N, the highest order polynomial to evaluate.
47% Note that polynomials 0 through N will be evaluated.
48%
49% Input, real X(M,1), the evaluation points.
50%
51% Output, real VP(M,N+1), the values of the derivatives of the
52% Legendre polynomials of order 0 through N at the point X.
53%
54 if ( n < 0 )
55 vp = [];
56 return
57 end
58
59 v = zeros ( m, n + 1 );
60 vp = zeros ( m, n + 1 );
61
62 v(1:m,1) = 1.0;
63 vp(1:m,1) = 0.0;
64
65 if ( n < 1 )
66 return
67 end
68
69 v(1:m,2) = x(1:m,1);
70 vp(1:m,2) = 1.0;
71
72 for i = 2 : n
73
74 v(1:m,i+1) = ( ( 2 * i - 1 ) * x(1:m,1) .* v(1:m,i) ...
75 - ( i - 1 ) * v(1:m,i-1) ) ...
76 / ( i );
77
78 vp(1:m,i+1) = ( ( 2 * i - 1 ) * ( v(1:m,i) + x(1:m,1) .* vp(1:m,i) ) ...
79 - ( i - 1 ) * vp(1:m,i-1) ) ...
80 / ( i );
81
82 end
83
84 return
85end
Note: See TracBrowser for help on using the repository browser.