LW = 'linewidth'; dom = [0 2*pi];

Chebfun uses Fourier collocation to solve linear, nonlinear and systems of ODEs with periodic boundary conditions. Consider the nonlinear ODE

$$u' - u\cos(u) = \cos(4x),$$

on $[0, 2\pi]$, with periodic boundary conditions. For nonlinear ODEs, we need to specify an intial guess; let us try $\cos(x)$. We can solve the ODE in Chebfun as follows.

f = chebfun(@(x) cos(4*x), dom);
N = chebop(@(u) diff(u) - u.*cos(u), dom);
N.bc = 'periodic';
N.init = chebfun(@(x) cos(x), dom);
u = N \ f
u =
chebfun column (1 smooth piece)
interval       length   endpoint values trig
[       0,     6.3]       89    -0.058   -0.058
Epslevel = 2.331417e-15.  Vscale = 2.428494e-01.


Let us plot the initial guess in dashed blue, and the solution in blue.

figure, plot(N.init, '--b', LW, 2)
hold on, plot(u, 'b', LW, 2)

The solution $u(x)$ satisfies the ODE to high accuracy:

norm(N*u - f, inf)
ans =
3.379422527647751e-12


If we start with another initial guess, we might obtain another solution. Let us try $\sin(x)^2$, plot it in dashed green, and plot the solution in green.

N.init = chebfun(@(x) sin(x).^2, dom);
v = N \ f
hold on, plot(N.init, '--g', LW, 2)
hold on, plot(v, 'g', LW, 2)
v =
chebfun column (1 smooth piece)
interval       length   endpoint values trig
[       0,     6.3]       81       1.6      1.6
Epslevel = 1.776357e-15.  Vscale = 1.785953e+00.


The solution $v(x)$ satisfies the ODE to high accuracy too:

norm(N*v - f, inf)
ans =
1.803868478825869e-12


For nonlinear ODEs, the relationships between intial guesses and solutions are difficult to analyse. In this example, we chose two different guesses, and this led to two different solutions.