Java教程

验证协方差矩阵和信息矩阵之间的关系

本文主要是介绍验证协方差矩阵和信息矩阵之间的关系,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

实验一

  1. 验证信息矩阵和协方差矩阵的是互逆的关系。

  2. 验证Schur completion的成立性。

给定一个系统:

\[x_1 = w_1x_2+v_1\\ x_2 = v_2\\ x_3 = w_3x_2+v_3\\ 给定数据:w1 = 2; w3 = 3;\\ v1,v2,v3分别服从N1(0,0.01),N2(0,0.04),N3(0,0.09) \]

求该系统的对应的协方差矩阵和对应的信息矩阵?

求解如下:

根据协方差的定义,计算的协方差矩阵如下:

[[0.17 0.08 0.24]

[0.08 0.04 0.12]

[0.24 0.12 0.45]]

根据信息矩阵的定义,计算的信息矩阵如下:

[[ 100. -200. 0. ]

[-200. 525. -33.33333333]

[ 0. -33.33333333 11.11111111]]

点积是单位阵。

说明信息矩阵和协方差的逆之间是相等的

基于python的代码如下:

import numpy as np
w1 = 2
w3 = 3
shegma2_1 = 0.01
shegma2_2 = 0.04
shegma2_3 = 0.09
\# 计算对应的协方差

A = np.array([
  [w1 * w1 * shegma2_2 + shegma2_1, w1 * shegma2_2, w1 * w3 * shegma2_2],
  [w1 * shegma2_2, shegma2_2, w3 * shegma2_2],
  [w1 * w3 * shegma2_2, w3 * shegma2_2, w3 * w3 * shegma2_2 + shegma2_3]
])
A_information = np.array([
  [1 / shegma2_1, -w1 / shegma2_1, 0],
  [-w1 / shegma2_1, w1 * w1 / shegma2_1 + 1 / shegma2_2 + w3 * w3 / shegma2_3, -w3 / shegma2_3],
  [0, -w3 / shegma2_3, 1 / shegma2_3]])
print("协方差矩阵是:\n", A)
print("A的逆运算是:\n", np.linalg.inv(A))
print("信息矩阵是:\n", A_information)
print("信息矩阵的乘的结果是:\n ", np.dot(A, A_information))

对应的输出结果如下:

协方差矩阵是:

 [[0.17 0.08 0.24]

 [0.08 0.04 0.12]

 [0.24 0.12 0.45]]

A的逆运算是:

 [[ 1.00000000e+02 -2.00000000e+02 -2.07488347e-14]

 [-2.00000000e+02  5.25000000e+02 -3.33333333e+01]

 [-0.00000000e+00 -3.33333333e+01  1.11111111e+01]]

信息矩阵是:

 [[ 100.     -200.       0.     ]

 [-200.      525.      -33.33333333]

 [  0.      -33.33333333  11.11111111]]

信息矩阵的乘的结果是:

 [[ 1.00000000e+00 -2.72374715e-16 -4.89484996e-16]

 [-1.66533454e-16  1.00000000e+00 -2.44742498e-16]

 [ 8.88178420e-16 -1.36187358e-15  1.00000000e+00]]
这篇关于验证协方差矩阵和信息矩阵之间的关系的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!