finding Annihilator matrix on the left for a matrix

17 visualizzazioni (ultimi 30 giorni)
I have a matrix A which is m by n. I want to find matrix F which annhilates the matrix A on the left i.e F*A = 0. The book suggest that this can be done if matrix F kernel is in the range of matrix A. How can I implement in Matlab?

Risposte (1)

David Goodmanson
David Goodmanson il 19 Ago 2021
Modificato: David Goodmanson il 19 Ago 2021
HI Waqar,
The matlab function null(A) creates a matrix such that A*null(A) = 0. But you want the matrix F to multiply A on the left. Replacing A by its transpose, A'*null(A') = 0. Then taking the transpose of that expression, null(A')'*A = 0 . So
F = null(A')' [1]
works. But you also have a choice about the size of F. For example, suppose A is 8x4. The rank of A is the number of linearly independent (LI) columns of A. There are only 4 columns, so rA = rank(A) is at most 4 and could be less.
Since the columns of A have 8 elements, then (regardless of what appears in any matrix), there can be 8 LI columns all together. Suppose rA = 3. This means that one can construct 8-rA = 5 LI column vectors in the so-called null space, each of which can be constructed to be perpendicular to all 3 LI columns in A.
Each of the vectors in the null space is a row of F (so that matrix multiplication F*A works out dimensionally). The F created by [1] has all 5 LI vectors and is 5x8. F*A = 0 and the resultng 0 matrix is 5x4. But every row of F annihilates A independently. Depending on what you want to do, you could use, say, just the third row of F as the new F, in which case F*A = 0 and the resulting 0 matrix is 1x4. Or the first two rows of F as the new F, in which case the resulting 0 matrix is 2x4. Or you can make n linear combinations of the rows of F as the new F, in which case the resulting 0 matrix is nx4.

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by