0

I am trying to find the general formula of an inverse matrix of size 4 x 4. What I wrote is simply this:

A = [a b c d ; e f g h ; i l m n; o p q r];
inv(A)

However, the MATLAB console returns the following: undefined function or variable 'a'. How should I write the matrix to get the generic formula without putting in numeric values and doing this symbolically?

1 Answer 1

1

You are getting that error because those variables aren't defined in MATLAB... at least, not currently. You'll need to use the Symbolic Mathematics Toolbox for that. One way is to create each variable: a up to p using sym, create a 4 x 4 matrix of these variables, then find the inverse.

sym a b c d e f g h i j k l m n o p;
A = [a b c d; e f g h; i j k l; m n o p];
invA = inv(A);

However, that leads to bad coding. Defining all of those symbolic variables gets rather unwieldy. Instead, I would use sym to create a 4 x 4 matrix of variables that follow a numeric pattern, then go ahead and find the inverse of that:

>> A = sym('A%d%d', [4 4])

A =

[ A11, A12, A13, A14]
[ A21, A22, A23, A24]
[ A31, A32, A33, A34]
[ A41, A42, A43, A44]

>> invA = inv(A)

invA =

[  (A22*A33*A44 - A22*A34*A43 - A23*A32*A44 + A23*A34*A42 + A24*A32*A43 - A24*A33*A42)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), -(A12*A33*A44 - A12*A34*A43 - A13*A32*A44 + A13*A34*A42 + A14*A32*A43 - A14*A33*A42)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41),  (A12*A23*A44 - A12*A24*A43 - A13*A22*A44 + A13*A24*A42 + A14*A22*A43 - A14*A23*A42)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), -(A12*A23*A34 - A12*A24*A33 - A13*A22*A34 + A13*A24*A32 + A14*A22*A33 - A14*A23*A32)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41)]
[ -(A21*A33*A44 - A21*A34*A43 - A23*A31*A44 + A23*A34*A41 + A24*A31*A43 - A24*A33*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41),  (A11*A33*A44 - A11*A34*A43 - A13*A31*A44 + A13*A34*A41 + A14*A31*A43 - A14*A33*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), -(A11*A23*A44 - A11*A24*A43 - A13*A21*A44 + A13*A24*A41 + A14*A21*A43 - A14*A23*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41),  (A11*A23*A34 - A11*A24*A33 - A13*A21*A34 + A13*A24*A31 + A14*A21*A33 - A14*A23*A31)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41)]
[  (A21*A32*A44 - A21*A34*A42 - A22*A31*A44 + A22*A34*A41 + A24*A31*A42 - A24*A32*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), -(A11*A32*A44 - A11*A34*A42 - A12*A31*A44 + A12*A34*A41 + A14*A31*A42 - A14*A32*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41),  (A11*A22*A44 - A11*A24*A42 - A12*A21*A44 + A12*A24*A41 + A14*A21*A42 - A14*A22*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), -(A11*A22*A34 - A11*A24*A32 - A12*A21*A34 + A12*A24*A31 + A14*A21*A32 - A14*A22*A31)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41)]
[ -(A21*A32*A43 - A21*A33*A42 - A22*A31*A43 + A22*A33*A41 + A23*A31*A42 - A23*A32*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41),  (A11*A32*A43 - A11*A33*A42 - A12*A31*A43 + A12*A33*A41 + A13*A31*A42 - A13*A32*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), -(A11*A22*A43 - A11*A23*A42 - A12*A21*A43 + A12*A23*A41 + A13*A21*A42 - A13*A22*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41),  (A11*A22*A33 - A11*A23*A32 - A12*A21*A33 + A12*A23*A31 + A13*A21*A32 - A13*A22*A31)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41)]

The notation here is that the first subscript denotes the row, and the second subscript denotes the column. Specifically Aij is the entry for row i and column j. I'll let you figure out the rest.

4
  • You can also export the result as code with ccode(inv(A)) or fortran(inv(A)) Commented Oct 12, 2015 at 20:15
  • @ja72 - Interesting. Thanks!
    – rayryeng
    Commented Oct 12, 2015 at 20:16
  • Better to export to a file with ccode(inv(A),'file','inv4.c') because it creates temporary variables for common expressions and the resulting calculation is more optimized. Commented Oct 12, 2015 at 20:30
  • @ja72 - I'm not sure if the OP wants to export this to code. I think they just want to see what the inverse looks like.
    – rayryeng
    Commented Oct 12, 2015 at 20:57

Not the answer you're looking for? Browse other questions tagged or ask your own question.