Matrices-Unit14.mws

MATRICES AND MATRIX OPERATIONS: Unit 14

Dr. Wlodzislaw Kostecki

The Papua New Guinea University of Technology (PNGUT)

Department of Electrical and Communication Engineering

Lae, Morobe Province

Papua New Guinea

Copyright ฉ 2000 by Wlodzislaw Kostecki

All rights reserved

-------------------------------------------------------------------

(14) The inverse of a matrix

OBJECTIVES :

• To provide alternative definitions of the inverse or reciprocal of a square matrix and state the necessary condition for its existence.

• To provide alternative methods of matrix inversion with Maple .

• To specify and illustrate some properties of the matrix inverse.

• To show how the multiplicative inverse matrix may be used in Maple for computing the "quotient" of two square non-singular matrices.

> restart : with(linalg, adj, coldim, det, diag, inverse, minor, multiply, rowdim, transpose) :

The inverse or reciprocal of a square matrix is the quotient of the adjoint of the matrix and the determinant of the matrix

Inv [ A ] = Adj [ A ]/ Det [ A ]

The inverse of a matrix exists if and only if its determinant is not zero . A matrix that has an inverse is called non-singular or invertible .

Consider a ( 2 2 ) matrix [ A ] given as

> A := matrix(2, 2, [a[11], a[12], a[21], a[22]]) : A = matrix(A) ;

A = matrix([[a[11], a[12]], [a[21], a[22]]])

The matrix inverse to the matrix [ A ] is a ( 2 2 ) matrix, which can be obtained using any of the following alternative methods.

Method 1 . Using the defining formula for the matrix inverse and the evalm function:

> `inv(A)` := evalm(adj(A)/det(A)) : Inv(A) = matrix(`inv(A)`) ;

Inv(A) = matrix([[a[22]/(a[11]*a[22]-a[12]*a[21]), ...

Method 2 . Using the inverse function:

> `inv(A)` := inverse(A) : Inv(A) = matrix(`inv(A)`) ;

Inv(A) = matrix([[a[22]/(a[11]*a[22]-a[12]*a[21]), ...

Method 3 . Using the power -1 and the evalm function:

> `inv(A)` := evalm(A^(-1)) : Inv(A) = matrix(`inv(A)`) ;

Inv(A) = matrix([[a[22]/(a[11]*a[22]-a[12]*a[21]), ...

N.B. An equivalent form to evalm(A^(-1)) is evalm(1/A) .

As a numerical example, consider a ( 3 3 ) matrix [ B ] given as

> B := matrix(3, 3, [3, -2, 1, -2, 6, 4, 1, 4, 8]) : B = matrix(B) ;

B = matrix([[3, -2, 1], [-2, 6, 4], [1, 4, 8]])

The inverse of the matrix [ B ] is

> `inv(B)` := inverse(B) : Inv(B) = matrix(`inv(B)`) ;

Inv(B) = matrix([[16/21, 10/21, -1/3], [10/21, 23/4...

Floating-point evaluation of the inverse of matrix [ B ] gives

> `inv(B)` := evalf(evalm(`inv(B)`)) : Inv(B) = matrix(`inv(B)`) ;

Inv(B) = matrix([[.7619047619, .4761904762, -.33333...

* * *

N.B. Some sources define a matrix inverse using the concept of the cofactor matrix – refer to Unit (13) for the definition of that matrix. According to this approach, the inverse is defined as follows.

The inverse of a square matrix [ A ] is the quotient of the transpose of the cofactor matrix associated with [ A ] and the determinant of [ A ]

Inv [ A ] = Transp(Cofactor [ A ] ) / Det [ A ]

Exemplarily, consider a ( 3 3 ) matrix [ A ] given as

> A := matrix(3, 3, [2, 1, 3, 4, 2, -1, 2, -1, 1]) : A = matrix(A) ;

A = matrix([[2, 1, 3], [4, 2, -1], [2, -1, 1]])

and obtain the inverse of [ A ].

Step 1 . Compute the cofactor matrix of [ A ] using the double for -loop construct:

> cofactor(A) := matrix(3, 3) :

> for i to rowdim(A) do for j to coldim(A) do cofactor(A)[i,j] := (-1)^(i+j)*det(minor(A, i, j)) : od : od :

> cofactor(A) := matrix(cofactor(A)) : Cofactor(A) = matrix(cofactor(A)) ;

Cofactor(A) = matrix([[1, -6, -8], [-4, -4, 4], [-7...

Step 2 . Compute the transpose of the cofactor matrix:

> `transp(cofactor(A))` := transpose(cofactor(A)) :

> Transp(Cofactor(A)) = matrix(`transp(cofactor(A))`) ;

Transp(Cofactor(A)) = matrix([[1, -4, -7], [-6, -4,...

Step 3 . Compute the determinant of [ A ]:

> `det(A)` := det(A) : Det(A) = `det(A)` ;

Det(A) = -28

Step 4 . Compute the inverse of [ A ] using the definition provided earlier:

> `inv(A)` := evalm(`transp(cofactor(A))`/`det(A)`) : Inv(A) = matrix(`inv(A)`) ;

Inv(A) = matrix([[-1/28, 1/7, 1/4], [3/14, 1/7, -1/...

Step 5 . Verify this result using the inverse function:

> `inv(A)` := inverse(A) : Inv(A) = matrix(`inv(A)`) ;

Inv(A) = matrix([[-1/28, 1/7, 1/4], [3/14, 1/7, -1/...

Both matrix inverses are equal.

* * *

N.B. If the commutative property of multiplication holds for non-singular matrices [ A ] and [ B ], then it also holds for the following pairs of matrices:

1. Inv [ A ] Inv [ B ] = Inv [ B ] Inv [ A ]

2. Inv [ A ] [ B ] = [ B ] Inv [ A ]

3. [ A ] Inv [ B ] = Inv [ B ] [ A ]

Exemplarily, consider the commuting matrices [ A ] and [ B ] that are used in Unit (4), i.e.

> A := matrix(2, 2, [6, 8, 4, 6]) : B := matrix(2, 2, [15, 20, 10, 15]) : A = matrix(A) ; B = matrix(B) ;

A = matrix([[6, 8], [4, 6]])

B = matrix([[15, 20], [10, 15]])

1(a). The product Inv [ A ] Inv [ B ] is

> `inv(A) inv(B)` := evalm(inverse(A) &* inverse(B)) : Inv(A) * Inv(B) = matrix(`inv(A) inv(B)`) ;

Inv(A)*Inv(B) = matrix([[17/10, -12/5], [-6/5, 17/1...

1(b). The product Inv [ B ] Inv [ A ] is

> `inv(B) inv(A)` := evalm(inverse(B) &* inverse(A)) : Inv(B) * `Inv(A)` = matrix(`inv(B) inv(A)`) ;

Inv(B)*`Inv(A)` = matrix([[17/10, -12/5], [-6/5, 17...

The resultant matrices of 1(a) and 1(b) are equal.

2(a). The product Inv [ A ] [ B ] is

> `inv(A) B` := evalm(inverse(A) &* B) : Inv(A) * B = matrix(`inv(A) B`) ;

Inv(A)*B = matrix([[5/2, 0], [0, 5/2]])

2(b). The product [ B ] Inv [ A ] is

> `B inv(A)` := evalm(B &* inverse(A)) : B * `Inv(A)` = matrix(`B inv(A)`) ;

B*`Inv(A)` = matrix([[5/2, 0], [0, 5/2]])

The resultant matrices of 2(a) and 2(b) are equal.

3(a). The product [ A ] Inv [ B ] is

> `A inv(B)` := evalm(A &* inverse(B)) : A * Inv(B) = matrix(`A inv(B)`) ;

A*Inv(B) = matrix([[2/5, 0], [0, 2/5]])

3(b). The product Inv [ B ] [ A ] is

> `inv(B) A` := evalm(inverse(B) &* A) : `Inv(B)` * A = matrix(`inv(B) A`) ;

`Inv(B)`*A = matrix([[2/5, 0], [0, 2/5]])

The resultant matrices of 3(a) and 3(b) are equal.

* * *

N.B. If two matrices satisfy the commutative law of multiplication and their matrix product is the unit matrix, i.e.

[ A ] [ B ] = [ B ] [ A ] = [ U ]

then matrix [ B ] is the inverse of matrix [ A ].

Exemplarily, consider ( 2 2 ) matrices [ A ] and [ B ] given as

> A := matrix(2, 2, [3, 4, 2, 3]) : B := matrix(2, 2, [3, -4, -2, 3]) : A = matrix(A) ; B = matrix(B) ;

A = matrix([[3, 4], [2, 3]])

B = matrix([[3, -4], [-2, 3]])

(a) The product [ A ] [ B ] is the ( 2 2 ) unit matrix:

> `AB` := multiply(A, B) : `A B` = matrix(`AB`) ;

`A B` = matrix([[1, 0], [0, 1]])

(b) The product [ B ] [ A ] is the ( 2 2 ) unit matrix:

> `BA` := multiply(B, A) : `B A` = matrix(`BA`) ;

`B A` = matrix([[1, 0], [0, 1]])

(c) The inverse of matrix [ A ] is the following matrix:

> `inv(A)` := inverse(A) : Inv(A) = matrix(`inv(A)`) ;

Inv(A) = matrix([[3, -4], [-2, 3]])

which is equal to matrix [ B ].

* * *

N.B. If inversion of a matrix [ A ] does not change the matrix, then

( [ U ] – [ A ] ) ( [ U ] + [ A ] ) = [ 0 ]

Exemplarily, consider a non-singular ( 3 3 ) matrix [ A ] given as

> A := matrix(3, 3, [1, 0, 0, 0, 0, 1, 0, 1, 0]) : A = matrix(A) ;

A = matrix([[1, 0, 0], [0, 0, 1], [0, 1, 0]])

(a) The inverse of [ A ] is the matrix

> `inv(A)` := inverse(A) : Inv(A) = matrix(`inv(A)`) ;

Inv(A) = matrix([[1, 0, 0], [0, 0, 1], [0, 1, 0]])

which is equal to the matrix [ A ].

(b) With the appriopriately sized unit matrix [ U ], i.e.

> U := diag(1, 1, 1) : U = matrix(U) ;

U = matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]])

the product ( [ U ] – [ A ] ) ( [ U ] + [ A ] ) is

> `(U-A) (U+A)` := evalm((U-A) &* (U+A)) : '(U - A) * (U + A)' = matrix(`(U-A) (U+A)`) ;

(U-A)*(U+A) = matrix([[0, 0, 0], [0, 0, 0], [0, 0, ...

which is a ( 3 3 ) zero matrix.

* * *

N.B. The product of the inverse of a matrix and the matrix itself obeys the commutative law . The product matrix is the unit matrix

(Inv [ A ] ) [ A ] = [ A ] (Inv [ A ] ) = [ U ]

Exemplarily, consider a ( 3 3 ) invertible matrix [ A ] given as

> A := matrix(3, 3, [2, 1, 0, 1, -1, 3, 0, 6, 2]) : A = matrix(A) ;

A = matrix([[2, 1, 0], [1, -1, 3], [0, 6, 2]])

(a) The product (Inv [ A ] ) [ A ] is

> `inv(A) A` := multiply(inverse(A), A) : Inv(A)*A = matrix(`inv(A) A`) ;

Inv(A)*A = matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]]...

(b) The product [ A ] (Inv [ A ] ) is

> `A inv(A)` := multiply(A, inverse(A)) : A * `Inv(A)` = matrix(`A inv(A)`) ;

A*`Inv(A)` = matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1...

Both product matrices are identical and equal to the ( 3 3 ) unit matrix [ U ]

> U = matrix(U) ;

U = matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]])

* * *

N.B. The product of the inverse and transpose of a symmetric matrix is the unit matrix

(Inv [ A ] ) (Transp [ A ] ) = [ U ]

Exemplarily, consider a ( 3 3 ) symmetric matrix [ A ] given as

> A := matrix(3, 3, [5, 1, 3, 1, 2, -2, 3, -2, 7]) : A = matrix(A) ;

A = matrix([[5, 1, 3], [1, 2, -2], [3, -2, 7]])

The product (Inv [ A ] ) (Transp [ A ] ) is the ( 3 3 ) unit matrix

> `inv(A) transp(A)` := evalm(inverse(A) &* transpose(A)) :

> Inv(A) * Transp(A) = matrix(`inv(A) transp(A)`) ;

Inv(A)*Transp(A) = matrix([[1, 0, 0], [0, 1, 0], [0...

* * *

N.B. The inverse of the matrix inverse is equal to the original matrix

Inv(Inv [ A ] ) = [ A ]

Exemplarily, consider a ( 2 2 ) matrix [ A ] given as

> A := matrix(2, 2, [a[11], a[12], a[21], a[22]]) : A = matrix(A) ;

A = matrix([[a[11], a[12]], [a[21], a[22]]])

The inverse of the inverse of the matrix, Inv(Inv [ A ] ) , is the following ( 2 2 ) matrix:

> `inv(inv(A))` := inverse(inverse(A)) : Inv(Inv(A)) = matrix(`inv(inv(A))`) ;

Inv(Inv(A)) = matrix([[a[11], a[12]], [a[21], a[22]...

This operation may be displayed in "like-in-a-book" form, viz.

> Inv(Inv(matrix(A))) = matrix(`inv(inv(A))`) ;

Inv(Inv(matrix([[a[11], a[12]], [a[21], a[22]]]))) ...

* * *

N.B. The transpose of the matrix inverse is equal to the inverse of the matrix transpose

Transp(Inv [ A ] ) = Inv(Transp [ A ] )

Exemplarily, consider a ( 2 2 ) matrix [ A ] given as

> A := matrix(2, 2, [a[11], a[12], a[21], a[22]]) : A = matrix(A) ;

A = matrix([[a[11], a[12]], [a[21], a[22]]])

(a) The transpose of the matrix inverse, Transp(Inv [ A ] ) , is the following ( 2 2 ) matrix:

> `transp(inv(A))` := transpose(inverse(A)) : Transp(Inv(A)) = matrix(`transp(inv(A))`) ;

Transp(Inv(A)) = matrix([[a[22]/(a[11]*a[22]-a[12]*...

(b) The inverse of the matrix transpose, Inv(Transp [ A ] ) , is the following ( 2 2 ) matrix:

> `inv(transp(A))` := inverse(transpose(A)) : Inv(Transp(A)) = matrix(`inv(transp(A))`) ;

Inv(Transp(A)) = matrix([[a[22]/(a[11]*a[22]-a[12]*...

This operation may be displayed in "like-in-a-book" form, viz.

> Transp(Inv(matrix(A))) = Inv(Transp(matrix(A))) ;

Transp(Inv(matrix([[a[11], a[12]], [a[21], a[22]]])...

* * *

N.B. The inverse of the product of two matrices is the product of the two inversed matrices but in the reverse order

Inv( [ A ] [ B ] ) = Inv [ B ] Inv [ A ]

Exemplarily, consider ( 2 2 ) matrices [ A ] and [ B ] given as

> A := matrix(2, 2, [a[11], a[12], a[21], a[22]]) : B := matrix(2, 2, [b[11], b[12], b[21], b[22]]) :

> A = matrix(A) ; B = matrix(B) ;

A = matrix([[a[11], a[12]], [a[21], a[22]]])

B = matrix([[b[11], b[12]], [b[21], b[22]]])

(a) The inverse of the product of the two matrices, Inv( [ A ] [ B ] ) , is the following ( 2 2 ) matrix:

> `inv(AB)` := inverse(multiply(A, B)) : Inv(A * B) = matrix(`inv(AB)`) ;

Inv(A*B) = matrix([[(a[21]*b[12]+a[22]*b[22])/(a[11...
Inv(A*B) = matrix([[(a[21]*b[12]+a[22]*b[22])/(a[11...
Inv(A*B) = matrix([[(a[21]*b[12]+a[22]*b[22])/(a[11...
Inv(A*B) = matrix([[(a[21]*b[12]+a[22]*b[22])/(a[11...
Inv(A*B) = matrix([[(a[21]*b[12]+a[22]*b[22])/(a[11...

(b) The product of the two inversed matrices multiplied in the reverse order, Inv [ B ] Inv [ A ], is the following ( 2 2 ) matrix:

> `inv(B) inv(A)` := multiply(inverse(B), inverse(A)) : Inv(B) * Inv(A) = matrix(`inv(B) inv(A)`) ;

Inv(B)*Inv(A) = matrix([[b[22]*a[22]/((b[11]*b[22]-...
Inv(B)*Inv(A) = matrix([[b[22]*a[22]/((b[11]*b[22]-...
Inv(B)*Inv(A) = matrix([[b[22]*a[22]/((b[11]*b[22]-...
Inv(B)*Inv(A) = matrix([[b[22]*a[22]/((b[11]*b[22]-...
Inv(B)*Inv(A) = matrix([[b[22]*a[22]/((b[11]*b[22]-...

To obtain the display of this product matrix in a compact form, the map function is used to access the matrix elements and apply the function normal with the argument expanded to each element. It is the arrow-type procedure, ( x-> ) , in which x is a local variable . In this way, the procedure is applied to each operand (matrix element) of the second argument (the matrix) of the map function.

> `inv(B) inv(A)` := map(x->normal(x, expanded), `inv(B) inv(A)`) :

> Inv(B) * Inv(A) = matrix(`inv(B) inv(A)`) ;

Inv(B)*Inv(A) = matrix([[(a[21]*b[12]+a[22]*b[22])/...
Inv(B)*Inv(A) = matrix([[(a[21]*b[12]+a[22]*b[22])/...
Inv(B)*Inv(A) = matrix([[(a[21]*b[12]+a[22]*b[22])/...
Inv(B)*Inv(A) = matrix([[(a[21]*b[12]+a[22]*b[22])/...
Inv(B)*Inv(A) = matrix([[(a[21]*b[12]+a[22]*b[22])/...

The product matrix Inv [ B ] Inv [ A ] displayed in the compact form is clearly equal to the matrix Inv( [ A ] [ B ] ) of (a).

* * *

N.B. The determinant of a non-singular square matrix is the reciprocal of the determinant of the inversed matrix

Det [ A ] = 1 / Det(Inv [ A ] )

Exemplarily, consider a (2 ื 2) matrix [ A ] given as

> A := matrix(2, 2, [1, 3, 2, 4]) : A = matrix(A) ;

A = matrix([[1, 3], [2, 4]])

The inverse of [ A ] is the following (2 ื 2) matrix:

> `inv(A)` := inverse(A) : Inv(A) = matrix(`inv(A)`) ;

Inv(A) = matrix([[-2, 3/2], [1, -1/2]])

(a) The determinant of the matrix, Det [ A ], is

> `det(A)` := det(A) : Det(A) = `det(A)` ;

Det(A) = -2

(b) The reciprocal of the determinant of the inversed matrix, 1 / Det(Inv [ A ] ) , is

> `1/det(inv(A))` := 1/det(`inv(A)`) : 1/Det(Inv(A)) = `1/det(inv(A))` ;

1/Det(Inv(A)) = -2

N.B. This property of the determinant is used in solving systems of linear algebraic inhomogeneous equations by means of Cramer’ s rule – refer to Unit (19).

* * *

N.B. The determinant of the inverse of a non-singular square matrix is the reciprocal of the determinant of the matrix

Det(Inv [ A ] ) = 1 / Det [ A ]

Exemplarily, consider the same (2 ื 2) matrix [ A ] as above.

(a) The determinant of the matrix inverse, Det(Inv [ A ] ) , is

> `det(inv(A))` := det(inverse(A)) : Det(Inv(A)) = `det(inv(A))` ;

Det(Inv(A)) = -1/2

(b) The reciprocal of the determinant of the matrix, 1 / Det [ A ], is

> `1/det(A)` := 1/det(A) : 1/Det(A) = `1/det(A)` ;

1/Det(A) = -1/2

* * *

N.B. If [ A ] and [ B ] are non-singular matrices of the same order, then

Det(Inv [ A ] [ B ] [ A ] ) = Det [ B ]

Exemplarily, consider ( 3 3 ) non-singular matrices [ A ] and [ B ] given as

> A := matrix(3, 3, [2, 3, 1, 3, -1, -2, -1, 2, 1]) : B := matrix(3, 3, [12, 8, -1, 6, 4, 0, -7, -2, 1]) :

> A = matrix(A) ; B = matrix(B) ;

A = matrix([[2, 3, 1], [3, -1, -2], [-1, 2, 1]])

B = matrix([[12, 8, -1], [6, 4, 0], [-7, -2, 1]])

(a) The determinant Det(Inv [ A ] [ B ] [ A ] ) is

> `det(inv(A) B A)` := det(evalm(inverse(A) &* B &* A)) : Det(Inv(A)*B*A) = `det(inv(A) B A)` ;

Det(Inv(A)*B*A) = -16

(b) The determinant of [ B ] is

> `det(B)` := det(B) : Det(B) = `det(B)` ;

Det(B) = -16

* * *

N.B. Although the operation of division is not defined for matrices, the multiplicative inverse matrix is used in computing the "quotient" of two square non-singular matrices. In this sense, Maple recognises "division" of two matrices and performs it according to the relationship

[ A ]/[ B ] = [ A ] Inv [ B ]

Exemplarily, consider non-singular ( 3 3 ) matrices [ A ] and [ B ] given as

> A := matrix(3, 3, [2, 1, 0, 1, -1, 3, 0, 6, 2]) : B := matrix(3, 3, [3, -2, 1, 0, 4, -3, 2, 5, -1]) :

> A = matrix(A) ; B = matrix(B) ;

A = matrix([[2, 1, 0], [1, -1, 3], [0, 6, 2]])

B = matrix([[3, -2, 1], [0, 4, -3], [2, 5, -1]])

(a) The "quotient" of the matrices, [ A ]/[ B ], is returned by Maple as the following ( 3 3 ) matrix:

> `A/B` := evalm(A/B) : A/B = matrix(`A/B`) ;

A/B = matrix([[16/37, 1/37, 13/37], [-7/37, -49/37,...

(b) The product matrix [ A ] Inv [ B ] is the following ( 3 3 ) matrix:

> `A inv(B)` := multiply(A, inverse(B)) : A * Inv(B) = matrix(`A inv(B)`) ;

A*Inv(B) = matrix([[16/37, 1/37, 13/37], [-7/37, -4...

Both matrices of (a) and (b) are equal.

* * *

N.B. It follows from the relationships

[ A ]/[ B ] = [ A ] Inv [ B ]

and

Inv(Inv [ A ] ) = [ A ]

that for square non-singular matrices

Inv [ A ]/ Inv [ K ] = Inv [ A ] {Inv(Inv [ K ] )} = (Inv [ A ] ) [ K ] = [ X ]

where the matrix [ X ] satisfies the equation

[ A ] [ X ] = [ K ]

To verify this conclusion, consider the following ( 3 3 ) matrices:

> A := matrix(3, 3, [2, 1, 0, 1, -1, 3, 0, 6, 2]) : X := matrix(3, 3, [3, -2, 1, 0, 4, -3, 2, 5, -1]) :

> K := matrix(3, 3, [6, 0, -1, 9, 9, 1, 4, 34, -20]) : A = matrix(A) ; X = matrix(X) ; K = matrix(K) ;

A = matrix([[2, 1, 0], [1, -1, 3], [0, 6, 2]])

X = matrix([[3, -2, 1], [0, 4, -3], [2, 5, -1]])

K = matrix([[6, 0, -1], [9, 9, 1], [4, 34, -20]])

(a) The "quotient" of the matrices Inv [ A ]/ Inv [ K ] is the following ( 3 3 ) matrix

> `inv(A)/inv(K)` := evalm(inverse(A)/inverse(K)) : Inv(A)/Inv(K) = matrix(`inv(A)/inv(K)`) ;

Inv(A)/Inv(K) = matrix([[3, -2, 1], [0, 4, -3], [2,...

which is equal to the matrix [ X ].

(b) The product matrix [ A ] [ X ] is the following ( 3 3 ) matrix

> `AX` := multiply(A, X) : A * X = matrix(`AX`) ;

A*X = matrix([[6, 0, -1], [9, 9, 1], [4, 34, -20]])...

which is equal to the matrix [ K ].

N.B. If [ A ] is a square non-singular matrix and [ K ] is a non- zero column matrix with the number of rows equal to that in matrix [ A ], the relationship [ A ] [ X ] = [ K ] is used for representing a system of linear algebraic inhomogeneous equations in the matrix form – refer to Unit (19).

* * *

N.B. It follows from the relationships

[ A ]/[ B ] = [ A ] Inv [ B ]

and

[ A ] (Inv [ A ] ) = [ U ]

that for a square non-singular matrix [ A ]

[ A ]/[ A ] = [ U ]

To verify this conclusion, consider the above ( 3 3 ) matrix [ A ] and compute the result of [ A ]/[ A ].

> `A/A` := multiply(A, A^(-1)) : `A/A` = matrix(`A/A`) ;

`A/A` = matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]])

or, using the evalm function,

> `A/A` := evalm(A &* evalm(A^(-1))) : `A/A` = matrix(`A/A`) ;

`A/A` = matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]])

* * *

Proceed to Unit (15) for " Integer exponentiation of matrices ".

-------------------------------------------------------------------