code: def optimal_noise_smoothing(g):
      """provides g,h,k parameters for optimal smoothing of noise for a given
      value of g. This is due to Polge and Bhagavan[1].
  
      Parameters
      ----------
  
      g : float
          value for g for which we will optimize for
  
      Returns
      -------
  
      (g,h,k) : (float, float, float)
          values for g,h,k that provide optimal smoothing of noise
  
  
      Examples
      --------
  
      .. code-block:: Python
  
          from filterpy.gh import GHKFilter, optimal_noise_smoothing
  
          g,h,k = optimal_noise_smoothing(g)
          f = GHKFilter(0,0,0,1,g,h,k)
          f.update(1.)
  
  
      References
      ----------
  
      [1] Polge and Bhagavan. "A Study of the g-h-k Tracking Filter".
      Report No. RE-CR-76-1. University of Alabama in Huntsville.
      July, 1975
  
      """
  
      h = (
          (2 * g**3 - 4 * g**2)
          + (4 * g**6 - 64 * g**5 + 64 * g**4) ** 0.5
      ) / (8 * (1 - g))
      k = (h * (2 - g) - g**2) / g
  
      return (g, h, k)
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import numpy
  from numpy import dot
  from filterpy.common import pretty_str
label_desc: Use image node_id 1 for calling a global function with example usage: optimal_noise_smoothing(g) and returns: g,  h,  k