欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

matlab中求雅克比矩阵的方法及cov函数的用法,协方差矩阵—Hessian矩阵—正定矩阵

程序员文章站 2022-04-06 23:34:16
...

MATLAB中jacobian是用来计算Jacobi矩阵的函数

syms r l f 
x=r*cos(l)*cos(f); 
y=r*cos(l)*sin(f); 
z=r*sin(l); 
J=jacobian([x;y;z],[r l f]) 

结果:

J = 
[ cos(l)*cos(f), -r*sin(l)*cos(f), -r*cos(l)*sin(f)] 
[ cos(l)*sin(f), -r*sin(l)*sin(f), r*cos(l)*cos(f)] 
[ sin(l), r*cos(l), 0 ] 

(扩展卡尔曼滤波算法)

1 向量的方差与协方差矩阵

cov(x)
求向量x的方差。
cov(x)为一个数值,数值大小计算公式为S(x)。

cov(x,y)
求向量x与y的协方差矩阵。
cov(x,y)为2*2矩阵,
[S(x) C(x,y);
C(y,x) S(y);]

2 矩阵协方差矩阵

cov(X)
求矩阵X的协方差矩阵。
diag(cov(X))得到每一个列向量的方差。
sqrt(diag(cov(X)))得到每一个列的标准差。

若X大小为MN,则cov(X) 大小为NN的矩阵。
cov(X) 的第(i,j)个元素等于X的第i列向量与第j列向量的方差,即C(Xi,Xj)。

cov(X,Y)
求矩阵X与Y的协方差矩阵。
若X大小为MN,Y为KP,则X,Y的大小必须满足MN=KP,即X,Y的元素个数相同。

此时,cov(X,Y) 等于cov([X(???? Y(????])和cov(X(????,Y(????),即计算两个向量的协方差矩阵,得到的结果为2*2矩阵。
[S(X(????) C(X(????,Y(????);
C(Y(????,X(????) S(Y(????);]

可知,S(X) =C(X,X).

3 关于归一化的问题

在上述的S(X),C(X,Y)计算中,采用的归一化参数是1/(N-1) ,其中N是向量中元素的个数。而下面的调用形式采用的归一化参数是1/N。

对应的公式如下图所示。
cov(x,1)
求向量x的方差。计算方法如cov(x),但归一化参数为1/N。

cov(x,y,1)
求向量x与y的协方差矩阵。计算方法如cov(x,y),但归一化参数为1/N。

为区别对待

cov(x)又记作cov(x,0)
cov(x,y)又记作cov(x,y,0)
cov(X) 又记作cov(X,0)
cov(X,Y) 又记作cov(x,y,0)
对于归一化参数为1/(N-1)的情况,当N=1时,自动将参数调整为1/N

协方差矩阵

matlab中求雅克比矩阵的方法及cov函数的用法,协方差矩阵—Hessian矩阵—正定矩阵
matlab中求雅克比矩阵的方法及cov函数的用法,协方差矩阵—Hessian矩阵—正定矩阵

Hessian矩阵

matlab中求雅克比矩阵的方法及cov函数的用法,协方差矩阵—Hessian矩阵—正定矩阵

正定矩阵

matlab中求雅克比矩阵的方法及cov函数的用法,协方差矩阵—Hessian矩阵—正定矩阵

matlab中求雅克比矩阵的方法及cov函数的用法,协方差矩阵—Hessian矩阵—正定矩阵

相关标签: 优化