0

I'm using MATLAB and this function:

function [x,w,P]=lglnodes(N)

% Truncation + 1
N1=N+1;

x=cos(pi*(0:N)/N)';

% Legendre Vandermonde Matrix
P=zeros(N1,N1);

xold=2;

while max(abs(x-xold))>eps

    xold=x;

    P(:,1)=1;    P(:,2)=x;

    for k=2:N
        P(:,k+1)=( (2*k-1)*x.*P(:,k)-(k-1)*P(:,k-1) )/k;
    end

    x=xold-( x.*P(:,N1)-P(:,N) )./( N1*P(:,N1) );

end

w=2./(N*N1*P(:,N1).^2);

With this function, I get weights and nodes over which I can integrate my favorite functions. For example, I can call lglnodes(400 - 1) and get nodes and weights for N = 400. Then I have this code:

I would like to do the same with Gauss-Laguerre (GaussLaguerre(n, alpha) function), but I cannot understand how to use the inputs to get about the same weights as above. Can you explain to me how to tune the inputs? How to set n and alpha?

Lisa Ann
  • 3,345
  • 6
  • 31
  • 42

1 Answers1

1

Gauss-Lobatto and Gauss-Laguerre are integral points/weights for two different integrals:

  • Lobatto is for unweighted integrals in (-1, 1),
  • Laguerre is for (0, infty) with weight x^alpha exp(-x).

You cannot expect to ever get the same weights.

Nico Schlömer
  • 53,797
  • 27
  • 201
  • 249