Solve for unknown matrix

1. Aug 2, 2007

tapashettisr

I have an equation as follows:

A*Q*B=C
Here A is 2X4 known matrix
Q is a 4X4 unknown matrix
B is a 4X2 known matrix
C is a 2X2 known matrix
How can I solve for unknown matrix Q;

2. Aug 2, 2007

D H

Staff Emeritus
You have 4 equations in 16 unknowns. Whatever Q you find will not be unique. Decompose A and B via singular value decomposition to find the pseudoinverses of A and B.

3. Aug 2, 2007

HallsofIvy

Staff Emeritus
Or, treating it purely as a matrix problem, multiply on the right on both sides of the equation by B-1 and on the left by A-1, assuming those inverses exist:

A-1*A*Q*B*B-1= A-1CB-1
Q= A-1CB-1

Of course, if either A or B does not have an inverse, there may be no solution or there may be an infinite number of solutions.

4. Aug 2, 2007

nicktacik

Er, B and A are not square matrices, so they do not have inverses, no?

5. Aug 2, 2007

HallsofIvy

Staff Emeritus
I really need to learn to read these posts! Of course, they might have "generalized inverses" in which case the same comments apply.

6. Aug 2, 2007

Just curious, how would these look like?

7. Aug 2, 2007

D H

Staff Emeritus
One way to form the pseudoinverse (the Moore-Penrose psuedoinverse) of a matrix A is to decompose the matrix into a form $$A=UVW^T$$ where U and W are orthonormal matrices and V is a diagonal matrix. (This is the singular value decomposition of the matrix.) Form the pseudoinverse $$V^\dagger$$ of $$V$$ by taking the inverse of each non-zero element of $$V$$. Then the pseudoinverse of $$A$$ is $$A^{\dagger}=WV^{\dagger}U^T$$. Note that the pseudoinverse is the inverse if A is not singular.

8. Aug 3, 2007

tapashettisr

thanx all for the suggestions

9. Aug 3, 2007

tapashettisr

Unlike in case of square matrix, in case of rectangular matrix inv(A)*A is not equal to A*inv(A). If we find the pseudoinverse of A then A*inv(A)=identity matrix but inv(A)*A does not yield identity matrix. Hence, I am not able to understand how the suggested solution given below would work?

Inv(A)*A*Q*B*inv(B)=iinv(A)*C*inv(B)=Q

10. Nov 4, 2010

tayyaba aftab

If i have a unknown 4*4 matrix A
and i have an equation like AQA(dagger)=block diagnol matrix
all the matrices are 4*4
how can i evaluate 16 unknowns from these 16 equations using mathematica,as terms involved are much complicated.

11. Nov 7, 2010

hotvette

This problem can be treated as a succession of two under determined problems that can be solved for least norm solutions. If you let Z = QB, the result is AZ=C, which can be solved as a mininum norm problem using QR factorization. If AT is decomposed into QR (not the same Q as the original problem), Z can be solved as follows:

Solve RTy = C for y. Then Z = Qy ==> least norm solution

You then have QB = Z. Taking transpose of both sides, you get BTQT=ZT which can be solved for QT in exactly the same fashion. It does work. I tried it on a made up problem. The solution isn't unique, there are multiple possible values for Q, but the above does give you a way to find a solution.

12. Nov 9, 2010

hotvette

I think my last reply was too convoluted. Simply put, if Ax=b is an underdetermined system (where A has more columns than rows), it is easy to show that the minimum norm solution (assuming AAT isn't singular) is:

xmin norm = AT(AAT)-1b

Last edited: Nov 9, 2010
13. Nov 9, 2010

D H

Staff Emeritus
That works. That is a special case of the Moore-Penrose psuedoinverse cited in post #7.