d02 Chapter Contents
d02 Chapter Introduction
NAG Library Manual

1  Purpose

nag_ode_bvp_ps_lin_quad_weights (d02uyc) obtains the weights for Clenshaw–Curtis quadrature at Chebyshev points. This allows for fast approximations of integrals for functions specified on Chebyshev Gauss–Lobatto points on $\left[-1,1\right]$.

2  Specification

 #include #include
 void nag_ode_bvp_ps_lin_quad_weights (Integer n, double w[], NagError *fail)

3  Description

Given the (Clenshaw–Curtis) weights ${w}_{\mathit{i}}$, for $\mathit{i}=0,1,\dots ,n$, and function values ${f}_{\mathit{i}}=f\left({t}_{\mathit{i}}\right)$ (where ${t}_{\mathit{i}}=-\mathrm{cos}\left(\mathit{i}×\pi /n\right)$, for $\mathit{i}=0,1,\dots ,n$, are the Chebyshev Gauss–Lobatto points), then $\underset{-1}{\overset{1}{\int }}f\left(x\right)dx\approx \sum _{\mathit{i}=0}^{n}{w}_{i}{f}_{i}$.
For a function discretized on a Chebyshev Gauss–Lobatto grid on $\left[a,b\right]$ the resultant summation must be multiplied by the factor $\left(b-a\right)/2$.

4  References

Trefethen L N (2000) Spectral Methods in MATLAB SIAM

5  Arguments

1:     nIntegerInput
On entry: $n$, where the number of grid points is $n+1$.
Constraint: ${\mathbf{n}}>0$ and n is even.
2:     w[${\mathbf{n}}+1$]doubleOutput
On exit: the Clenshaw–Curtis quadrature weights, ${w}_{\mathit{i}}$, for $\mathit{i}=0,1,\dots ,n$.
3:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

NE_ALLOC_FAIL
Dynamic memory allocation failed.
On entry, argument $⟨\mathit{\text{value}}⟩$ had an illegal value.
NE_INT
On entry, ${\mathbf{n}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{n}}>0$.
On entry, ${\mathbf{n}}=⟨\mathit{\text{value}}⟩$.
Constraint: n is even.
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.

7  Accuracy

The accuracy should be close to machine precision.

8  Parallelism and Performance

Not applicable.

A real array of length $2n$ is internally allocated.

10  Example

This example approximates the integral $\underset{-1}{\overset{3}{\int }}3{x}^{2}dx$ using $65$ Clenshaw–Curtis weights and a $\mathrm{65}$-point Chebyshev Gauss–Lobatto grid on $\left[-1,3\right]$.

10.1  Program Text

Program Text (d02uyce.c)

10.2  Program Data

Program Data (d02uyce.d)

10.3  Program Results

Program Results (d02uyce.r)