0.6.0
Loading...
Searching...
No Matches
mod_math_legendre Module Reference

Legendre integration. More...

Functions/Subroutines

subroutine evaluate_legendre_points_and_weights (points, weights)
 
subroutine evaluate_zero_legendre_and_derivative (n, legendre0, derivative0)
 Evaluate the Legendre polynomial of degree n and its derivative at the point 0.
 
subroutine compute_legendre_first_root_and_derivative (n, legendre0, root, derivative)
 Compute the first positive root of Legendre polynomial of degree n and its derivative at 0.
 
double precision function legendre_get_next_root_approximation (n, root)
 

Detailed Description

Legendre integration.

Function/Subroutine Documentation

◆ compute_legendre_first_root_and_derivative()

subroutine mod_math_legendre::compute_legendre_first_root_and_derivative ( integer, intent(in) n,
double precision, intent(in) legendre0,
double precision, intent(out) root,
double precision, intent(out) derivative )

Compute the first positive root of Legendre polynomial of degree n and its derivative at 0.

Remarks:

  • Odd Legendre polynomials have a root at 0 and the first derivative is known. This routine concerns even Legendre polynomials.
  • Even Legendre polynomials have their first derivative equal to zero at 0.

The article of Glaser et al. proposes a specific algorithm to find the first positive root of the Legendre polynomials.

◆ evaluate_legendre_points_and_weights()

subroutine mod_math_legendre::evaluate_legendre_points_and_weights ( double precision, dimension(:) points,
double precision, dimension(:) weights )

◆ evaluate_zero_legendre_and_derivative()

subroutine mod_math_legendre::evaluate_zero_legendre_and_derivative ( integer, intent(in) n,
double precision, intent(out) legendre0,
double precision, intent(out) derivative0 )

Evaluate the Legendre polynomial of degree n and its derivative at the point 0.

Legendre polynomials Pn of degree n verifies the Bonnet recurrence formula:

(n+1) Pn+1(x) = (2n+1) x Pn(x) - Pn-1(x)

with P0(x) = 1 and P1(x) = x

For x = 0, we get

          n-1
Pn(0) = - --- Pn-2(0)
           n

The derivative verifies the following recurrence formula:

           (2n+1) Pn(x) - n P'n-1(x)
P'n+1(x) = ---------------------------
                      n+1

◆ legendre_get_next_root_approximation()

double precision function mod_math_legendre::legendre_get_next_root_approximation ( integer, intent(in) n,
double precision, intent(in) root )