LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
solveSylvPowersDirectSum.m
1function Y = solveSylvPowersDirectSum(A, B, C)
2% X = solveSylvPowersDirectSum() solves the equation
3% sum_{j=1}^N B_j Y A^{j-1} = C, directly
4% A: m x m
5% B = [B_1 B_2 ... B_N], B_j: n x n
6% C = n x m
7
8
9m = size(A,1);
10n = size(B,1);
11N = size(B,2)/n;
12
13
14Avec = zeros(m,N*m);
15Avec(:,1:m) = eye(m);
16Avec(:,m+1:2*m) = A';
17for i = 2:N-1
18 Avec(:,i*m+1:(i+1)*m) = Avec(:,(i-1)*m+1:i*m)*Avec(:,m+1:2*m);
19end
20
21%Z: matrix coeff of vec(Y)
22Z = zeros(m*n);
23for j = 1:N
24 Z = Z + kron(Avec(:,(j-1)*m+1:j*m), B(:,(j-1)*n+1:j*n));
25end
26
27Y = Z\‍(reshape(C,m*n,1));
28
29Y = reshape(Y, n, m);