Numerically evaluates a integral using a Gauss quadrature.
Updated 28 Nov 2005

No License

[int, tol] = gaussq('Fun',A,B,[reltol wfun],[trace,gn],p1,p2,....)
[int, tol] = gaussq('Fun',A,B,[reltol wfun],[trace,gn],alpha,p1,p2,....)
[int, tol] = gaussq('Fun',A,B,[reltol wfun],[trace,gn],alpha,beta,p1,p2,....)

int = evaluated integral
tol = absolute tolerance abs(int-intold)
Fun = inline object, function handle or a function string.
The function may depend on the parameters alpha and beta.
A,B = lower and upper integration limits, respectively.
reltol = relative tolerance (default 1e-3).
wfun = integer defining the weight function:
1 p(x)=1 a =-1, b = 1 Legendre (default)
2 p(x)=1/sqrt((x-a)*(b-x)), a =-1, b = 1 Chebyshev of the
first kind
3 p(x)=sqrt((x-a)*(b-x)), a =-1, b = 1 Chebyshev of the
second kind
4 p(x)=sqrt((x-a)/(b-x)), a = 0, b = 1
5 p(x)=1/sqrt(b-x), a = 0, b = 1
6 p(x)=sqrt(b-x), a = 0, b = 1
7 p(x)=(x-a)^alpha*(b-x)^beta a =-1, b = 1 Jacobi
alpha, beta >-1 (default alpha=beta=0)
8 p(x)=x^alpha*exp(-x) a = 0, b = inf generalized Laguerre
9 p(x)=exp(-x^2) a =-inf, b = inf Hermite
10 p(x)=1 a =-1, b = 1 Legendre (slower than 1)

trace = for non-zero TRACE traces the function evaluations
with a point plot of the integrand (default 0).
gn = number of base points and weight points to start the
integration with (default 2).
p1,p2,...= coefficients to be passed directly to function Fun:
G = Fun(x,p1,p2,...).

GAUSSQ Numerically evaluates a integral using a Gauss quadrature.
The Quadrature integrates a (2m-1)th order polynomial exactly and the
integral is of the form
Int (p(x)* Fun(x)) dx
GAUSSQ accept integration limits A, B and coefficients P1,P2,...
as matrices or scalars and the result INT is the common size of A, B
and P1,P2,....

Examples :% a) integration of x.^2 from 0 to 2 and from 1 to 4
% b) integration of x^2*exp(-x) from zero to infinity

gaussq('(x.^2)',[0 1],[2 4]) % a)
gaussq('(1)',0,inf,[1e-3 8],[],2) % b)
gaussq('(x.^2)',0,inf,[1e-3 8],[],0) % b)

Cite As

Per A. Brodtkorb (2024). gaussq (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R11
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Numerical Integration and Differential Equations in Help Center and MATLAB Answers
Tags Add Tags

Inspired: OFDMA Uplink PUSC 128-FFT

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Gaussq is now updated to also allow integration of function handles or inline objects.
Global variables are changed to persistent to make the function more robust.