Borrar filtros
Borrar filtros

Return only the real nullspace of a complex matrix

5 visualizaciones (últimos 30 días)
Martin Seltmann
Martin Seltmann el 24 de Oct. de 2018
Comentada: Torsten el 24 de Oct. de 2018
I need to restrict the computation of the nullspace of a complex matrix A to one over the REAL numbers. How do I do that? null(A,’Real’) did not work.
  2 comentarios
Torsten
Torsten el 24 de Oct. de 2018
It's not clear what you mean. You want to know if kern(A) contains purely real vectors ?
Martin Seltmann
Martin Seltmann el 24 de Oct. de 2018
Yes, and extract only those.

Iniciar sesión para comentar.

Respuesta aceptada

Bruno Luong
Bruno Luong el 24 de Oct. de 2018
Editada: Bruno Luong el 24 de Oct. de 2018
A = randn(2,5)+1i*randn(2,5);
% N is a real orthonormal basis of null(A)
n = size(A,2);
NR=null([[real(A), imag(A)]; [-imag(A), real(A)]; [zeros(n), eye(n)]]);
N=NR(1:n,:);
% Check
norm(A*N)
  4 comentarios
Torsten
Torsten el 24 de Oct. de 2018
If x is real valued and A*x = 0, you have (real(A)+i*imag(A))*x = 0. This implies that real(A)*x = 0 and imag(A)*x=0.
Conversely, if real(A)*x=0 and imag(A)*x=0 for a real vector x, then real(A)*x+i*imag(A)*x = A*x = 0.
Best wishes
Torsten.
Martin Seltmann
Martin Seltmann el 24 de Oct. de 2018
Of course, no clue why I was confused there. Thanks!

Iniciar sesión para comentar.

Más respuestas (1)

Bruno Luong
Bruno Luong el 24 de Oct. de 2018
Editada: Bruno Luong el 24 de Oct. de 2018
Torsten proposition:
NR = null([real(A);imag(A)]);
Torsten is right, it's actually the same null space, and his formula is much simpler.
Because
real(A)*NR = 0
imag(A)*NR = 0
so
A*NR = (real(A)+1i*imag(A))*NR = real(A)*NR + 1i*(imag(A)*NR) = 0
The opposite is also true.
Since
A*NR = 0 in the complex field
because NR is real, therefore the above is equivalent to
real(A)*NR = 0
and because
A*(1i*NR) = 0
as well, this implies
imag(A)*NR = 0
  3 comentarios
Bruno Luong
Bruno Luong el 24 de Oct. de 2018
Editada: Bruno Luong el 24 de Oct. de 2018
You should't accept my comment, but Torsten's reply (if he put his code in a separate answer)
Torsten
Torsten el 24 de Oct. de 2018
You were the first who answered ( and your answer is not wrong :-) )
Best wishes
Torsten.

Iniciar sesión para comentar.

Categorías

Más información sobre Parallel Computing Fundamentals 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