Skip to main content
added 428 characters in body
Source Link
Eli Lansey
  • 7.6k
  • 3
  • 39
  • 73

Mathematica does not support this directly. You can do things of this sort using an external package called NCAlgebra.

http://math.ucsd.edu/~ncalg/

The relevant documentation may be found at

http://math.ucsd.edu/~ncalg/DOWNLOAD2010/DOCUMENTATION/html/NCBIGDOCch4.html#x8-510004.4

In particular have a look at "4.4.8 NCLDUDecomposition[aMatrix, Options]"

Using this package, you would find the block inverse of the example matrix using:

c=0; inverse = NCInverse[matrix] (* Out[] = {{inv[a], -inv[a] ** b ** inv[d]}, {0, inv[d]}} *) 

Here inv[a] represents the general inverse of the a block of the matrix and the ** represents non-commutative (i.e. matrix) multiplication. This approach works for larger (3x3, 4x4, etc) square block matrices as well.

Mathematica does not support this directly. You can do things of this sort using an external package called NCAlgebra.

http://math.ucsd.edu/~ncalg/

The relevant documentation may be found at

http://math.ucsd.edu/~ncalg/DOWNLOAD2010/DOCUMENTATION/html/NCBIGDOCch4.html#x8-510004.4

In particular have a look at "4.4.8 NCLDUDecomposition[aMatrix, Options]"

Mathematica does not support this directly. You can do things of this sort using an external package called NCAlgebra.

http://math.ucsd.edu/~ncalg/

The relevant documentation may be found at

http://math.ucsd.edu/~ncalg/DOWNLOAD2010/DOCUMENTATION/html/NCBIGDOCch4.html#x8-510004.4

In particular have a look at "4.4.8 NCLDUDecomposition[aMatrix, Options]"

Using this package, you would find the block inverse of the example matrix using:

c=0; inverse = NCInverse[matrix] (* Out[] = {{inv[a], -inv[a] ** b ** inv[d]}, {0, inv[d]}} *) 

Here inv[a] represents the general inverse of the a block of the matrix and the ** represents non-commutative (i.e. matrix) multiplication. This approach works for larger (3x3, 4x4, etc) square block matrices as well.

Source Link
Daniel Lichtblau
  • 61.1k
  • 2
  • 107
  • 206

Mathematica does not support this directly. You can do things of this sort using an external package called NCAlgebra.

http://math.ucsd.edu/~ncalg/

The relevant documentation may be found at

http://math.ucsd.edu/~ncalg/DOWNLOAD2010/DOCUMENTATION/html/NCBIGDOCch4.html#x8-510004.4

In particular have a look at "4.4.8 NCLDUDecomposition[aMatrix, Options]"