How to solve matrix function in Matlab?

Hi all! I'm faced with the following question:
X=AXB+C
where A is a 4*4 matrix, B is a 3*3 matrix, X and C are 4*3 matrices. I know the values of A, B and C. How can I solve out X using matlab?

댓글 수: 3

Thank you so much, Hoffrichter and Star Strider. I found out that there is a function called sylvester which can directly address the question.
Star Strider
Star Strider 2021년 2월 21일
I considered that, however it does not appear to be a Sylvester system, at least as I interpret it. Another option I considered was lyap and its friends.
inv(A)*X + X*(-B) = inv(A)*C
help sylvester
SYLVESTER Solve Sylvester Equation. X = SYLVESTER(A,B,C) solves the Sylvester equation A*X + X*B = C, where A is a m-by-m matrix, B is a n-by-n matrix, and X and C are m-by-n matrices. Documentation for sylvester doc sylvester

댓글을 달려면 로그인하십시오.

답변 (1개)

Paul Hoffrichter
Paul Hoffrichter 2021년 2월 21일
편집: Paul Hoffrichter 2021년 2월 21일

1 개 추천

Define Z = AXB + C - X
You have to start off with your initial best guess for X based upon the nature of the model. For lack of any information, guess that X_0 = C. (Then Z = ACB.)
Create a Q = cost function for Z. You could try the trace of Z, and then check to see if Z has all entries close to 0.
You then need to find a zero crossing of your cost function. To do this, you can use fzero.
Other initial guesses may result in different answers if there are multiple roots.

카테고리

도움말 센터File Exchange에서 Polynomials에 대해 자세히 알아보기

질문:

2021년 2월 21일

댓글:

2021년 2월 21일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by