I'd like to solve this equation for $A = B$ where $B = I$, which represents 3 systems of 3 linear equations, for $a, b, c, d, e, f$, without writing LinearSolve
3 times. What is a simple way to accomplish this?
Input:
A = {
{a + b, -a + b, a + 2 b},
{c + d, -c + d, c + 2 d},
{e + f, -e + f, e + 2 b}
};
MatrixForm[A]
B = IdentityMatrix[3]
(*want to solve A == B, but probably wrong...*)
M = LinearSolve[A, IdentityMatrix[3]]
MatrixForm[M]
Answer
As the documentation says : LinearSolve[m,b]
finds an x
which solves the matrix equation m.x == b
, i.e. in your case it finds x
such that A.x == B
(Dot[A,x] == B
). However your task is to find A
solving an adequate system of 9 linear equations
for 6 variables a,b,c,d,e,f
knowing that B
is an IdentityMatrix
. You are trying to solve an overdetermined system of linear equations and there could exist any solutions only if certain compatibility conditions were satisfied.
For your task use simply Solve
:
Solve[A == B, {a, b, c, d, e, f}]
{}
or
Reduce[A == B, {a, b, c, d, e, f}]
False
This means that there are no solutions, i.e. the above equation is contradictory. You could use Variables[A]
instead of specifying variables {a, b, c, d, e, f}
.
Consider a different matrix equation where we have 4
unknowns and 4
independent equations e.g. :
A1 = {{a + b, a - 2 b}, {a - c, c + d}};
Solve[ A1 == IdentityMatrix[2], {a, b, c, d}]
{{a -> 2/3, b -> 1/3, c -> 2/3, d -> 1/3}}
i.e. there is only one solution.
Edit
Inverse[A]
could be a solution assuming that you wanted x
in the matrix equation A.x == IdentityMatrix[3]
when A
was given. There exists an inverse matrix to A
under this condition :
Det[ A] != 0
i.e.
-4 b^2 c + 4 a b d + 4 b c f - 4 a d f != 0
Neither A
exists nor this assumption can be satisfied when A
is defined as in your question and B
is an identity matrix.
Comments
Post a Comment