![]() |
|
#1
|
|||
|
|||
![]()
Im pretty rusty when it comes to matrices, and I was wondering if someone could help me with the following problem... I need it for some code Im writing
given that A*B = C where, A, B and C are all matrices of dimensions in the form: A: (m X n) B: (n X 1) C: (m X 1) (with m, n > 1) is there a QUICK method of determining B, given A and C? Also, it might be important to note that the sum of each of the columns of A is 1, which also means that sum(B) == sum(C). So, take, for example: [0.8 0.6 0.4] X [0.4]..=..[0.48] [0.2 0.4 0.6] .. [0.2]......[0.22] .....................[0.1] Is there a quick way to go from (0.48; 0.22), to (0.4, 0.2, 0.1), given that you also know the first matrix Im not really sure how to define 'quick', but assume that what I want to do means that the above operation is carried out thousands of times. Bascially, I dont want to have to row reduce / solve the equation each time. thanks EDIT: m != n |
#2
|
|||
|
|||
![]()
In general, if n > m as in your example, the problem is underdetermined. You have m equations and n unknowns. In your example, the vector (0.3, 0.4, 0) is also a solution.
On the other hand, if n < m the problem is overdetermined. It may not have a solution. In either case, you must have some criteria for choosing the "best" solution. The methods for solving problems of this type are somewhat complex. Try looking up singular value decomposition. |
#3
|
|||
|
|||
![]()
Row reduction is the only way to do this kind of operation. I recommend using a TI89 because you can enter the matrix in standard form:
[A|C] and just tell it to perform row reduction. |
#4
|
|||
|
|||
![]()
if A*B = C, then
A^-1 * A * B = A^-1 * C so B = A^-1 * C |
#5
|
|||
|
|||
![]()
inverting a matrix is certainly not any easier than row reduction.
|
#6
|
|||
|
|||
![]()
is it even possible to invert a non square matrix?
I didnt think it was.. but, like I said, Im not that knowledgeable of matrices (also... yeah, it does seem like the only way is to RR it) |
![]() |
|
|