线性代数:删除 row/line 并使用减少的雅可比行列式进行投影等同于首先使用完整的雅可比行列式进行投影并在 row/line 之后删除?

Linear Algebra : remove row/line and project with a reduced Jacobian is equivalent to project firstly with a full Jacobian and remove after row/line?

我重新表述了第一个解释不当的问题。我不能删除这个问题,因为我有被封号的风险,所以不要责怪我或在这一点上太粗鲁。

我尝试检查 Jacobian 在哪些条件下用于获得 2 个 Fisher 矩阵(所以对称矩阵)之间的相等或不等。

目标也是查看投影(使用雅可比行列式)和边缘化(矩阵求逆并移除 row/column 和再求逆)是否一致。

这 2 个 Fisher 矩阵中的每一个的计算方式都略有不同。这2个矩阵是Fisher矩阵。

实际上,这是在每个 row/column 的初始参数和最终矩阵的最终参数之间改变参数的计算。这就是为什么在这两个计算中,我都使用 Jacobian J 来制定初始参数和最终参数之间的导数:

公式为:F_final = J^T F_initial J

第一个矩阵的大小为 5x5,第二个矩阵的大小为 4x4。除了第 4 个 row/column.

外,它们完全相同

1) 第一种方法:我反转初始 Fisher 5x5 矩阵(给出 5x5 协方差矩阵)。然后,我“边缘化”,也就是说,我去掉了这个协方差矩阵的第4个row/column。然后,我再次求逆得到最终的 Fisher 4x4 矩阵。

最后,我使用大小为 4x4 的简化雅可比行列式 J' 进行投影(与第二种方法中使用的 5x5 雅可比行列式相同,但没有第 4 种 row/column),公式为:F_final = J'^T F_initial J :所以我最后得到一个 4x4 矩阵


2) 第二种方法: 对于要构建的第二个矩阵:我直接在 5x5 第二矩阵上进行投影(我记得它与 4x4 相同,除了有一个补充第 4 row/column).

我用 Jacobian 5x5 执行此投影。然后我得到第二个投影矩阵 5x5。最后,我将这个 5x5 矩阵求逆以获得协方差矩阵,然后删除这个 5x5 矩阵协方差上的第 4 个 row/column,然后再次求逆得到一个 4x4 矩阵新投影矩阵。


我想知道在什么条件下我可以使 2 个 4x4 矩阵相等。不知道我的方法对不对

为了给你看一个实际的例子,我在下面放了一个小的 Matlab 脚本,它试图遵循上面解释的所有推理:

clear;
clc;

% Big_31 Fisher : 
FISH_Big_1_SYM = sym('sp_', [5,5], 'real');
% Force symmetry for Big_31
FISH_Big_1_SYM = tril(FISH_Big_1_SYM.') + triu(FISH_Big_1_SYM,1);

% Big_32 Fisher : 
FISH_Big_2_SYM = sym('sp_', [5,5], 'real');
% Force symmetry for Big_32
FISH_Big_2_SYM = tril(FISH_Big_2_SYM.') + triu(FISH_Big_2_SYM,1);

% Jacobian 1 
J_1_SYM = sym('j_', [5,5], 'real');
% Jacobian 2 
J_2_SYM = sym('j_', [5,5], 'real');

% Remove 4th row/column
J_2_SYM(4,:) = [];
J_2_SYM(:,4) = [];

%%%%%%%% Method 1 : projection before marginalisation %%%%%%%%%

% Projection
FISH_proj_1 = J_1_SYM'*FISH_Big_1_SYM*J_1_SYM;
% Check size : 5x5
size(FISH_proj_1)
% Invert Fisher_2
COV_Big_1_SYM = inv(FISH_Big_1_SYM);
% Marginalisation
COV_Big_1_SYM(4,:) = [];
COV_Big_1_SYM(:,4) = [];
FISH_Big_1_SYM = inv(COV_Big_1_SYM);


%%%%%%%% Method 2 : projection after marginalisation %%%%%%%%%
% Invert Fisher_2
COV_Big_2_SYM = inv(FISH_Big_2_SYM);
% Remove 4th row/column
COV_Big_2_SYM(4,:) = [];
COV_Big_2_SYM(:,4) = [];
% Re-inverse
FISH_Big_2_SYM_new = inv(COV_Big_2_SYM);
% Projection 2x2
FISH_proj_2 = J_2_SYM'*FISH_Big_2_SYM_new*J_2_SYM;
% Check size : 4x4
size(FISH_proj_2)


% Remove 4th row/column of Fisher matrix method 1
FISH_proj_1(4,:) = [];
FISH_proj_1(:,4) = [];

% Test equality between 2 matrices
isequal(FISH_proj_1,FISH_proj_2)

% Matricial equation to solve
eqn = FISH_proj_1 == FISH_proj_2;

% Solving : sigma_o unknown
[solx, parameters, conditions] = solve(eqn, J_2_SYM, 'ReturnConditions', true);

这个脚本的问题是即使我有小矩阵(4x4 或 5x5),代码运行时间有点长,但结果是矩阵不同。

更新 1

我给了一些人的反馈。重要的一点是在 Matlab 代码的这一部分:

当我这样做时:

% Remove 4th row/column
J_2_SYM(4,:) = [];
J_2_SYM(:,4) = [];

我没有去掉雅可比行列式J的元素行j_5_1j_5_2j_5_3,这些项在我做投影时不会消失。另一方面,在我考虑到它们的意义上,这些术语将保留在另一种方法中。

那么检查 2 个最终矩阵之间的相等性是否是一场失败的战斗?

如果是,哪些修改或假设可以导致相等?即让两个操作都通勤。

更新 2

这是一个显示我的初始矩阵结构的插图,也称为“Big Fisher 矩阵”:

您可以看到 2 个对称的黑色块,它们代表宇宙学参数与所有其他参数(偏置光谱、Pshot、IA 和偏置照片)之间的互相关。

我记得我在这个完整矩阵上对第一种方法进行了投影。

对于第二个,我在删除 row/line 并将其重新反转后进行投影(使用简化的雅可比行列式,即此雅可比行列式的大小为 4x4 而不是 5x5)。

与编程网站的数学标签相比,您在数学网站(例如 math.stackexchange.com)上可能会得到更好的答案。

我不完全确定你想做什么,但如果我的解释是正确的,那么答案是否定的,矩阵通常不相等。

block matrix inversion lemma在这里很有用。对于手头的案例,如果我们写

F2 = (F1 x)
     (x' y)

然后

inv(F2) = ( inv( F1 - x*x'/y)  -inv(F1)*x/z )
          ( -x'*inv(F1)/z      1/z)

哪里

 z = (y-x'*inv( F1)*x)

因此,如果我们反转 F2,投影并反转我们得到

G2 = F1 - x*x'/y

只有当 x 为 0 时才会与 F1 相同