There are three things that need correcting
1. There is no need for the i=1 and i=i+1 commands. The 'for' does all that.
2. You need a test for abs(h) <= tol. If it is true, you should do a 'break' to get out of the for-loop at that point.
3. The value 'maxiter' is set way too low. Set it to a much higher value. It serves only as a guard against a loop that is caught in an endlessly infinite cycling.