Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: A=B*C how to get B?
Replies: 3   Last Post: Jul 13, 2006 4:02 PM

 Messages: [ Previous | Next ]
 Randy Poe Posts: 5,658 Registered: 12/6/04
Re: A=B*C how to get B?
Posted: Jul 13, 2006 11:46 AM

meris300@gmail.com wrote:
> hello,
>
> I have a system of equations that can be written in matrix vector
> notation as follows:
>
> A(1*n)=B(1*m)*C(m*n)
>
> In a book i saw that B = A* C' * (C*C')^(-1)
>
> However, i do not recall how to get to that solution. can anybody help
> me with this?

It's the least-squares solution. I'm used to working with
column vectors but let me see if I can do this right.

Look for the B that minimizes || A - BC ||^2
= (A-BC)(A-BC)' = AA' - AC'B' - BCA' + BCC'B'

Note: AC'B' is a scalar so equals its transpose BCA',
|| A - BC ||^2 = A'A - 2AC'B' + BCC'B'

Now take the gradient of this with respect to B and set it =0.
-2AC' + 2BCC'

B(CC') = (AC')

This is a full-rank linear system, and its solution is

B = (AC')(CC')^-1

Note that there may be no B which exactly solves your
original problem A = BC. This B is the one which minimizes
the difference between left and right hand sides in the
sense of the Euclidean norm.

- Randy

Date Subject Author
7/13/06 meris300@gmail.com
7/13/06 Toni Lassila
7/13/06 Randy Poe
7/13/06 meris300@gmail.com