MATLAB中矩阵乘积相等的高效求解
Efficient solution of matrix product equality in MATLAB
我在 MATLAB 中有以下矩阵方程:
括号里的下标我写的是矩阵大小。
我知道 N、Kt 和 P,需要求解向量 Lambda 的这个方程。
直截了当但 slow/naive 的方法是:
A = N*inv(Kt)*N';
Lambda = A\P;
求解这个方程的最有效方法是什么?通常强烈建议不要在 Matlab 中使用 inv(Kt),那么我可以使用哪些替代方法来解决这个问题?我做过的一个尝试(虽然不知道好不好,我没打过)是:
inv_Kt = Kt\speye(size(Kt));
A = N*inv_Kt*N';
Lambda = A\P;
使用\
求逆是普遍推荐的方法。在不利用矩阵的任何特殊结构的情况下,我只是这样做
Lambda=(N*(Kt\N.'))\P
我在 MATLAB 中有以下矩阵方程:
括号里的下标我写的是矩阵大小。 我知道 N、Kt 和 P,需要求解向量 Lambda 的这个方程。
直截了当但 slow/naive 的方法是:
A = N*inv(Kt)*N';
Lambda = A\P;
求解这个方程的最有效方法是什么?通常强烈建议不要在 Matlab 中使用 inv(Kt),那么我可以使用哪些替代方法来解决这个问题?我做过的一个尝试(虽然不知道好不好,我没打过)是:
inv_Kt = Kt\speye(size(Kt));
A = N*inv_Kt*N';
Lambda = A\P;
使用\
求逆是普遍推荐的方法。在不利用矩阵的任何特殊结构的情况下,我只是这样做
Lambda=(N*(Kt\N.'))\P