code: def predict(self, dt=None, UT=None, fx=None, **fx_args):
          r
  
          if dt is None:
              dt = self._dt
  
          if UT is None:
              UT = unscented_transform
  
          # calculate sigma points for given mean and covariance
          self.compute_process_sigmas(dt, fx, **fx_args)
  
          #and pass sigmas through the unscented transform to compute prior
          self.x, self.P = UT(self.sigmas_f, self.Wm, self.Wc, self.Q,
                              self.x_mean, self.residual_x)
  
          # save prior
          self.x_prior = np.copy(self.x)
          self.P_prior = np.copy(self.P)
docs: r"""
          Performs the predict step of the UKF. On return, self.x and
          self.P contain the predicted state (x) and covariance (P). '
  
          Important: this MUST be called before update() is called for the first
          time.
  
          Parameters
          ----------
  
          dt : double, optional
              If specified, the time step to be used for this prediction.
              self._dt is used if this is not provided.
  
          fx : callable f(x, **fx_args), optional
              State transition function. If not provided, the default
              function passed in during construction will be used.
  
          UT : function(sigmas, Wm, Wc, noise_cov), optional
              Optional function to compute the unscented transform for the sigma
              points passed through hx. Typically the default function will
              work - you can use x_mean_fn and z_mean_fn to alter the behavior
              of the unscented transform.
  
          **fx_args : keyword arguments
              optional keyword arguments to be passed into f(x).