The non-trace Kalman filter (unscented Kalman filter) needs no trace transformation. The unscented transform is described in Wikipedia as follows:
The unscented transform (UT) is a mathematical function used to estimate the result of applying a given nonlinear Transformation to a probability distribution, that's characterized only in terms of a finite set of statistics. The most common use of the unscented transform are in the nonlinear projection of mean and covariance estimates in the Cont Ext of nonlinear extensions of the Kalman filter.
To understand Unsecnted transform first consider a problem: X is a one-dimensional random variable that obeys the normal distribution, and Y is the function distribution of the random variable x, so what is the expectation and variance of the random variable y?
X∼n (µ,σ^2), Y = sin (X)
According to the theory of mathematical statistics, the probability density of a continuous random variable x is f (x), and the mathematical expectation of the random variable y=g (x) is defined as:
For this reason, anomalous integrals need to be calculated. It is also possible to find the distribution function of Y, calculate the probability density by derivation, and then calculate the mathematical expectation of y according to the mathematical expectation definition.
The variance calculation formula is as follows, you can see the requirement variance needs to calculate the expectation first.
Sometimes the abnormal integrals are more difficult to calculate or not convergent, then it becomes difficult to solve the problem. Consider the first-order Taylor expansion of function Y=sin (x) at X=µ, ignoring higher-order items, as follows:
So what about the effect of this approximate calculation? You can compare:
1 fromNumPyImportSin,cos,exp,inf,pi2 ImportScipy.integrate as integrate3 4MU = 1#expected5Sigma = 1#Standard deviation6 7 #Y = sin (X)8 #calculated by formula E[y] and D[y]9F1 =LambdaX:sin (x) * EXP (-(X-MU) **2/(2*sigma**2))/((2*PI) **0.5*Sigma)TenF2 =LambdaX:sin (x) **2 * EXP (-(X-MU) **2/(2*sigma**2))/((2*PI) **0.5*Sigma) OneF_MU, err = Integrate.quad (F1,-INF, INF) ATemp, err = Integrate.quad (F2,-INF, INF) -F_cov = temp-f_mu**2 - the PrintF_mu, F_cov - - #approximate calculation by first-order Taylor expansion - PrintSin (mu), cos (MU) **2 * sigma**2
The results of the expected and variance calculations are as follows:
0.510377951545 0.267674021573
0.841470984808 0.291926581726
It can be seen that there is a certain error in Taylor expansion compared with the theoretical calculation value. The first-order Taylor expansion actually uses a linear function to approximate the nonlinear function, so it can be thought that when the function is highly nonlinear, the result of the first-order Taylor expansion will have a large error. To some extent, this problem can be explained: for functions f (x) =sinx and g (x) =sin2x, the curve g (x) at Μ=PI/4 is significantly more nonlinear than f (x), so the first-order Taylor expansion at X=PI/4 also calculates the random variable Y=sin (x) and y= Sin (2X) expects that the absolute value of the desired error (x) is greater than f (x).
It can be seen that there are some problems in using the first-order Taylor expansion for nonlinear problems, such as: when high-order items cannot be neglected, large errors are generated, the derivation of the function is difficult, the accuracy of the results is correlated with the nonlinear degree of the function. Are there any other solutions to such problems? (There is no need for Taylor to expand, but also to guarantee the accuracy of calculations). Lenovo to the extended Kalman filter (Extended Kamlan filter) is also a similar method to find the Jacobian matrix, the nonlinear problem is approximate, so there are some shortcomings in the EKF method, the following will gradually lead to the non-trace Kalman filter (UKF) method, And the comparison is made in the EKF method.
Reference:
Https://en.wikipedia.org/wiki/Unscented_transform
Http://www.lce.hut.fi/~ssarkka/course_k2010/slides_5.pdf
No Trace Kalman Filter-1