Help with simple matrix algebra

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 2K views
rusty009
Messages
68
Reaction score
0
Hi all,

I'm having trouble solving this matrix problem, basically I have,

s=r*H

where s = [ 1 1 0] and,

H=
1 0 1 1 0 0
0 1 1 0 1 0
1 1 0 0 0 1

I am trying to find out what the matrix r is but it won't work in matlab. I have tried inverting H but it isn't a square matrix. So I tried pseudoinverse psinv and it still doesn't seem to be working. Any help would be greatly appreciated.
 
Physics news on Phys.org
Your problem is that this is impossible. H has three rows and 6 columns so r must have three columns. If it also has n rows, s would have to have n rows and 6 columns. Since s has one row, n can be 1 but s has 3 columns, not 6.
 
Your equation is of the form :
[tex] \vec{a} = \vec{b}A[/tex]

Where b is the 1x3 vector we are looking for and a is a 1x6 vector . As you mentioned, your matrix isn't square an thus not normally invertible. By the Moore-Penrose Pseudoinverse, there does exist a solution (infinitely many actually).
Your matrix A is an mxn matrix where m<n and is also full-rank, so:
[tex] A^\dagger = (A^TA)^{-1}A^T[/tex]
Where A-dagger is the Moore-Penrose Pseudoinverse. Notice that only because A was full rank could you use this formula, otherwise you have to use the singular value decomposition .
I've tried [tex]A^\dagger = (A^TA)^{-1}A^T[/tex] with your matrix but [tex]A^TA[/tex] turns out to be singular. I suppose you could try to take the pseudoinverse of that too, but then I'm not sure if everything will work out as you had wanted.

Edit: I made a silly mistake with the size of r :redface: (as HallsofIvy pointed out). The above would have been useful for consistent sizes and a full rank matrix.
 
Last edited: