Implement GaussLegendre Integration in MATLAB Create a funti

Implement Gauss-Legendre Integration in MATLAB. Create a funtion called \'integrateGL\'. The function should have four input arguments: a function, lower bound of integration interval, upper bound of intergration interval, and mesh points N. The mesh points are of the set [2, 4, 6, 8, 10, 12, 16, 24].
.dat files will be imported into MATLAB and used as the associated weights for each number of mesh points. (The contents of the .dat files, for example, are as follows)
GAUSS - 2
0.577350269189626e0 1e0
-0.577350269189626e0 1e0

GAUSS - 4
0.861136311594053e0 0.347854845137454e0
0.339981043584856e0 0.652145154862546e0
-0.339981043584856e0 0.652145154862546e0
-0.861136311594053e0 0.347854845137454e0

etcetera

Solution

CODE:

function [x,w]=integrateGL(N,a,b)

% Computes the Legendre-Gauss nodes and weights on an interval
% [a,b] with truncation order N
%
% For a continuous function f(x) which is defined on [a,b]
% if we can evaluate at any x in [a,b]. Simply evaluate it at all of
% the values contained in the x vector to obtain a vector f.

% Then compute the definite integral using sum(f.*w);

clc;
N=N-1;
N1=N+1; N2=N+2;

xu=linspace(-1,1,N1)\';

% Initial guess
y=cos((2*(0:N)\'+1)*pi/(2*N+2))+(0.27/N1)*sin(pi*xu*N/N2);

% Create an Legendre-Gauss Vandermonde Matrix
L=zeros(N1,N2);

% Derivative of LGVM
Lp=zeros(N1,N2);

% Compute the zeros of the N+1 Legendre Polynomial
% using the Newton-Raphson method and the recursion relation.
y0=2;

% Iterate till the new points are uniformly within epsilon of old points
while max(abs(y-y0))>eps
Lp(:,1)=0;
L(:,1)=1;
Lp(:,2)=1;
L(:,2)=y;
  
for i=2:N1
L(:,i+1)=( (2*i-1)*y.*L(:,i)-(i-1)*L(:,i-1) )/i;
end

Lp=(N2)*( L(:,N1)-y.*L(:,N2) )./(1-y.^2);   
y0=y;
y=y0-L(:,N2)./Lp;
end

% Linear map from [-1,1] to [a,b]
x=(a*(1-y)+b*(1+y))/2;

% Compute the weights
w=(b-a)./((1-y.^2).*Lp.^2)*(N2/N1)^2;

end

Implement Gauss-Legendre Integration in MATLAB. Create a funtion called \'integrateGL\'. The function should have four input arguments: a function, lower bound
Implement Gauss-Legendre Integration in MATLAB. Create a funtion called \'integrateGL\'. The function should have four input arguments: a function, lower bound

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site