class_docstr: Create a Kalman filter which uses a square root implementation.
  This uses the square root of the state covariance matrix, which doubles
  the numerical precision of the filter, Therebuy reducing the effect
  of round off errors.
  
  It is likely that you do not need to use this algorithm; we understand
  divergence issues very well now. However, if you expect the covariance
  matrix P to vary by 20 or more orders of magnitude then perhaps this
  will be useful to you, as the square root will vary by 10 orders
  of magnitude. From my point of view this is merely a 'reference'
  algorithm; I have not used this code in real world software. Brown[1]
  has a useful discussion of when you might need to use the square
  root form of this algorithm.
  
  You are responsible for setting the various state variables to
  reasonable values; the defaults below will not give you a functional
  filter.
  
  Parameters
  ----------
  
  dim_x : int
      Number of state variables for the Kalman filter. For example, if
      you are tracking the position and velocity of an object in two
      dimensions, dim_x would be 4.
  
      This is used to set the default size of P, Q, and u
  
  dim_z : int
      Number of of measurement inputs. For example, if the sensor
      provides you with position in (x,y), dim_z would be 2.
  
  dim_u : int (optional)
      size of the control input, if it is being used.
      Default value of 0 indicates it is not used.
  
  
  Attributes
  ----------
  
  x : numpy.array(dim_x, 1)
      State estimate
  
  P : numpy.array(dim_x, dim_x)
      State covariance matrix
  
  x_prior : numpy.array(dim_x, 1)
      Prior (predicted) state estimate. The *_prior and *_post attributes
      are for convienence; they store the  prior and posterior of the
      current epoch. Read Only.
  
  P_prior : numpy.array(dim_x, dim_x)
      Prior (predicted) state covariance matrix. Read Only.
  
  x_post : numpy.array(dim_x, 1)
      Posterior (updated) state estimate. Read Only.
  
  P_post : numpy.array(dim_x, dim_x)
      Posterior (updated) state covariance matrix. Read Only.
  
  z : numpy.array
      Last measurement used in update(). Read only.
  
  R : numpy.array(dim_z, dim_z)
      Measurement noise matrix
  
  Q : numpy.array(dim_x, dim_x)
      Process noise matrix
  
  F : numpy.array()
      State Transition matrix
  
  H : numpy.array(dim_z, dim_x)
      Measurement function
  
  y : numpy.array
      Residual of the update step. Read only.
  
  K : numpy.array(dim_x, dim_z)
      Kalman gain of the update step. Read only.
  
  Examples
  --------
  
  See my book Kalman and Bayesian Filters in Python
  https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python
  
  References
  ----------
  
  [1] Robert Grover Brown. Introduction to Random Signals and Applied
      Kalman Filtering. Wiley and sons, 2012.
class_docstr_tok: ["Create","a","Kalman","filter","which","uses","a","square","root","implementation",".","This","uses","the","square","root","of","the","state","covariance","matrix",",","which","doubles","the","numerical","precision","of","the","filter",",","Therebuy","reducing","the","effect","of","round","off","errors",".","It","is","likely","that","you","do","not","need","to","use","this","algorithm",";","we","understand","divergence","issues","very","well","now",".","However",",","if","you","expect","the","covariance","matrix","P","to","vary","by","20","or","more","orders","of","magnitude","then","perhaps","this","will","be","useful","to","you",",","as","the","square","root","will","vary","by","10","orders","of","magnitude",".","From","my","point","of","view","this","is","merely","a","'reference'","algorithm",";","I","have","not","used","this","code","in","real","world","software",".","Brown","[","1","]","has","a","useful","discussion","of","when","you","might","need","to","use","the","square","root","form","of","this","algorithm",".","You","are","responsible","for","setting","the","various","state","variables","to","reasonable","values",";","the","defaults","below","will","not","give","you","a","functional","filter",".","Parameters","--","--","--","--","--","dim_x",":","int","Number","of","state","variables","for","the","Kalman","filter",".","For","example",",","if","you","are","tracking","the","position","and","velocity","of","an","object","in","two","dimensions",",","dim_x","would","be","4",".","This","is","used","to","set","the","default","size","of","P",",","Q",",","and","u","dim_z",":","int","Number","of","of","measurement","inputs",".","For","example",",","if","the","sensor","provides","you","with","position","in","(","x",",","y",")",",","dim_z","would","be","2.","dim_u",":","int","(","optional",")","size","of","the","control","input",",","if","it","is","being","used",".","Default","value","of","0","indicates","it","is","not","used",".","Attributes","--","--","--","--","--","x",":","numpy.array","(","dim_x",",","1",")","State","estimate","P",":","numpy.array","(","dim_x",",","dim_x",")","State","covariance","matrix","x_prior",":","numpy.array","(","dim_x",",","1",")","Prior","(","predicted",")","state","estimate",".","The","*","_prior","and","*","_post","attributes","are","for","convienence",";","they","store","the","prior","and","posterior","of","the","current","epoch",".","Read","Only",".","P_prior",":","numpy.array","(","dim_x",",","dim_x",")","Prior","(","predicted",")","state","covariance","matrix",".","Read","Only",".","x_post",":","numpy.array","(","dim_x",",","1",")","Posterior","(","updated",")","state","estimate",".","Read","Only",".","P_post",":","numpy.array","(","dim_x",",","dim_x",")","Posterior","(","updated",")","state","covariance","matrix",".","Read","Only",".","z",":","numpy.array","Last","measurement","used","in","update","(",")",".","Read","only",".","R",":","numpy.array","(","dim_z",",","dim_z",")","Measurement","noise","matrix","Q",":","numpy.array","(","dim_x",",","dim_x",")","Process","noise","matrix","F",":","numpy.array","(",")","State","Transition","matrix","H",":","numpy.array","(","dim_z",",","dim_x",")","Measurement","function","y",":","numpy.array","Residual","of","the","update","step",".","Read","only",".","K",":","numpy.array","(","dim_x",",","dim_z",")","Kalman","gain","of","the","update","step",".","Read","only",".","Examples","--","--","--","--","See","my","book","Kalman","and","Bayesian","Filters","in","Python","https",":","\/\/github.com\/rlabbe\/Kalman-and-Bayesian-Filters-in-Python","References","--","--","--","--","--","[","1","]","Robert","Grover","Brown",".","Introduction","to","Random","Signals","and","Applied","Kalman","Filtering",".","Wiley","and","sons",",","2012","."]
docstr: Process uncertainty
docstr_tok: ["Process","uncertainty"]
code: def Q(self, value):
      """Process uncertainty"""
      self._Q = value
      self._Q1_2 = cholesky(self._Q, lower=True)
  
imports: from __future__ import absolute_import, division
  from copy import deepcopy
  import numpy
  from numpy import dot, zeros, eye
  from scipy.linalg import cholesky, qr, pinv
  from filterpy.common import pretty_str
label_desc: Use image node_id 8 for calling the SquareRootKalmanFilter obj's underlying member method code with example usage: obj.Q(value) without return types