How to solve matrix function in Matlab?

1 view (last 30 days)
Qiaohairuo Lin
Qiaohairuo Lin on 21 Feb 2021
Commented: John D'Errico on 21 Feb 2021
Hi all! I'm faced with the following question:
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?
John D'Errico
John D'Errico on 21 Feb 2021
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

Sign in to comment.

Answers (1)

Paul Hoffrichter
Paul Hoffrichter on 21 Feb 2021
Edited: Paul Hoffrichter on 21 Feb 2021
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.


Find more on Operating on Diagonal Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!