code: def update_steadystate(x, z, K, H=None):
      """
      Add a new measurement (z) to the Kalman filter. If z is None, nothing
      is changed.
  
  
      Parameters
      ----------
  
      x : numpy.array(dim_x, 1), or float
          State estimate vector
  
  
      z : (dim_z, 1): array_like
          measurement for this update. z can be a scalar if dim_z is 1,
          otherwise it must be convertible to a column vector.
  
      K : numpy.array, or float
          Kalman gain matrix
  
      H : numpy.array(dim_x, dim_x), or float, optional
          Measurement function. If not provided, a value of 1 is assumed.
  
      Returns
      -------
  
      x : numpy.array
          Posterior state estimate vector
  
      Examples
      --------
  
      This can handle either the multidimensional or unidimensional case. If
      all parameters are floats instead of arrays the filter will still work,
      and return floats for x, P as the result.
  
      >>> update_steadystate(1, 2, 1)  # univariate
      >>> update_steadystate(x, P, z, H)
      """
  
      if z is None:
          return x
  
      if H is None:
          H = np.array([1])
  
      if np.isscalar(H):
          H = np.array([H])
  
      Hx = np.atleast_1d(dot(H, x))
      z = reshape_z(z, Hx.shape[0], x.ndim)
  
      # error (residual) between measurement and prediction
      y = z - Hx
  
      # estimate new x with residual scaled by the kalman gain
      return x + dot(K, y)
  
imports: from __future__ import absolute_import, division
  from copy import deepcopy
  from math import log, exp, sqrt
  import sys
  import numpy
  from numpy import dot, zeros, eye, isscalar, shape
  import numpy.linalg
  from filterpy.stats import logpdf
  from filterpy.common import pretty_str, reshape_z
label_desc: Use image node_id 2 for calling a global function with example usage: update_steadystate(x, z, K, H) and returns: unknown, x