用Matlab计算jacobian矩阵解析解

用Matlab计算jacobian矩阵解析解

做扩展卡尔曼滤波(EKF)的时候需要用到jacobian矩阵。有时手工求解难度较大这时可以用Matlab自动求出jacobian矩阵的解析解。

以雷达观测矩阵为例为例

syms x y vx vy %定义符号变量
jacobian([sqrt(x2+y2), atan(y/x),(xvx + yvy)/(sqrt(x2+y2))], [x; y; vx;vy])

输出的结果比较复杂, 进行多项式简化

ss = vx/(x^2 + y2)(1/2) - (x(vxx + vyy))/(x^2 + y2)(3/2)
simplify(ss)

输出结果为:

(vxy^2 - vyxy)/(x^2 + y2)(3/2)

对比文献上的公式是一样