class_docstr: Generic solver which *iteratively* solves an equation/optimization problem. Involves an  
  initialization step, the iteration loop body and the termination condition.
docstr: Iteratively solves an equation/optimization for $x$ involving an expression $f(x)$.
  
  Args:
      arguments: ???
      x_init: Initial solution guess $x_0$.
      fn_x: A callable returning an expression $f(x)$ given $x$.
      **values: Additional solver-specific arguments.
  
  Returns:
      A solution $x$ to the problem as given by the solver.
code: def solve(self, *, arguments, x_init, fn_x=None, **kwargs):
      """
      Iteratively solves an equation/optimization for $x$ involving an expression $f(x)$.
  
      Args:
          arguments: ???
          x_init: Initial solution guess $x_0$.
          fn_x: A callable returning an expression $f(x)$ given $x$.
          **values: Additional solver-specific arguments.
  
      Returns:
          A solution $x$ to the problem as given by the solver.
      """
      self.fn_x = fn_x
  
      # Initialization step
      values = self.start(arguments=arguments, x_init=x_init, **kwargs)
  
      # Iteration loop with termination condition
      max_iterations = self.max_iterations.value()
      signature = self.input_signature(function="step")
      values = signature.kwargs_to_args(kwargs=values)
      values = tf.while_loop(
          cond=self.next_step,
          body=self.step,
          loop_vars=tuple(values),
          maximum_iterations=tf_util.int32(x=max_iterations),
      )
      values = signature.args_to_kwargs(args=values)
      solution = self.end(**values.to_kwargs())
  
      return solution
  
file_path: tensorforce/tensorforce/core/optimizers/solvers/iterative.py
imports: import tensorflow
  from tensorforce.core import parameter_modules, tf_util
  from tensorforce.core.optimizers.solvers import Solver
label_desc: Use image node_id 3 for calling the Iterative obj's underlying member method code with example usage: obj.solve() and returns: solution