Reformulate a matrix equation
4 次查看(过去 30 天)
显示 更早的评论
Greetings everyone. I have a question: I have 3 matrices which contain numeral values, all of them are of the same order. The matrices are A,J and S.
The equation of is J = inv(S) * A * S;
Is there any way possible for me to solve this for S? i.e. J and A are known but S is unknown, can I do anything to obtain S from J and A? Thank you in advance.
Regards, M. Ayoub
*Edit: S is unknown, when I said it contains numeral values I meant that that unknowns are of numeral type (i.e. not string or char, etc...).
*Edit: all of the matrices are square matrices.
1 个评论
Roger Stafford
2017-11-24
If it is assumed that an inverse exists for S, then your equation implies that S*J-A*S = 0. For n x n matrices, this is consequently n^2 linear equations in n^2 unknown S values. However, I think you will find that unless J and A bear a very special relation to one another, the associated n^2 x n^2 matrix of J and A coefficients has rank n^2, and this latter equation will have only the trivial solution S = 0. S would therefore possess no inverse. Consequently, in the general case there is no solution to your equation. That is, of course, not a fault of Matlab. It is a general mathematical property.
回答(1 个)
Walter Roberson
2017-11-23
If J = inv(S)*A*S then J*inv(S) = inv(S)*A*S*inv(S) so J*inv(S) = inv(S) * A. Then S*J*inv(S) = S*inv(S) * A, so S*J*inv(S) = A and so
A = S*J*inv(S)
Your question assumes that S is invertable, so as long as you have the numeric values for S and J and S is invertable then you can calculate A.
Note: sometimes people ask this question when the matrices are not square. That case cannot usually be solved.
8 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Symbolic Math Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!