Solve for unknown matrix

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;

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.

HallsofIvy
Homework Helper
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.

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

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

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

Just curious, how would these look like?

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.

thanx all for the suggestions

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

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.

hotvette
Homework Helper
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;

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.

hotvette
Homework Helper
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:
D H
Staff Emeritus