How can I solve a rank deficient Sylvester's Equation with linear constraints?
2 views (last 30 days)
Show older comments
MathWorks Support Team
on 10 Apr 2015
Answered: MathWorks Support Team
on 13 Apr 2015
I have the following systems of linear equations and need to solve for the N-by-N matrix X:
AX + XB = F
CX = D
The known matrices A, B and F are N-by-N matrices and C and D are M-by-N matrices where M > N. A and/or B may be singular. How can I solve this system for X?
Accepted Answer
MathWorks Support Team
on 10 Apr 2015
This problem can be solved in the least-squares sense. Let C = QR be the QR-factorization of C. We can manipulate the equations to yield a single Sylvester Equation that can be solved using MATLAB's "sylvester" function.
By left multiplying CX = D by Q' and adding it to AX + XB = F we have
(R + A) X + XB = F + Q'D
Which is a Sylvester equation that can be solved if R+A shares no eigenvalues with B. Here is a simple example that validates this method. A and B are 8-by-8 matrices and C and D are 12-by-8 matrices all of rank 4. The matrix T is an 8-by-8 matrix of arbitrary rank and F = 0.
>> A = randn(8, 4)*randn(4, 8); % rank 4 random matrix
>> T = randn(8); % random 8-by-8 matrix
>> B = -inv(T)*A*T; % formulate B matrix such that T is solution
>> C = randn(12, 4)*randn(4, 8); % rank 4 12-by-8 random matrix
>> D = C*T; % formulate D such that T is solution matrix
>> [Q,R] = qr(C, 0);
>> At = (R+A);
>> Tt = sylvester(At, B, Q'*D);
>> norm(T-Tt)
ans =
2.4474e-13
0 Comments
More Answers (0)
See Also
Categories
Find more on Matrix Computations 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!