我正在使用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 (GaussLaguerre(n, alpha)函数)做同样的处理,但是我无法理解如何使用输入来获得与上面相同的权重。你能给我解释一下如何调整输入吗?如何设置n和alpha
发布于 2020-06-02 08:38:27
Gauss和是两个不同积分的积分点/权重:
x^alpha exp(-x)。你不能指望得到同样的重量。
https://stackoverflow.com/questions/62106033
复制相似问题