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 件のコメント

Qiaohairuo Lin
Qiaohairuo Lin 2021 年 2 月 21 日
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.
John D'Errico
John D'Errico 2021 年 2 月 21 日
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.

カテゴリ

質問済み:

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