How to find matrix S, given by this equation

9 ビュー (過去 30 日間)
NA
NA 2022 年 4 月 24 日
コメント済み: Bruno Luong 2022 年 4 月 24 日
I have matrix L and the right-hand side of equation below.
How can I get matrix S?
All the matrices are square matrix.
  1 件のコメント
Bruno Luong
Bruno Luong 2022 年 4 月 24 日
L must have rank<n Do we know something else, such a is L Hermitian? Same question for J.

サインインしてコメントする。

採用された回答

John D'Errico
John D'Errico 2022 年 4 月 24 日
There is no unique solution. Or, there may be no solution at all.
This looks vaguely like an algebraic Riccati equation. Your problem is of the general form
inv(S)*L*S = J
Where S is the unknown matrix. If the matrix S has an inverse, then L must have the same rank as your right hand side matrix. And we know that the right hand side matrix (J) is rank deficient.
First, make up a random problem.
J = zeros(4,4);
Jdel = magic(3);
J(2:end,2:end) = Jdel
J = 4×4
0 0 0 0 0 8 1 6 0 3 5 7 0 4 9 2
So the right hand side is a matrix of the indicated form. Now I'll choose a known non-singular matrix S. Here is a simple one:
S0 = toeplitz(1:4)
S0 = 4×4
1 2 3 4 2 1 2 3 3 2 1 2 4 3 2 1
L = S0*J*inv(S0)
L = 4×4
24.6000 -14.5000 -12.0000 10.1000 15.6000 -7.0000 -12.0000 8.6000 15.8000 -14.5000 -0.0000 3.3000 20.4000 -23.0000 12.0000 -2.6000
So the above problem must satisfy the equation: inv(S)*L*S==J. A solution MUST exist.
Now the problem becomes, given only J and L, can we recover S? I'll pretend I do not know the matrix S0.
Can we find a solution of the form L*S = S*J? Note that I have implicitly left multiplied by S to arrive at that form. But as long as S is non-singular, that is legal, and since you want a solution where S has an inverse, then S MUST be non-singular.
The solution is not too nasty. It uses what I long ago called the kron trick.
n = size(J,1);
M = kron(eye(n),L) - kron(J.',eye(n));
Note that M will be a singular matrix. The problem is, in this case M will have rank n^2-n, not just n^2-1.
rank(M)
ans = 12
We need to solve a homogeneous linear system now.
Mnull = null(M)
Mnull = 16×4
0 0 0 0.1826 0 0 0 0.3651 0 0 0 0.5477 0 0 0 0.7303 0.3545 0.1064 0.4677 0 0.3832 0.0768 0.3446 0 -0.2137 0.0748 0.1605 0 -0.4979 0.0412 0.1480 0 -0.3146 0.4670 0.2255 0 -0.2860 0.4375 0.1024 0
ANY linear combination of the columns of Mnull will suffice. So I will choose some random linear combination.
S = reshape(Mnull*randn(n,1),n,n)
S = 4×4
0.0332 -0.6289 0.0447 1.1861 0.0664 -0.6958 -0.0222 1.1192 0.0996 0.3750 -0.4935 0.4529 0.1327 0.9633 0.2897 -0.8517
Does this solve your problem? Well, yes. Sort of. But it is not a unique solution to that problem in any form.
norm(inv(S)*L*S - J)
ans = 1.3825e-13
Which results in floating point trash. So we have recovered a solution, but not the one I started with. The point is, again, there is no unique solution. And had I not been careful in how I created L then no solution at all may have existed.

その他の回答 (2 件)

Torsten
Torsten 2022 年 4 月 24 日
L is NxN and 0_(N-1) is (N-1)x1 ? J_delta is a full (N-1)x(N-1) matrix ?
Then use the eigenvector corresponding to the eigenvalue 0 of L to build S.
  2 件のコメント
NA
NA 2022 年 4 月 24 日
L is N*N and J is also N*N and J -delta is n-1*n-1.
I do not understand your answer.
Torsten
Torsten 2022 年 4 月 24 日
Ok, if J_delta is a given matrix, forget my answer.

サインインしてコメントする。


Sam Chak
Sam Chak 2022 年 4 月 24 日
@NA, thanks for your clarification on the dimensions.
Is this some kind of a Linear Algebra problem?
It seems that the square matrix L is unique, and has to satisfy certain conditions.
For example, say the matrix is given by
L = [0 1 0; 0 0 1; 0 -6 -5]
L =
0 1 0
0 0 1
0 -6 -5
Then, the eigenvalues of matrix are
s = eig(L)
s =
0
-2.0000
-3.0000
Next, the matrix is constructed from the eigenvalues such that
S = [1 1 1; s(1) s(2) s(3); s(1)^2 s(2)^2 s(3)^2]
S =
1.0000 1.0000 1.0000
0 -2.0000 -3.0000
0 4.0000 9.0000
Finally, we can test if is a diagonal matrix where the diagonal elements are the eigenvalues of matrix :
D = S\L*S
D =
0 0.0000 0.0000
0 -2.0000 -0.0000
0 0.0000 -3.0000
Only a centain square matrix can produce such diagonal matrix. For example:
L = [0 1 0; 0 0 1; 0 -15 -8]
L =
0 1 0
0 0 1
0 -15 -8

カテゴリ

Help Center および File ExchangeLinear Algebra についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by