The Math Forum



Search All of the Math Forum:

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


Math Forum » Discussions » sci.math.* » sci.math

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

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   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
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply


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




Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© The Math Forum at NCTM 1994-2017. All Rights Reserved.