function [X] = pointmilieu(a, t0, T, N, f) p = size (a, 1); X = zeros (p, N); h = T / N; t = t0; X(:, 1) = a; for j = 1:N-1 K0 = f( t, X(:, j)) K1 = f( t + h/2, X(:, j) + h * K0/2) X(:, j+1) = X(:, j) + h * K1 t = t + h; end endfunction