function [T,X] = euler(fun, tlims, x0, dt) N = floor((tlims(2)-tlims(1))/dt) + 1; T = zeros(N,1); X = zeros(N,1); T(1) = tlims(1); X(1) = x0; for n = 1:N T(n+1) = T(n) + dt; X(n+1) = X(n) + feval(fun,X(n))*dt; end