gpt4 book ai didi

matlab - 在 Matlab 中检查给定原始矩阵和更改矩阵的行交换

转载 作者:行者123 更新时间:2023-12-01 19:08:43 25 4
gpt4 key购买 nike

我已经尝试解决这个问题有一段时间了,希望能得到一些见解。假设你有矩阵 A,然后交换行,直到得到矩阵 B;

A = [1 3 1;
3 2 1;
2 3 1;];

B = [3 2 1;
1 3 1;
2 3 1;];

invA =

0.0000 -1.0000 1.0000
-1.0000 -1.0000 2.0000
3.0000 5.0000 -7.0000


invB =

-1.0000 0.0000 1.0000
-1.0000 -1.0000 2.0000
5.0000 3.0000 -7.0000

我将如何记录这些行开关?我最终试图改变 B 的逆来与 A 的逆相匹配。我的结论是,给定 2 行交换(也称为第 1 行和第 2 行之间),逆的最终结果将是相同的,除了切换 <逆 B 的 (1 和 2) 的列。

最佳答案

这是一个非常基本的代数问题。
您可以将矩阵 B 写为 permutation matrix 的乘积。 PA:

B = PA;

(在您的示例中:P = [0 1 0;1 0 0;0 0 1];)。
现在您可以反转 B:

inv( B ) = inv( PA ) 

乘积的逆是

         = inv(A) * inv(P)

由于矩阵P是一个置换矩阵:inv(P) = P.'。因此

         = inv(A) * P.'

也就是说,inv(B) = inv(A) * P.' 这意味着您将排列 P 应用于 inv( A).

请注意,排列P可以表示行之间的多个切换,此外,排列可以相乘以考虑行的重复切换。


重要的评论:我在这个答案中使用inv来表示矩阵的逆。然而,当运行 Matlab 和数值求逆矩阵时 it is un-recommended to use inv function明确地。

关于matlab - 在 Matlab 中检查给定原始矩阵和更改矩阵的行交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25347025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com