Orthogonal Collocation (GNU Octave (version 11.0.90))

### 23.2 Orthogonal Collocation ¶

`[r, amat, bmat, q] =` colloc `(n, "left", "right")` ¶

  Compute derivative and integral weight matrices for orthogonal collocation.

  Reference: J. Villadsen, M. L. Michelsen, Solution of Differential Equation Models by Polynomial Approximation.

Here is an example of using `colloc` to generate weight matrices for solving the second order differential equation u’ - alpha * u” = 0 with the boundary conditions u(0) = 0 and u(1) = 1.

First, we can generate the weight matrices for n points (including the endpoints of the interval), and incorporate the boundary conditions in the right hand side (for a specific value of alpha).

    n = 7;
    alpha = 0.1;
    [r, a, b] = colloc (n-2, "left", "right");
    at = a(2:n-1,2:n-1);
    bt = b(2:n-1,2:n-1);
    rhs = alpha * b(2:n-1,n) - a(2:n-1,n);

Then the solution at the roots r is

    u = [ 0; (at - alpha * bt) \ rhs; 1]
         ⇒  [ 0.00; 0.004; 0.01 0.00; 0.12; 0.62; 1.00 ]