def improved_euler_step(f, xk, yk, h):
	""" 
		Completes one step of the improved euler method

		----------

		Parameters

		----------

		f: callable
			differential equation to solve

		xk: float
			x ordinate for step start

		tk: float
			y ordinate for step start
		
		h: float
			step size

		----------

		Returns

		----------
		float: Approximated yk+1 value

	"""

	return yk + h * 0.5*(f(xk, yk) + f(xk + h, yk + h * f(xk, yk)))