Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Open In Colab Binder

Compiled from the original manuscript of Chapter 7 exercises provided by Professor Ping-Zen Ong: 36 top-level exercises in all, in the same order as in the manuscript. Every exercise comes with a hint and a complete solution that can be expanded; computational exercises are followed by a NumPy verification, while pure proof exercises have no accompanying program.

This part uses 0-based indexing, and permutations are written as lists of images. Inconsistent notation and ambiguities in the statements of the original manuscript are noted in the corresponding exercises.

Permutations, Inversions, and the Classical Definition

============================================================
  Exercise 7-1 | Inversions and Crossings
============================================================

▶ Step 1: Compute the number of inversions and the inverse permutation
----------------------------------------

[number of inversions]
  Computed value: 5
  Expected value: 5
  check passed

[sgn(σ)]
  Computed value: -1
  Expected value: -1
  check passed

[pairs of crossing segments]
  Computed value: 5
  Expected value: 5
  check passed

▶ Step 2: Draw the permutation diagram joining equal values in the two rows
----------------------------------------
<Figure size 600x600 with 1 Axes>
============================================================
  Exercise 7-2 | Computing Signs
============================================================

▶ Step 1: Compare the numbers of inversions and the signs one by one
----------------------------------------

[number of inversions]
  Computed value: 7
  Expected value: 7
  check passed

[sign]
  Computed value: -1
  Expected value: -1
  check passed

[number of inversions]
  Computed value: 0
  Expected value: 0
  check passed

[sign]
  Computed value: 1
  Expected value: 1
  check passed

[number of inversions]
  Computed value: 2
  Expected value: 2
  check passed

[sign]
  Computed value: 1
  Expected value: 1
  check passed

[number of inversions]
  Computed value: 4
  Expected value: 4
  check passed

[sign]
  Computed value: 1
  Expected value: 1
  check passed
============================================================
  Exercise 7-3 | Signs of Compositions
============================================================

▶ Step 1: Build the lists of images in the order of composition
----------------------------------------

[σ∘τ]
  Computed value: [1 4 3 2 0]
  Expected value: [1, 4, 3, 2, 0]
  check passed

[sign of the composition]
  Computed value: -1
  Expected value: -1
  check passed

[σ∘τ]
  Computed value: [3 2 0 1 4]
  Expected value: [3, 2, 0, 1, 4]
  check passed

[sign of the composition]
  Computed value: -1
  Expected value: -1
  check passed

[σ∘τ]
  Computed value: [4 1 2 0 3]
  Expected value: [4, 1, 2, 0, 3]
  check passed

[sign of the composition]
  Computed value: 1
  Expected value: 1
  check passed
============================================================
  Exercise 7-5 | A Sparse Expansion
============================================================

▶ Step 1: List the nonzero terms of the classical definition
----------------------------------------
σ=(1, 0, 2, 3): -48
σ=(3, 0, 2, 1): 100

[nonzero terms]
  Computed value: [np.int64(-48), np.int64(100)]
  Expected value: [-48, 100]
  check passed

[determinant]
  Computed value: 51.999999999999986
  Expected value: 52
  check passed
============================================================
  Exercise 7-6 | The Reversal Matrix
============================================================

▶ Step 1: Check the identity and reversal matrices of each order
----------------------------------------

[det(I_1)]
  Computed value: 1.0
  Expected value: 1
  check passed

[reversal matrix n=1]
  Computed value: 1.0
  Expected value: 1
  check passed

[det(I_2)]
  Computed value: 1.0
  Expected value: 1
  check passed

[reversal matrix n=2]
  Computed value: -1.0
  Expected value: -1
  check passed

[det(I_3)]
  Computed value: 1.0
  Expected value: 1
  check passed

[reversal matrix n=3]
  Computed value: -1.0
  Expected value: -1
  check passed

[det(I_4)]
  Computed value: 1.0
  Expected value: 1
  check passed

[reversal matrix n=4]
  Computed value: 1.0
  Expected value: 1
  check passed

[det(I_5)]
  Computed value: 1.0
  Expected value: 1
  check passed

[reversal matrix n=5]
  Computed value: 1.0
  Expected value: 1
  check passed

[det(I_6)]
  Computed value: 1.0
  Expected value: 1
  check passed

[reversal matrix n=6]
  Computed value: -1.0
  Expected value: -1
  check passed

[det(I_7)]
  Computed value: 1.0
  Expected value: 1
  check passed

[reversal matrix n=7]
  Computed value: -1.0
  Expected value: -1
  check passed

[det(I_8)]
  Computed value: 1.0
  Expected value: 1
  check passed

[reversal matrix n=8]
  Computed value: 1.0
  Expected value: 1
  check passed

Basic Properties and Computation by Elimination

============================================================
  Exercise 7-10 | Computation by Elimination
============================================================

▶ Step 1: Cross-check the diagonal after elimination against the NumPy determinant
----------------------------------------

[LU reconstruction]
  Computed value: [[1. 2. 3. 4.]
 [2. 3. 4. 1.]
 [3. 4. 1. 2.]
 [4. 1. 2. 3.]]
  Expected value: [[1, 2, 3, 4], [2, 3, 4, 1], [3, 4, 1, 2], [4, 1, 2, 3]]
  check passed

[product of the diagonal of U]
  Computed value: 160.0
  Expected value: 160
  check passed

[det(A)]
  Computed value: 160.00000000000009
  Expected value: 160
  check passed

[LU reconstruction]
  Computed value: [[ 3.  1.  1.  1.]
 [ 2.  3.  4.  1.]
 [ 1.  1.  2.  1.]
 [ 2. -1. -1.  1.]]
  Expected value: [[3, 1, 1, 1], [2, 3, 4, 1], [1, 1, 2, 1], [2, -1, -1, 1]]
  check passed

[product of the diagonal of U]
  Computed value: -1.1102230246251563e-15
  Expected value: 0
  check passed

[det(A)]
  Computed value: 0.0
  Expected value: 0
  check passed

[LU reconstruction]
  Computed value: [[1. 0. 2. 3.]
 [0. 1. 1. 2.]
 [4. 3. 1. 0.]
 [2. 1. 0. 1.]]
  Expected value: [[1, 0, 2, 3], [0, 1, 1, 2], [4, 3, 1, 0], [2, 1, 0, 1]]
  check passed

[product of the diagonal of U]
  Computed value: -20.0
  Expected value: -20
  check passed

[det(A)]
  Computed value: -20.000000000000007
  Expected value: -20
  check passed
============================================================
  Exercise 7-14 | Recording the Operations
============================================================

▶ Step 1: Form the elementary matrices step by step and eliminate
----------------------------------------

[U]
  Computed value: [[ 1.  2.  1.  1.]
 [ 0. -4. -1.  1.]
 [ 0.  0. -1.  4.]
 [ 0.  0.  0. 14.]]
  Expected value: [[1, 2, 1, 1], [0, -4, -1, 1], [0, 0, -1, 4], [0, 0, 0, 14]]
  check passed

▶ Step 2: Check the product of the determinants of the inverse operations
----------------------------------------

[det(U)]
  Computed value: 55.99999999999997
  Expected value: 56
  check passed

[det(A)]
  Computed value: 55.99999999999997
  Expected value: 56.00000000000002
  check passed

Block Determinants

============================================================
  Exercise 7-17 | Block Computations
============================================================

▶ Step 1: Check the three block reductions
----------------------------------------

[block lower triangular]
  Computed value: 25.00000000000001
  Expected value: 25
  check passed

[C-DA]
  Computed value: [[-6 -1]
 [ 4  0]]
  Expected value: [[-6, -1], [4, 0]]
  check passed

[D-CB]
  Computed value: [[-10 -18]
 [ -5  -7]]
  Expected value: [[-10, -18], [-5, -7]]
  check passed

[det(M)]
  Computed value: 25.000000000000007
  Expected value: 25
  check passed

[det(M)]
  Computed value: 4.000000000000001
  Expected value: 4
  check passed

[det(M)]
  Computed value: -20.000000000000007
  Expected value: -20
  check passed
============================================================
  Exercise 7-18 | Computing with the Schur Complement
============================================================

▶ Step 1: Compute the Schur complement with solve, avoiding an explicit inverse
----------------------------------------

[block formula]
  Computed value: 159.99999999999994
  Expected value: 160
  check passed

[direct determinant]
  Computed value: 160.00000000000009
  Expected value: 160
  check passed

[block formula]
  Computed value: -3.9650822308041406e-16
  Expected value: 0
  check passed

[direct determinant]
  Computed value: 0.0
  Expected value: 0
  check passed

[block formula]
  Computed value: 39.99999999999999
  Expected value: 40
  check passed

[direct determinant]
  Computed value: 39.99999999999998
  Expected value: 40
  check passed

Properties of Determinants and Expansions

============================================================
  Exercise 7-19 | Computing with Properties
============================================================

▶ Step 1: Test the formulas with concrete matrices of several sizes
----------------------------------------

[det(2A)]
  Computed value: 6.0
  Expected value: 6
  check passed

[det((A²)^T(B^T)²)]
  Computed value: 36.0
  Expected value: 36
  check passed

[det(A^{-1})]
  Computed value: 0.3333333333333333
  Expected value: 0.3333333333333333
  check passed

[det(A^{-1}BA)]
  Computed value: -2.0
  Expected value: -2
  check passed

[det(2A)]
  Computed value: 12.0
  Expected value: 12
  check passed

[det((A²)^T(B^T)²)]
  Computed value: 36.0
  Expected value: 36
  check passed

[det(A^{-1})]
  Computed value: 0.3333333333333333
  Expected value: 0.3333333333333333
  check passed

[det(A^{-1}BA)]
  Computed value: -2.0
  Expected value: -2
  check passed

[det(2A)]
  Computed value: 48.00000000000001
  Expected value: 48
  check passed

[det((A²)^T(B^T)²)]
  Computed value: 36.0
  Expected value: 36
  check passed

[det(A^{-1})]
  Computed value: 0.3333333333333333
  Expected value: 0.3333333333333333
  check passed

[det(A^{-1}BA)]
  Computed value: -2.0
  Expected value: -2
  check passed
============================================================
  Exercise 7-20 | Properties of Column Operations
============================================================

▶ Step 1: Take differences of adjacent columns from right to left
----------------------------------------

[after column operations]
  Computed value: [[1. 0. 0. 0.]
 [1. 1. 0. 0.]
 [1. 1. 1. 0.]
 [1. 1. 1. 1.]]
  Expected value: [[1. 0. 0. 0.]
 [1. 1. 0. 0.]
 [1. 1. 1. 0.]
 [1. 1. 1. 1.]]
  check passed

▶ Step 2: Take differences of adjacent rows from bottom to top
----------------------------------------

[after row operations]
  Computed value: [[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
  Expected value: [[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
  check passed

[det(B)]
  Computed value: 1.0
  Expected value: 1
  check passed
============================================================
  Exercise 7-21 | Cofactor Expansion
============================================================

▶ Step 1: Check the sparse cofactor expansions against direct computation
----------------------------------------

[expansion along a row]
  Computed value: 255.99999999999991
  Expected value: 256
  check passed

[direct determinant]
  Computed value: 255.99999999999994
  Expected value: 256
  check passed

[expansion along a row]
  Computed value: -16.000000000000007
  Expected value: -16
  check passed

[direct determinant]
  Computed value: -16.000000000000007
  Expected value: -16
  check passed

[expansion along a row]
  Computed value: 251.99999999999994
  Expected value: 252
  check passed

[direct determinant]
  Computed value: 252.00000000000003
  Expected value: 252
  check passed

Recurrences and Polynomials

============================================================
  Exercise 7-22 | A Tridiagonal Recurrence
============================================================

▶ Step 1: Compare the matrix determinants with the general formula
----------------------------------------

[A_1]
  Computed value: 2.0
  Expected value: 2
  check passed

[A_2]
  Computed value: 2.9999999999999996
  Expected value: 3
  check passed

[A_3]
  Computed value: 4.0
  Expected value: 4
  check passed

[A_4]
  Computed value: 4.999999999999999
  Expected value: 5
  check passed

[A_5]
  Computed value: 6.0
  Expected value: 6
  check passed

[A_6]
  Computed value: 6.999999999999998
  Expected value: 7
  check passed

[A_7]
  Computed value: 7.999999999999998
  Expected value: 8
  check passed

[A_8]
  Computed value: 8.999999999999998
  Expected value: 9
  check passed

[A_9]
  Computed value: 9.999999999999998
  Expected value: 10
  check passed

[A_10]
  Computed value: 10.999999999999996
  Expected value: 11
  check passed
============================================================
  Exercise 7-23 | A General Tridiagonal Formula
============================================================

▶ Step 1: Check the nonsymmetric tridiagonal matrices
----------------------------------------

[D_1]
  Computed value: 3.0000000000000004
  Expected value: 3
  check passed

[D_2]
  Computed value: 7.000000000000001
  Expected value: 7
  check passed

[D_3]
  Computed value: 15.0
  Expected value: 15
  check passed

[D_4]
  Computed value: 31.0
  Expected value: 31
  check passed

[D_5]
  Computed value: 62.99999999999999
  Expected value: 63
  check passed

[D_6]
  Computed value: 126.99999999999999
  Expected value: 127
  check passed

[D_7]
  Computed value: 254.99999999999991
  Expected value: 255
  check passed

[D_8]
  Computed value: 511.0
  Expected value: 511
  check passed

[D_9]
  Computed value: 1022.9999999999995
  Expected value: 1023
  check passed

[D_10]
  Computed value: 2046.9999999999995
  Expected value: 2047
  check passed
============================================================
  Exercise 7-24 | An Arrowhead Matrix
============================================================

▶ Step 1: Check small sizes, the degenerate size, and negative values
----------------------------------------

[K_1]
  Computed value: 2.0
  Expected value: 2.0
  check passed

[K_2]
  Computed value: 2.9999999999999996
  Expected value: 3.0
  check passed

[K_3]
  Computed value: 4.0
  Expected value: 4.0
  check passed

[K_4]
  Computed value: 3.999999999999999
  Expected value: 4.0
  check passed

[K_5]
  Computed value: 0.0
  Expected value: 0.0
  check passed

[K_6]
  Computed value: -15.999999999999998
  Expected value: -16.0
  check passed

[K_7]
  Computed value: -63.99999999999998
  Expected value: -64.0
  check passed

[K_8]
  Computed value: -192.0
  Expected value: -192.0
  check passed

[K_9]
  Computed value: -511.99999999999994
  Expected value: -512.0
  check passed

Adjugates, Inverses, and LU

============================================================
  Exercise 7-26 | Adjugate and Inverse
============================================================

▶ Step 1: Compute the cofactors one by one
----------------------------------------

[cofactor matrix]
  Computed value: [[ 1.  6. -2.]
 [-2.  1.  4.]
 [ 6. -3.  1.]]
  Expected value: [[1, 6, -2], [-2, 1, 4], [6, -3, 1]]
  check passed

▶ Step 2: Transpose, divide by the determinant, and check on both sides
----------------------------------------

[det(A)]
  Computed value: 13.0
  Expected value: 13
  check passed

[A A^{-1}]
  Computed value: [[ 1.  0. -0.]
 [ 0.  1. -0.]
 [ 0.  0.  1.]]
  Expected value: [[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
  check passed

[A^{-1} A]
  Computed value: [[ 1.  0.  0.]
 [-0.  1. -0.]
 [ 0.  0.  1.]]
  Expected value: [[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
  check passed

Area, Volume, and the Gram Matrix

============================================================
  Exercise 7-29 | Area and Order
============================================================

▶ Step 1: Check the composite matrices, the areas, and the side lengths
----------------------------------------

[area scaling]
  Computed value: 0.9999999999999998
  Expected value: 1
  check passed

[area scaling]
  Computed value: 0.9999999999999998
  Expected value: 1
  check passed

[the two columns of AB have equal length]
  Computed value: 1.457737973711325
  Expected value: 1.457737973711325
  check passed

[inner product of the columns of BA]
  Computed value: 0.0
  Expected value: 0
  check passed

[side lengths of the image rectangle under BA]
  Computed value: [4. 1.]
  Expected value: [4, 1]
  check passed

▶ Step 2: Check the vertices of the image under AB
----------------------------------------

[vertices under AB]
  Computed value: [[ 0.      2.8284  0.     -2.8284]
 [-0.7071  0.      0.7071  0.    ]]
  Expected value: [[0, np.float64(2.8284271247461903), 0, np.float64(-2.8284271247461903)], [np.float64(-0.7071067811865475), 0, np.float64(0.7071067811865475), 0]]
  check passed
============================================================
  Exercise 7-30 | Area in the Plane
============================================================

▶ Step 1: Check the orthogonal factorization and the sign conditions
----------------------------------------

[F^T F]
  Computed value: [[ 1. -0.]
 [-0.  1.]]
  Expected value: [[1. 0.]
 [0. 1.]]
  check passed

[FR]
  Computed value: [[ 2.  1.]
 [ 2. -3.]]
  Expected value: [[ 2  1]
 [ 2 -3]]
  check passed

[f0·u > 0]
  Computed value: 2.82842712474619
  Expected value: 2.8284271247461903
  check passed

[f1·v > 0]
  Computed value: 2.82842712474619
  Expected value: 2.8284271247461903
  check passed

▶ Step 2: Compare base times height, the determinant, and the Gram determinant
----------------------------------------

[base times height]
  Computed value: 8.000000000000002
  Expected value: 8
  check passed

[|det(M)|]
  Computed value: 7.999999999999998
  Expected value: 8
  check passed

[det(M^T M)]
  Computed value: 63.99999999999998
  Expected value: 64
  check passed
============================================================
  Exercise 7-31 | Area in Space
============================================================

▶ Step 1: Check the rectangular orthogonal factorization
----------------------------------------

[F^T F]
  Computed value: [[1. 0.]
 [0. 1.]]
  Expected value: [[1. 0.]
 [0. 1.]]
  check passed

[FR]
  Computed value: [[1. 2.]
 [2. 0.]
 [2. 2.]]
  Expected value: [[1 2]
 [2 0]
 [2 2]]
  check passed

[f0·u > 0]
  Computed value: 3.0
  Expected value: 3
  check passed

[f1·v > 0]
  Computed value: 2.0
  Expected value: 2
  check passed

▶ Step 2: Compare the Gram area with the cross-product area
----------------------------------------

[Gram]
  Computed value: [[9 6]
 [6 8]]
  Expected value: [[9, 6], [6, 8]]
  check passed

[Gram area]
  Computed value: 6.0
  Expected value: 6
  check passed

[cross product]
  Computed value: [ 4  2 -4]
  Expected value: [4, 2, -4]
  check passed

[length of the cross product]
  Computed value: 6.0
  Expected value: 6
  check passed
============================================================
  Exercise 7-32 | Volume in Space
============================================================

▶ Step 1: Check the three orthonormal directions and the factorization with positive diagonal
----------------------------------------

[F^T F]
  Computed value: [[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
  Expected value: [[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
  check passed

[FR]
  Computed value: [[ 1.  2.  1.]
 [ 2.  0.  3.]
 [ 2.  2. -2.]]
  Expected value: [[ 1  2  1]
 [ 2  0  3]
 [ 2  2 -2]]
  check passed

[three heights]
  Computed value: [3. 2. 3.]
  Expected value: [3, 2, 3]
  check passed

▶ Step 2: Check the leading principal minors and the volume
----------------------------------------

[det(G_1)]
  Computed value: 9.000000000000002
  Expected value: 9
  check passed

[det(G_2)]
  Computed value: 36.0
  Expected value: 36
  check passed

[det(G_3)]
  Computed value: 323.9999999999999
  Expected value: 324
  check passed

[volume]
  Computed value: 17.999999999999996
  Expected value: 18
  check passed
============================================================
  Exercise 7-34 | Volume in Four Dimensions
============================================================

▶ Step 1: Build the Gram matrix
----------------------------------------

[G]
  Computed value: [[2 2 0]
 [2 4 2]
 [0 2 4]]
  Expected value: [[2, 2, 0], [2, 4, 2], [0, 2, 4]]
  check passed

▶ Step 2: Check the determinant and the three-dimensional volume
----------------------------------------

[det(G)]
  Computed value: 7.999999999999998
  Expected value: 8
  check passed

[volume]
  Computed value: 2.82842712474619
  Expected value: 2.8284271247461903
  check passed

Generalized Cross Products


✓ All exercises completed.