我正在尝试使用平方根UKF方法进行参数估计。我的问题在于MATLAB cholupdate
!
为了在SR-UKF中使用等级1的Cholesky因子,您需要计算 cholupdate {S,u,+ - v},但MATLAB代码cholupdate
只是接受1为v。如 cholupdate {S,u,+ - 1}。
以前有人遇到过这个问题吗?
This is the paper我正在使用SRF UKF。
答案 0 :(得分:3)
cholupdate(R,X,v)
的第三个输入是单个字符('+'
或'-'
),表示A + X*X'
或A - X*X'
(更新或降级)。如果您希望v
通过X
扩展A + v*X*X'
,则必须将其构建为X
:
>> A = pascal(4)
>> R = chol(A)
>> x = [0 0 0 1].'; %' update
>> v = 1.2
>> xs = sqrt(v)*x;
>> isequal(A + xs*xs.',A + s*(x*x.'))
ans =
1
然后您可以使用cholupdate(R,xs,'+')
。
答案 1 :(得分:0)
最后一行v
是相等的:
A = pascal(4)
R = chol(A)
x = [0 0 0 1].'%' update
v = 1.2
xs = sqrt(v)*x
ss=isequal(A + xs*xs.',A + v*(x*x.'))