我正在使用 MATLAB 和这个函数:
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);
使用这个函数,我可以获得权重和节点,我可以在它们上集成我最喜欢的函数。例如,我可以调用lglnodes(400 - 1)
并获取N = 400
. 然后我有这个代码:
我想对 Gauss-Laguerre (GaussLaguerre(n, alpha)
函数)做同样的事情,但我不明白如何使用输入来获得与上述相同的权重。你能解释一下如何调整输入吗?如何设置n
和alpha
?