function x = impliciteuler(f, x0, t0, T, N)
% Dla równania $x' = f(t,x), \quad t_0 < t \leq T$ z warunkiem początkowym $x(t_0) = x_0$  
% wyznacza x(T)
% metodą niejawną Eulera z krokiem $h = (T-t_0)/N$
x = x0; t = t0; h = (T-t0)/N;
opts.TolX = opts.TolFun = 1e-12;
for i = 1:N
	F = @(x) x0 + h*feval(f,t,x) - x;
	x = fsolve(F, x0, opts); % nowy x to x(t+h)
	t = t+h;
	x0 = x;
end
end
