How to find matrix S, given by this equation

9 visualizaciones (últimos 30 días)
NA
NA el 24 de Abr. de 2022
Comentada: Bruno Luong el 24 de Abr. de 2022
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 comentario
Bruno Luong
Bruno Luong el 24 de Abr. de 2022
L must have rank<n Do we know something else, such a is L Hermitian? Same question for J.

Iniciar sesión para comentar.

Respuesta aceptada

John D'Errico
John D'Errico el 24 de Abr. de 2022
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.

Más respuestas (2)

Torsten
Torsten el 24 de Abr. de 2022
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 comentarios
NA
NA el 24 de Abr. de 2022
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 el 24 de Abr. de 2022
Ok, if J_delta is a given matrix, forget my answer.

Iniciar sesión para comentar.


Sam Chak
Sam Chak el 24 de Abr. de 2022
@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

Categorías

Más información sobre Linear Algebra en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by