实验一
验证信息矩阵和协方差矩阵的是互逆的关系。
验证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]]