code: def _solve_zeros(equation, variables=None, implicit=True):
      """symbolic solve the equation for when produces a ZeroDivisionError"""
      # if implicit = True, can solve to functions of a variable (i.e. sin(A)=1)
      res = denominator(
          equation, variables
      )  # XXX: w/o this, is a general solve
      x = variables or "x"
      _res = []
      for i, eqn in enumerate(res):
          _eqn = eqn + " = 0"
          try:
              eqn_ = solve(_eqn, target=variables, variables=x)
              if not eqn_:
                  msg = "cannot simplify '%s'" % _eqn
                  raise ValueError(msg)
              vars = set(get_variables(eqn, x)).difference(
                  get_variables(eqn_, x)
              )
              while vars:  # solve for missing variables
                  alt = solve(_eqn, target=vars.pop(), variables=x)
                  if alt:
                      _res.append(alt)
              _eqn = eqn_
          except ValueError:
              if not implicit:
                  msg = "cannot simplify '%s'" % _eqn
                  raise ValueError(msg)
              # else: pass
          res[i] = _eqn
      return res + _res
  
imports: from numpy import ndarray, asarray, any
  from mystic._symbolic import solve
  from mystic.tools import list_or_tuple_or_ndarray, flatten
label_desc: Use image node_id 13 for calling a global function with example usage: _solve_zeros(equation, variables, implicit) and returns: unknown